Start med taget

Der er mange analogier og metaforer, der forsøger at beskrive softwareudvikling, og som alle gode modeller er de altid forkerte, men af og til brugbare. Ikke desto mindre vil jeg gøre et forsøg her.

På mange punkter kan det at udvikle en ny softwareløsning sammenlignes med at skulle købe et hus. Det er en stor investering, de færreste har prøvet det før, og der er masser af specialviden involveret.

I det øjeblik du beslutter dig for at bygge et hus, ved du nogenlunde hvilke rum du gerne vil have og har måske også en idé om nogle af de materialer, der skal bruges. Så du ringer til den nærmeste arkitekt, præsenterer din ønskeliste og nu vil du naturligvis gerne vide, hvad dælen koster det at få det hus.

Problemet er bare, at selv om du har lavet en fin liste med en masse rum, du kunne tænke dig, er der stadig enormt mange ubekendte. Og her tænker jeg ikke bare på beliggenhed, beliggenhed, beliggenhed.

Køkkenet

Lad os bare tage ét af rummene som eksempel; køkkenet. Du kan få et fint køkken for 50.000, men vil du have alle låger i massivt træ, nedsænket vask, bordplade i 20cm granit, vandhane i guld, og alle skabe tilpasset til loftets kurver kan du betale 500.000 for et køkken. Det sidste køkken er helt sikkert et lækrere køkken, men du kan lave det samme mad begge steder. Så hvilket køkken er det, der står på din liste?

Hvor mange rum er der på din liste? Hvert eneste af dem rummer et lige så stort spænd, hvilket betyder at dit hus kan koste næste lige hvad du har lyst til. Der er naturligvis en nedre grænse, som alt andet lige giver dig et sted at sove, lave mad og bo - det opfylder altså dine behov.

Software har ikke samme begrænsninger

Men hvor det at bygge et hus er en ret fast proces, begrænset af nogle fysiske rammer, er det at bygge en softwareløsning ikke - så her bliver analogien lidt spøjs.

Vi behøver ikke starte med at pilotere, hvorefter vi støber fundament, opsætter rammen, laver vægge osv (er det tydeligt at jeg ikke er entreprenør?). Når du laver software kan du starte med taget efterfulgt af køkkenet, hvorefter du flytter taget en etage op, så der kan blive plads til soveværelset. Alt imens du bor i huset.

Tag beslutninger så sent som muligt

Så for nu at vende tilbage til køkken-eksemplet. Hvis du havde mulighed for at starte med det billige køkken, hvor du kan lave mad uden problemer, ville du så ikke det? Hvis det senere viser sig, at du har behov for lækrere detaljer, kan vi ændre køkkenet. På den måde kan det godt være, at du ender med det ultralækre køkken, som du havde drømt om og med at betale den fulde pris.

Men det kan også være, at du vurderer at bordpladen ikke rigtigt behøver at være af granit og derfor sparer de penge. Den vurdering kan du endda lave, mens du står i det fuldt fungerende køkken - altså på det mest informerede grundlag, der er muligt - i modsætning til i starten af projektet, hvor du ikke har andet end en idé og en liste af ønsker til rum og indretning.

Accepter at du ved mindst i starten af projektet

Det siger næsten sig selv, at langt de bedste løsninger bygges, når så mange beslutninger som muligt tages på så informeret et grundlag som muligt. Det opnår du kun, hvis du indser, at dit software-projekt er en løbende proces, og ikke et hus, der er nødt til at blive bygget fra fundamentet op og ikke er brugbart før alt er bygget færdigt.

Med andre ord, start med det simple køkken og udvid det, når du ved at det er nødvendigt - det giver den rigtige løsning hurtigst og billigst.

Gør noget ved det nu

Tag fat i os allerede i dag, så vi kan skabe et solidt fundament for dit online produkt.