Niet alles is een spijker: Blijf innoveren

This blog post is unfortunately not available in English.

Als je een hamer hebt, lijkt alles op een spijker.

Het gebeurt regelmatig dat men (zowel mensen als organisaties) vastgeroest raakt in het gebruik van de systemen en technologieën die men al door en door kent. Te vaak heeft dit als gevolg dat we dan alle problemen proberen op te lossen met dat systeem, met als gevolg dat een oplossing maar half werkt, trager is dan nodig, of moeilijk te onderhouden is. Daarnaast vindt er hierdoor geen ontwikkeling en geen innovatie meer plaats.

Het is heel belangrijk, zeker in de software-wereld, om op de hoogte te blijven van de nieuwste ontwikkelingen. In dit artikel vertel ik je waarom dit het geval is, en wat onze insteek is bij Panache om ervoor te zorgen dat we altijd een stapje voor blijven in de development-wereld.

Waarom is het zo verleidelijk om te blijven bij wat je kent?

Er zijn drie belangrijke redenen:

  1. De ‘angst voor het onbekende’: nieuwe dingen zijn anders, en liggen per definitie buiten je ‘comfort zone’.
  2. Het effect dat Research & Development heeft is moeilijk meetbaar (op de korte termijn) voor managers.
  3. Het imago van jou of je bedrijf is al dusdanig beperkt tot een ‘one-trick pony’ dat je nooit meer in de gelegenheid komt om iets anders te maken.

De angst voor het onbekende
De eerste reden is een heel menselijke reden waar waarschijnlijk iedereen zich in kan vinden: Dingen die in je comfort zone liggen zijn eenvoudig te begrijpen, snel te maken en je hebt vertrouwen in een goed resultaat. Dingen daarbuiten zijn een bron van onzekerheid. Later in dit artikel vertel ik waarom het toch erg belangrijk is om regelmatig uit je comfort-zone te treden.


De tweede reden komt jammer genoeg erg vaak voor: “We zouden je graag wat R&D willen laten doen, maar er moet ook geld verdiend worden.” Managers (of bijv. aandeelhouders; de mensen die bepalen hoe de tijd/energie van de developers wordt besteed) zijn vaak erg moeilijk te overtuigen van de noodzaak om tijd aan innovatie te besteden. Dit komt voornamelijk vanwege het feit dat innoveren een vorm is van investeren, en elke investering brengt een risico met zich mee.
Men is het er over het algemeen over eens dat innoveren goed is. Maar als puntje bij paaltje komt is het net als met groene stroom: “Een windmolen is fantastisch… maar niet in mijn achtertuin.”

Om deze mensen te overtuigen is het belangrijk ze enthousiast te maken over de mogelijkheden die nieuwe technologieën met zich meebrengen. Ook een belangrijk voordeel waar managers zich in kunnen vinden, is het feit dat je duidelijk kunt laten zien dat je beter bent dan de concurrentie wanneer je innoveert. Niet innoveren betekent dat jij of je organisatie op een bepaald moment achterblijft waar de concurrentie vooruitstreeft. Op een bepaald moment gebeurt er dan het volgende:


De derde reden: Men denkt dat jij of je organisatie zich gericht heeft op één enkele vaardigheid.

Er is niks mis met je focussen, maar wanneer je op een bepaald moment alleen nog slechts één type opdracht binnen krijgt, kan dit betekenen dat het tijd is om je weer te verbreden: “Don’t put all your eggs in one basket.”

Naast het feit dat het demotiverend kan werken om telkens meer van hetzelde te doen, is het mogelijk dat de niche waar je je op gericht hebt op een bepaald moment overbodig wordt; op dat moment zit je hopeloos vast in het verleden.

Wanneer je dán tracht te beginnen met een inhaalslag is dit vele malen moeizamer: De hoop kennis om bij te leren is gigantisch, maar nog veel moeilijker wordt het om je al bestaande imago te veranderen. Een voorbeeld: Probeer maar eens, wanneer je bekend staat als ‘die persoon die Wordpress blogs maakt.’, om ingehuurd te worden voor een ‘Responsive Single-Page Application met ES6, React en interactive video’.

Een bestaand verwachtingspatroon aanpassen is nagenoeg onmogelijk…

De gloeilamp: Er gingen honderden designs overheen voordat Edison tevreden was.

De gloeilamp: Er gingen honderden designs overheen voordat Edison tevreden was.

Waarom is innovatie zo belangrijk?

Laten we het bovenste lijstje omdraaien. Elk van deze drie punten heeft namelijk een keerzijde:

  1. Nieuwe dingen leren stimuleert creativiteit.
  2. Nieuwe dingen leren maakt je voorbereid op ontwikkelingen in de markt (want die zijn onmogelijk te anticiperen).
  3. Nieuwe dingen maken je veelzijdig, en zorgen ervoor dat je de verwachtingen van opdrachtgevers kunt overtreffen.

Het eerste punt: Creativiteit. Op het moment dat een developer één tool kent, en hier goed in is, zal het op den duur gebeuren dat hij alleen nog maar gaat denken in termen van die taal. Dit betekent dat zijn probleemoplossend vermogen op dat moment maar beperkt is. Erger nog; op een bepaald moment zijn andere, nieuwere ontwikkelingen zo ver verwijderd van zijn comfort zone dat hij verandert in een Blub Programmeur:

[…]

Om niemand tegen de borst te stuiten, laten we een hypothetische programmeertaal nemen, genaamd Blub.
Blub ligt in het midden tussen machinetaal en Cobol, waar je alle features zelf dient te bouwen aan de ene kant en je favoriete taal waar nog veel meer in kan dan in Blub aan de andere kant.

Een hypothetische Blub-programmeur zou noch assembly, noch jouw taal gebruiken:
Natuurlijk gebruikt hij geen machinetaal, daar zijn compilers voor. En Cobol: Hij snapt niet hoe iemand ooit in zo’n taal iets voor elkaar krijgt.
Cobol heeft niet eens ‘X’ (vul hier je favoriete Blub-feature in).

Wanneer hij naar ‘beneden’ kijkt, ziet hij talen die belangrijke features missen die Blub wel heeft.
Maar wanneer hij ‘omhoog’ kijkt, naar talen die meer mogelijkheden hebben, merkt hij niet dat hij omhoog kijkt.
Deze talen lijken ongeveer even sterk als Blub, maar dan met een aantal extra, warrige features er bij in die de Blub programmeur niet snapt.
Blub is goed genoeg voor hem, want hij denkt in Blub.

Wanneer wij in onze favoriete taal werken, kijken wij echter omlaag op Blub, want Blub heeft niet eens ‘Y’.
Zoals te concluderen valt uit bovenstaand voorbeeld, zijn de enige mensen die het volledige overzicht hebben, de mensen zijn die de ‘sterkste’ taal kennen.

(Vrij vertaald uit het artikel ‘Beating the Averages’ van Paul Graham)

Natuurlijk is wat de ‘sterkste’ taal is subjectief. Het hangt heel erg af van de situatie waarin de taal gebruikt dient te worden. Maar de enige manier om zeker te zijn dat je dus niet vast gaat zitten in één vorm van denken, is om zo veel mogelijk verschillende talen en denkwijzen te leren: Probeer een polyglot-programmeur te worden.


Het tweede en derde punt overlappen en hebben niet al te veel extra toelichting nodig: We hebben geen waarzeggers in dienst, dus we weten niet zeker welke kant de software-wereld op zal gaan. We weten ook niet met wat voor soort werk toekomstige opdrachtgevers naar ons toe zullen komen. Om deze reden proberen we zo breed mogelijk kennis te vergaren, zodat we flexibel op de daadwerkelijke veranderingen in kunnen spelen. En het is ook niet erg om je verdiept te hebben in een technologie die uiteindelijk niet is wat je ervan verwachtte:

Resultaten! Ik heb vele resultaten behaald: Ik weet duizenden manieren waarop dingen niet werken.

(Thomas Edison, uitvinder van de gloeilamp)

Wat het moeilijkste hierin blijft, is natuurlijk dat de tijd die je hebt als enkel mens, en ook als team, maar beperkt is. Dus waar kun je je het beste op focussen? Dit is natuurlijk de hamvraag. We kunnen geen algemeen antwoord geven, maar dit is wat wij doen:

Wat doet Panache om dit voor te blijven?

Bij Panache proberen we de individuele werknemers te stimuleren om nieuwe technologieën te leren. We hebben, naast de projecten van opdrachtgevers, een diversiteit aan interne projecten lopen.
De meeste van deze interne projecten zijn kleine dingen die oorspronkelijk zijn ontstaan als tech-demo van één van de collega’s.

Het gebeurt regelmatig dat er onderling discussies ontstaan over hoe een bepaald probleem op een andere manier opgelost kan worden. Vaak heeft dit als gevolg dat er een proof-of-concept in elkaar wordt gezet om te bewijzen dat het kan (en ook wat er niet kan. De limieten leren van een nieuw systeem is minstens net zo belangrijk als het leren van de voordelen). Iedereen leert hier van.

Nieuwe technologieën worden regelmatig in overweging genomen wanneer er weer een groter project op tafel komt.

Daarnaast hebben we als Panache-medewerkers nu meerdere malen meegedaan aan Game Jams. Dit zijn hackathons waar je binnen 48 uur tijd probeert een werkend computerspel met een bepaald thema uit de grond te stampen. Deze heftige, intensieve weekenden zijn een belangrijke bron van teambuilding en geestverruiming.

Wat we het meest belangrijk vinden binnen Panache, is om respect te hebben voor elkaar. We weten precies hoeveel we aan elkaar hebben en dus ook hoe we iedereen het beste kunnen inzetten. Omdat we vertrouwen hebben in het kennen en kunnen van onze collega’s, kunnen we deze zelfverzekerdheid ook uitstralen. We zijn niet bang om onze kloten op tafel te leggen, want we weten wat we kunnen.

We hebben vertrouwen in onze technologie, vertrouwen in ons ontwikkelproces, en vertrouwen in elkaar.

Niet alleen weten we wanneer we een hamer nodig hebben en wanneer beter een boor; Ook weten we wanneer Johan beter geschikt is voor een timmerklus en wanneer Jeroen. We weten wanneer het slim is om René nog even naar de bouwtekeningen te laten kijken. En misschien het belangrijkste: Zodra er een nieuwe klopboor is die we zouden kunnen gebruiken om het probleem sneller en mooier op te lossen, zijn we daarvan op de hoogte.

Op deze manier kunnen we de wereld aan.

photo by Jerry Swiatek