Verscheen eerder als column in SDN magazine
Eind juni gaat naar verwachting de James Webb telescoop in bedrijf. De opvolger van de Hubbletelescoop was dertig jaar in de maak en kostte tien miljard dollar. De software die straks op 1,5 miljoen km van de aarde gaat draaien zal met gekmakend oog voor detail en kwaliteit gebouwd zijn – mag ik aannemen.
Kwaliteit is duur, dus maken we risico-inschattingen en stemmen daar de kwaliteitsbehoefte op af. Hoe groot is de schade als er straks cruciale fouten in de software blijken te zitten? Hoe verkleinen we de kans daarop? Hoe snel kunnen we zulke fouten opsporen en repareren? Bij de Webb telescoop mag het antwoord duidelijk zijn: denk alleen al aan de reputatieschade. Als ernstige bugs einde verhaal kunnen betekenen is een mega-investering in first time right gerechtvaardigd. Voor de meeste andere projecten geldt dat zelden.
Wie jarenlang aan de Webb telescoop heeft gesleuteld is waarschijnlijk een clean code purist. In die gemeenschap geldt een principiële liefde voor kwaliteit als het ware kenmerk van vakmanschap. Misschien komt dat wel doordat ons beroep vrij toegankelijk is voor amateurs. Iedereen mag zich ontwikkelaar noemen, in tegenstelling tot tandarts of advocaat. De ruimte voor vakmanschap is grenzeloos als je alle aspecten van softwarekwaliteit even serieus neemt. Die gaat verder dan enkel stabiliteit en correctheid: readability, adaptability, usability, portability en tig andere ‘ilities’.
Er bestaat echter wel degelijk ook doorgeschoten vakmanschap, en dat vind je bij clean coders in projecten waar topkwaliteit geen vereiste is. Soms is een zeven goed genoeg. De techneuten kunnen zich er slecht naar schikken dat de prijs voor een negen niet te verantwoorden is, maar dat is dan jammer. Zij betalen niet de rekening. Vakmanschap kan niet enkel gefocust zijn op het maximaliseren van kwaliteit. Je moet ook optimaliseren.
De clean coder pur sang heeft een broertje dood aan zulke concessies, trekt zich weinig aan van deadlines, of werkt zich in een burn-out om het werk goed én op tijd af te krijgen. Dat is geen zegen voor de groep. Perfectionisten zijn vaak matige teamspelers en bepaald niet gezellig in de omgang. Sterrenkok Sergio Herman beschreef althans zichzelf zo in de documentaire met de veelzeggende naam Fucking Perfect(2015).
Wie kwaliteit boven klantbelang of opleverdatum stelt benadert het vak als kunst. Kunstenaarschap is een kwestie van instelling, of je nu werkt met penseel, pen of C#. De kunstenaar is ten eerste loyaal aan de liefde voor het vak en hoe je dat hoort te bedrijven, ongeacht wat je bouwt. In een werknemersrelatie zal zij pas onder protest en met tegenzin iets opleveren wat niet aan haar standaard voldoet.
Ik beschrijf hier natuurlijk archetypes. Perfectionisme versus pragmatisme is een spectrum, en een gebalanceerd team heeft ook professionals die vooral loyaal zijn aan de opdrachtgever en voor wie best practices niet heilig zijn. Goede pragmatici zijn zeker geen prutsers en werken ook hard en gemotiveerd. Maar kwaliteit is voor hen wel rekbaar en onderhandelbaar, dus moet je ze in hun tomeloze energie om de klant blij te maken er wel af en toe aan herinneren netjes te blijven werken.
Update 9 juli: het is natuurlijk 1,5 miljoen km. en niet miljard!