Development

Software-ontwikkeling
Samen een roman schrijven

Samen een roman schrijven

Software bouw je niet. De veelgemaakte vergelijking van software met het ontwerpen van een huis gaat eigenlijk helemaal niet op.

© CC0 - Pixabay ElasticComputeFarm
14 november 2018

U laat een app bouwen. Waarom bouwen? Waarom niet laten groeien? Software kweken? Brouwen? Waarom vormen of schrijven we geen software?

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.

Software ontstaat niet door bakstenen op elkaar te stapelen

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.

Soms moet je het hele systeem overhoop halen om maar een klein beetje verbetering te bereiken

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.

Reactie toevoegen
2
Reacties
hw 25 november 2018 13:00

Interessante analogie.
Dus we hebben de functieomschrijvingen al tientallen jaren fout: Functies als 'software engineer' en 'architect' passen nl. niet bij een creatief proces (roman schrijven) dat vaak gebaseerd is op ingevingen en inspiratie van het moment.
We moeten 'writers block' dan ook maar toevoegen als excuus dat een software project te laat wordt opgeleverd.
Eigenlijk moeten we niet klagen dat zoveel projecten niet opleveren wat we ervan verwachtten, maar onze zegeningen tellen dat er nog zoveel goed is gegaan.

KJ 16 november 2018 06:52

Leuk artikel Daan.

Da's nog eens een analogie door breder uitgewerkt kan worden. Hoe schrijf je met een team van enkele tientallen schrijvers een geslaagde roman?

En Daan, ga je nu je beroep aanpassen? Van architect naar software schrijver?