Software groeien is beter dan software bouwen

Het (laten) maken van software is een kostbare activiteit, waarbij je zeker wilt stellen dat de waarde van het resultaat opweegt tegen de investering die ermee gemoeid is.

Software bouwen

Dit motiveert om vooraf goed uit te zoeken wat de beoogde software allemaal moet kunnen en doen. Vervolgens maak je op basis van dit resultaat een ontwerp, wat leidt tot een overzichtelijk en afgebakend plan met zo veel mogelijk zekerheden. De uitvoering van dit plan bestaat daarna uit het efficiënt bouwen van de oplossing die vooraf is bedacht. Als het plan klopt, dan loopt aan het einde van dit proces een prachtig stuk software van de band, en is iedereen gelukkig…

Echter

Tijdens het op deze manier bouwen ontstaan altijd weer subtiele problemen: Er zitten wat dingen technisch tegen, de schattingen waren te optimistisch, en feedback van potentiële klanten past het vooraf bepaalde beeld over de benodigde functionaliteit aan. Hierdoor moet er meer gesleuteld worden dan voorzien, met als resultaat dat het project meer kost van verwacht, later is afgerond dan gepland, een sub-optimaal product wordt aflevert, of het project zelfs helemaal wordt afgeblazen.

Waarom

Deze aanpak van het “software bouwen” is gebaseerd op de tastbare wereld om ons heen. Onze dagelijkse ervaring is dat het het (drastisch) vervormen van dingen moeilijk is, en natuurwetten als zwaartekracht een volgorde van handelen opleggen.

In veel gevallen gelden dergelijke beperkingen niet voor de ontwikkeling van software: Je kunt met de middelste etage van de flat beginnen, de kleur van de stenen onderweg een paar keer veranderen, en de fundering achteraf een stukje uitbreiden omdat de woonkamer op alle 40 verdiepingen ietsje groter moet worden.

Software groeien

Wellicht is “groeien” daarom een betere metafoor voor de realisatie van software. Zoals een baby zich ontwikkelt tot kleuter, die verder groeit tot jongere en uiteindelijk volwassene. Groei werkt doorlopend over de hele breedte, met fasen waarin bepaalde aspecten meer groeien dan andere. Groeien gebeurt volgens een globaal plan, waarbinnen de details doorlopend aan de interne en externe omstandigheden worden aanpast.

Het verschil tussen bouwen en groeien, in zowel het proces als het eindresultaat
Het verschil tussen bouwen en groeien, in zowel het proces als het eindresultaat

Door op deze manier naar de realisatie van software te kijken, ontstaat een betere manier om de waarde van de investering te borgen. Er is immers al vroeg te zien welke kant het op gaat, en als die niet bevalt is bijsturing goed mogelijk.

Natuurlijk

Voorwaarde is dat het doel voldoende duidelijk is om als globale planning te dienen, en er voldoende middelen zijn om de minimaal benodigde groei te faciliteren. Het gevolg is dat kans op succes enorm toe zal nemen. Het is niet voor niets dat de natuur kiest voor groeien boven bouwen.

Gebruik de ervaring van Software101 om ook uw software te laten groeien.