Alle posts

Een korte lijst op een bureau, voordat er code wordt geschreven

Wat ik vastleg voordat ik de eerste regel code schrijf

· Oussama Fadlaoui · consulting, architecture

Een project wordt duur op het moment dat het team halverwege de bouw ontdekt wat er echt gebouwd moet worden. Die tijd besteed ik liever vooraf, op papier, met de mensen die het systeem gaan gebruiken.

Begin bij het resultaat

Ik vraag wat er waar moet zijn als het werk af is, in een zin die iemand zonder technische achtergrond kan herhalen. "Gebruikers kunnen een bestelling plaatsen" is een begin. "Een terugkerende klant plaatst op de telefoon binnen twee minuten een bestelling, en het magazijn ziet die zonder te bellen" is een doel waar we op kunnen ontwerpen.

Vanuit die zin schrijf ik op:

  • Voor wie het systeem is, en voor wie het nadrukkelijk niet is
  • Het ene pad dat op dag één moet werken
  • Wat we in deze versie niet bouwen

Die laatste lijst houdt de scope eerlijk.

Zeg de beperkingen hardop

Elk systeem dat ik oplever staat naast iets dat al bestaat: een betaalprovider, een spreadsheet waar iemand op vertrouwt, een hostingbudget, een bewaarplicht. Die beperkingen bepalen het ontwerp vaker dan het framework.

Voordat ik bibliotheken kies wil ik drie antwoorden:

  1. Waar leven de gegevens, en wie mag ze wijzigen?
  2. Wat gebeurt er als een afhankelijkheid eruit ligt?
  3. Hoe merken we dat het belangrijke pad stuk is?

Als we dat niet kunnen beantwoorden, zijn we niet klaar om de feature te bouwen. Een wegwerp-prototype is genoeg, en dat gooi ik daarna weg.

Houd de eerste versie saai

De eerste versie is het kleinste ding dat het resultaat bewijst. Saaie opslag, een saaie uitrol, één pad door het product. Abstractie komt na het tweede echte gebruik, niet vóór het eerste.

resultaat → één pad → beperkingen → kleinste versie

Die volgorde is de hele methode. Als een latere wijziging pijn doet, komt dat meestal doordat we een stap hebben overgeslagen en de code een eis heeft verzonnen die niemand heeft afgesproken.

Hoe ik dit gebruik bij opdrachtgevers

Ik neem deze lijst mee naar de eerste werksessie. We vullen hem samen in, en hij wordt de referentie voor schattingen, reviews en wat "af" betekent. Als je op deze manier aan een systeem wilt werken dat je binnenkort bouwt, stuur me een bericht.