Samen een roman schrijven
Het is misschien een beetje overdreven, maar ik heb iets tegen dat bouwen. Bouwen is veel te fysiek. Software is niet fysiek. Software ontstaat niet door bakstenen op elkaar te stapelen. De regels, de natuurwetten die gelden bij het bouwen van een huis gaan niet op bij het maken van software.
Fysieke dingen die je bouwt, bestaan in een driedimensionale ruimte. Die ruimte kennen we allemaal, begrijpen we allemaal. Die ruimte kunnen we tekenen, op schaal. We kunnen ontwerpen in die ruimte, blauwdrukken maken. We kennen de regels van die ruimte en kunnen dus berekenen of die blauwdrukken voldoen aan die regels. Gaat dat gebouw een storm weerstaan, een aardbeving, meters sneeuw op het dak? We kunnen het allemaal vaststellen nog voordat er ook maar één baksteen aan te pas komt.
Een ontwerp van een gebouw kun je niet alleen doorrekenen, je kunt het helemaal visualiseren. Met een beetje moeite kun je alles van tevoren laten zien. We kunnen dus van tevoren bepalen of het een mooi, goed gebouw wordt, of we dat gebouw allemaal wel zien zitten. Software is maar heel lastig te visualiseren. Natuurlijk kun je mock-ups van schermen of een storyboard maken, maar de meeste complexiteit zit meestal achter de schermen. Soms kun je met een paar regels code een heel veel beter systeem maken. Soms moet je het hele systeem overhoop halen om maar een klein beetje verbetering te bereiken.
Gebouwen ontstaan schetsend op papier, met een blokkendoos, een maquette of met een 3d-ontwerpprogramma. Software ontstaat grotendeels als idee in je hoofd. De meeste software maken we niet in ons eentje. Software ontstaat niet in één hoofd, maar in meerdere hoofden tegelijk, parallel. We kunnen schemaatjes maken van die software op whiteboards, in modelleertools of in tekst, maar die zijn allemaal op heel veel manieren te interpreteren. Het draait er allemaal om dat we bij elkaar in het hoofd steeds meer naar één, steeds beter, gezamenlijk verhaal toe bewegen. Pas als het echt werkende software is, weten we of we hetzelfde bedoeld hebben, dezelfde verwachtingen hebben. Daarom is het zo belangrijk om stapje voor stapje te bouwen.
Software maken is als samen een roman schrijven. Je kunt niet ieder een hoofdstuk schrijven, je kunt niet de hele tijd met z’n allen achter één toetsenbord zitten. Je zult moeten discussiëren, elkaar overtuigen. Je zult stukjes moeten schrijven en aan elkaar voorlezen. Geen idee of er ooit op die manier een roman geschreven is. Wat ik wel weet, is dat we dat eigenlijk al jaren doen met onze software.
Magazine AG Connect
Daan Kalmeijer is vaste columnist van AG Connect. Hij levert in elke editie van het magazine van AG Connect een bijdrage. Deze column stond in het AG Connect nummer 10, 2018. Wil je alle artikelen uit dit nummer lezen, klik dan hier voor de inhoudsopgave.
Reacties
Om een reactie achter te laten is een account vereist.
Inloggen Word abonnee