Software nauwkeurig inschatten: “Hoeveel kost het en wanneer is het af?”

3 oktober 2023

Software heeft een reputatie van gemiste deadlines en kosten die hoger uitvallen. Wat is er zo ingewikkeld aan het opstellen van een van tevoren compleet uitgewerkt plan, met een sluitende tijdlijn, die resulteert in software die aan de behoeften van je gebruikers voldoet?

Klinkt het volgende bekend? Een ondernemer ziet een gat in de markt en heeft plannen voor een baanbrekend SaaS-platform, of een revolutionaire app. Een softwareproduct in ieder geval. Dit plan wordt begeleid door een uitvoerig Word-document, met beschrijvingen van features, voorbeelden van vergelijkbare oplossingen, en misschien een aantal mock-ups voor de user interface.

Nu nog iemand die het kan bouwen.

De ondernemer stapt met zijn of haar plan op een aantal softwarepartijen af en vraagt offertes op. Liefst op basis van een vaste prijs, want dat geeft zekerheid. De vereisten zijn immers bekend. Hij of zij vergelijkt de voorstellen en maakt een keuze.

De ontwikkelaars gaan aan de slag. Veel contact met de opdrachtgever is er niet. Het aangeleverde document is de leidraad tijdens de bouw van de applicatie.

Onvoorzien werk

De opleverdatum komt in zicht. Het ontwikkelteam werkt de klok rond, maar er is sprake van tegenslag. De app reageert traag en bevat een aantal moeilijk op te lossen bugs. Sommige delen van de software moeten worden herschreven. Bovendien heeft niemand aan de noodzakelijke migratie gedacht. De klus loopt uit, er zijn flink meer uren nodig en dus meer budget.

Meer problemen

Nadat de software met vertraging is opgeleverd, is het tijd om live te gaan. Een online contentstrategie en een advertentiecampagne moet voor aanmeldingen zorgen. Maar het aantal registraties valt tegen. Er is weinig activiteit op het platform en de omzet stelt teleur.

Wat is er aan de hand?

Door een verwarrende navigatie blijkt de doelgroep het registratieformulier niet te kunnen vinden, dat bovendien onlogisch is ontworpen. Bezoekers die het wel weten te vinden, haken af door een teveel aan stappen en een gecompliceerd afrekenproces.

Ook wekt het ontwerp van de user interface en het gebrek aan de juiste content niet voldoende vertrouwen bij de bezoekers, waardoor ze niet tot aankoop overgaan.

Boos

“Ik weet exact wat ik wil,” betoogt de ondernemer. “De ontwikkelaars hoeven het alleen maar te bouwen. Wat is daar zo moeilijk aan?”

Helaas een veelgehoorde uitspraak van ondernemers die niet dagelijks te maken hebben met het ontwikkelen van software. En geef hen eens ongelijk – veel andere sectoren lukt het wél om accurate planningen te bieden en na te leven.

Die ontevreden ondernemer verdient dus een uitleg.

De bouwmetafoor: handig maar beperkt

Vaak wordt de bouwindustrie als metafoor aangehaald. Concepten zoals herbouwen, renoveren, het fundament, het raamwerk en het spreekwoordelijke likje verf maken het makkelijker om over software te praten.

Het probleem met metaforen is echter dat zo’n vergelijking altijd ergens mank loopt. Softwareontwikkeling is namelijk niet de bouw. Software is vele malen complexer dan het realiseren van een aanbouw of het plaatsen van een dakkapel. De bouwsector is een van de oudste industrieën ter wereld en leunt sterk op traditionele werkwijzen, terwijl de moderne software-industrie pas sinds de tweede helft van de 20e eeuw bestaat, waarin de mogelijkheden en ontwikkelingen zich steeds sneller opvolgen.

Kortom, het lijkt dus ingewikkeld, zo niet ondoenlijk, om een van tevoren compleet uitgewerkt plan op te stellen, met een sluitende tijdlijn, die resulteert in software die aan de behoeften van je gebruikers voldoet. Waar zit ‘m dat in?

  1. Softwareontwikkeling is inherent complex: het vertalen van menselijke logica, in de vorm van gewenste functionaliteiten, naar een reeks exacte en foutloze instructies die een computer begrijpt, vereist abstract denken. Het is nauwelijks mogelijk om alle mogelijke variabelen en potentiële problemen van die vertaalslag van tevoren te identificeren.
  2. Veranderende vereisten door bijvoorbeeld feedback van gebruikers of technische beperkingen die pas later aan het licht komen. Deze wijzigingen kunnen de oorspronkelijke schattingen in de war schoppen.
  3. Nieuwe technologieën en frameworks komen voortdurend op de markt. Het kan lastig zijn om in te schatten hoe snel deze technologieën begrepen en geïmplementeerd kunnen worden.
  4. Scopecreep: “kan deze feature er ook nog even snel bij?” Klanten en gebruikers kunnen de scope van een project uitbreiden, wat leidt tot vertragingen en kostenoverschrijdingen.
  5. Integraties met andere systemen: moderne software communiceert vaak met API’s en andere systemen. Die afhankelijkheden brengen extra complexiteit en onzekerheid met zich mee.
  6. Schaalbaarheid: software die tienmaal het aantal beoogde gebruikers aan moet kunnen, zal anders ontworpen moeten worden. Andersom is het té deugdelijk uitvoeren van je software zonde van de ontwikkelkosten.
  7. Externe invloeden, zoals marktveranderingen, concurrentie en regelgeving, die je plannen kunnen verstoren. Denk bijvoorbeeld aan COVID-19 of wetgeving rondom AI.

De vraag is: moeten we simpelweg accepteren dat software maar moeilijk in te schatten is, en dat de kosten oncontroleerbaar de pan uit kunnen rijzen? Wat kunnen we wél doen?

De kracht van kleine stappen

De enige manier om succesvolle software te maken, is door kleine stappen te nemen. Je hebt een idee voor een feature, maar wat vinden de gebruikers in de praktijk? Zijn er onvoorziene technische beperkingen? Door vroeg te testen, kun je ook vroeg bijsturen. Hierdoor wordt software geleidelijk verbeterd en aangepast aan de evoluerende behoeften van gebruikers.

Een korte feedbackloop tijdens het bouwen van software is een essentieel concept in agile softwareontwikkeling. Door goede en regelmatige communicatie tussen ontwikkelaars en gebruikers worden fouten, problemen en verkeerde afslagen bijtijds geïdentificeerd en opgelost.

Door in korte iteraties werkende software op te leveren, kan er vroeg getest en bijgestuurd worden. Werkt de nieuwe feature zoals bedoeld? Moeten we hem lichtelijk herzien, of zelfs schrappen? Bedenk dat dit soort inzichten de vervolgstappen kunnen beïnvloeden, en het wordt duidelijk hoe belangrijk continue feedback is.

Conclusie

Je bouwt innovatieve software. Dat betekent dat je iets doet dat nog niet eerder is gedaan. Hoe weet je dan of jouw hypothese aansluit bij de behoeften van je gebruikers?

De vraag “Hoeveel kost het en wanneer is het af?” gaat ervan uit dat software ooit ‘af’ is. Dat is zelden het geval. Een veranderende markt, nieuwe technologieën, maar vooral continue feedback van gebruikers zorgen ervoor dat je je koers moet blijven bijstellen.

Het impliceert dat alle variabelen van tevoren bekend zijn. Dat is een illusie. En voor het succes van jouw software is dat maar goed ook.

Hoe kunnen wij je helpen?

De keuze voor de juiste techpartner wil je goed overwogen maken. Daarom helpen wij je graag verder. Heb je een vraag over jouw softwareproject? Wil je een prijsopgaaf, no strings attached? Heb je een plan liggen en wil je een second opinion?

Ons voorstel: een vrijblijvende videocall, waarin we al je vragen beantwoorden en wij jou de juiste vragen stellen. Kunnen we meteen kijken of we een klik hebben en wat we voor je kunnen betekenen.

Plan direct een videocall in

Artifact

Artifact bouwt maatwerksoftware zoals webapplicaties, API's, integraties en SaaS-platforms. Met meer dan twintig jaar ervaring zijn we een betrouwbare partner voor het realiseren van jouw softwareproject.

Over ons

Vacatures

Blog

Contact

+31 (0) 6 270 227 32
info@artifact.nl

support@artifact.nl

Mr. H.F. de Boerlaan 24 F
7417 DA Deventer

KvK 68139381


© 2023 Artifact. Alle rechten voorbehouden.

Algemene voorwaardenPrivacyverklaring & disclaimer