De kunst van software schrijven

Hermen Heinen
Hermen Heinen

22 december 2014

Sprints? Continuous deployment with Kanban!

We hebben 2014 bijna achter de rug. Een jaar vol fantastische opdrachtgevers, projecten, uitdagingen en nog mooiere oplossingen. Ook een jaar, laten we eerlijk zijn, vol met discussies, onbegrip en onvoorziene problemen. Gelukkig weten we in onze processen en werkwijze vrijwel alle problemen die komen kijken bij het schrijven van software het hoofd te bieden, maar ik merk dat ik ook weer vaak heb moeten constateren (en uitleggen) dat het schrijven van software nu eenmaal een complexe aangelegenheid is. Of misschien is complex niet het juiste woord.

Software als kunstvorm

Ik zie het schrijven van software veel meer als een creatief proces. Het is te vergelijken met het schilderen van een meesterwerk of het virtuoos bespelen van een instrument. Alleen de combinatie van een creatieve geest met een uitzonderlijke skillset geven de capaciteiten om een goede software-ontwikkelaar te zijn. Ik beschouw het schrijven van software dan ook meer als een kunstvorm, dan als een ‘productieproces’ zoals het liever wel vaak gezien wordt.

Uiteraard zijn er zaken te reproduceren, processen te versnellen, eerder resultaat te boeken, etc. etc. Dat heb je in de kunst ook. Maar het komen op die ene geweldige unieke oplossing voor dat specifieke probleem? Dat is toch echt pure kunst. Je wordt als ontwikkelaar geconfronteerd met een probleem. Je dient een oplossing te bedenken voor dat probleem met alleen jouw creatieve geest in combinatie met de beschikbare tools (de verf en penselen). Uit niets maak je iets. Iets dat werkt zoals jij wilt dat het werkt. Daar gaat mijn hart nog elke keer sneller van kloppen.

Software bouwen is geen kunstje

Een goede vergelijking is ook te treffen met hoe een meesterkok zijn gerecht bereidt (wij noemen dat CodeCuisine®). Een combinatie van uitzonderlijke skills met een creatieve geest leveren jou dat ultieme gerecht. Niet iedereen kan dat!

Chef in the kitchen

Dat brengt me ook weer bij de discussies. Een ontwikkelaar heeft soms wel honderden dingen in zijn hoofd, een grof idee van een oplossing samengebracht in zijn creatieve geest. Dat moet je niet zomaar of al te vaak onderbreken. Daarnaast moet er veel geëxperimenteerd en geoefend worden, net zoals een violist of beeldhouwer dit moet doen om zijn skillset te vergroten en te verbeteren en/of juist om op ideeën te komen. Als je je ontwikkelaars deze ruimte ontzegt, probeer je er productiemedewerkers van te maken. En dat werkt dus niet: software bouwen is geen kunstje, het is Kunst.

The art of writing software

Recent zag ik een filmpje over ‘The Art of Writing Software’ (zie hieronder) wat me inspireerde om dit artikel te schrijven. Via deze weg wil ik allereerst mijn mede-artiesten bij Enrise bedanken voor hun waanzinnige producties. Ik bedank ook al onze opdrachtgevers voor het mogelijk maken van dit creatieve proces en het begrip hierin. Ik hoop op veel begrip en uiteindelijk verwondering voor 2015!

I want it to be elegant in a way that hangs together so somebody can read it and smile. Every programmer that loves programming can relate to this.

En ik hoop u, als zeer gewaardeerde opdrachtgever, ook!Â