Column: Coding, Coffee and Rock ‘n roll
Ik werk als softwareontwikkelaar bij TOPdesk en ben redelijk verslaafd aan alles wat met muziek te maken heeft. Ik speel in enkele bands, schrijf vrij veel muziek en kom regelmatig bij verschillende concerten. Software en muziek – ik weet het, het lijken twee tegenpolen. Toch zijn er nog vrij veel overeenkomsten tussen het ontwikkelen van software en het schrijven van muziek.
De belangrijkste overeenkomst tussen de twee, en wat mij ook het meest in beide aanspreekt, is dat het inherent scheppende activiteiten zijn. Waar eerst niks was, wordt orde geschapen en waar slechts ideeën en problemen waren, ontstaan patronen, regels en systemen die samen een geheel nieuw object vormen. Stiekem hebben we allemaal een beetje een godcomplex, toch?
Het grote verschil zit hem in de structuur van de aanpak. Bij softwareontwikkeling is er in de meeste gevallen eerst een probleem of een verzoek dat wordt geanalyseerd en vervolgens wordt er een oplossing voor geprogrammeerd. Muziek ontstaat daarentegen vanuit inspiratie, een idee dat daarna verder uitgewerkt wordt. Het schrijven van software verloopt dus gestructureerder dan het schrijven van muziek, zou je denken. Maar met die notie doe je toch beide processen tekort.
Het schrijven van muziek gaat vaak nog zeer gestructureerd: bijna alle liedjes zijn opgebouwd volgens een terugkerend akkoordenpatroon en de melodie volgt doorgaans de noten van één specifieke schaal. Daar staat tegenover dat de trend in softwareontwikkeling juist is om dingen “Agile” aan te pakken. Dat is een vrijere vorm van het traditionele ontwikkelproces; een aanpak die minder gebonden is aan starre regels en langetermijn-strategieën en meer belang hecht aan de (altijd veranderende) wensen van de klant.
De Agile-methodes zijn ontstaan in de jaren negentig, als reactie op het Waterfall-model: een top-down programmeerproces waar van boven wordt besloten welke code onderaan geschreven moet worden. Dit werkt beperkend voor de creativiteit van ontwikkelaars. In de muziek zou dit hetzelfde zijn als je te strak houden aan bestaande regels en akkoordenschema’s, waardoor het uiteindelijke liedje er één van dertien in een dozijn wordt. Bij Agile-ontwikkelen hecht men meer waarde aan persoonlijke interactie, nauwe samenwerking met de klant en inspelen op nieuwe ontwikkelingen, dan aan het opvolgen van uitgeschreven processen.
Bij TOPdesk verwerken we deze Agile methodes in onze ontwikkelproces. Zo betrekken we de klanten zo nauw mogelijk bij het ontwikkelproces, door klanten die beta-testers zijn en de TOPdesk Community. Daarnaast heeft de ontwikkelafdeling veel contact met de helpdesk en consultants, zodat we op de hoogte blijven van wat er bij onze klanten speelt.
Een andere pijler van Agile is persoonlijke communicatie. Wij werken met relatief kleine teams die elk verantwoordelijk zijn voor verschillende modules. Daardoor zitten de mensen die aan hetzelfde onderdeel van TOPdesk werken dicht bij elkaar en heeft elke ontwikkelaar de vrijheid om originele oplossingen aan te dragen voor de bestaande vraagstukken. Ook met het ontwikkelteam in Kaiserslautern proberen we het contact persoonlijk te houden door intern telefonie, chat, webcams en regelmatig internationaal overleg.
Het Agile Manifesto sluit goed aan bij de bedrijfsvoering van TOPdesk. We proberen de creativiteit en motivatie van het individu de vrije loop te laten en in samenwerking met de klanten software te ontwikkelen waar zij iets aan hebben. In dat opzicht kan je softwareontwikkelaars wel een beetje vergelijken met rockstars: door je creativiteit de vrije loop te laten en af en toe tegen de stroom in te durven gaan, bereik je soms de mooiste resultaten.


Leave a comment