Maatwerk software ontwikkeling: waarom meer dan 50% van de softwareprojecten mislukken

1 februari 2022 | Simplefly

Wist je dat 50-80% van de software ontwikkel trajecten geheel of deels mislukken? Je moet dus goed beslagen ten ijs komen wanneer je aan de slag wilt met maatwerk software ontwikkeling. Met dit artikel helpen we je op weg.

Zowel overheden, corporates, ZZP-ers, start-ups als MKB-bedrijven krijgen er mee te maken: mislukte softwareprojecten. De gevolgen zijn vaak dramatisch: enorme vertragingen, grote verliezen en een flinke dosis reputatieschade.

Tijd om eens in kaart te brengen wat de oorzaken van falende maatwerk software ontwikkeling zijn én hoe jij kunt zorgen dat het je beter vergaat.

Maar eerst eens even een paar klassieke voorbeelden…

Blue screens of deaths en echtscheidingen

Met een klassiek stukje reputatieschade laatste maakte Bill Gates al kennis bij de presentatie van Windows 98. Het beruchte Blue Screen Of Death achtervolgde Microsoft overigens tot ver in de volgende eeuw.

In Frankrijk leidde een bug in de app van Uber tot onthulling van een buitenechtelijke affaire van een man. De schade: een echtscheiding en een claim van 45 miljoen euro voor Uber.

Wat er mis kan gaan bij maatwerk software ontwikkeling…

Een pak koekjes leeg eten gaat vanzelf, maar bij softwareontwikkeling geldt het tegenovergestelde: het gaat nooit zomaar goed. De statistieken vertellen ons dus dat maatwerk software ontwikkeling in meer dan de helft van de gevallen gedeeltelijk of volledig faalt.

De gevolgen:

  • Slechte performance: de software is traag, hapert of crasht.
  • Gebrekkige veiligheid: hackers liggen op de loer en gebruikersgegevens op straat.
  • Gebruiksonvriendelijke interface: bezoekers en gebruikers haken af.
  • Bugs: software werkt niet meer of doet iets totaal anders dan bedoeld (zie Uber).
  • Misschien nog wel erger: de software gaat nooit live.

De oorzaken van mislukte maatwerk software ontwikkeling

Toch is er hoop. Het mislukken van van softwareprojecten heeft namelijk bijna altijd een aanwijsbare oorzaak, meestal zelfs meerdere. Hieronder een lijst met de 8 meest voorkomende oorzaken van mislukte IT-projecten en per oorzaak enkele tips om je te behoeden voor de meest gemaakte fouten.

1. Verkeerde tijdsinschattingen

Kost het nu 10 of 100 uur? Een onduidelijke scope, optimisme en niet de tijd nemen om zaken goed door te denken leiden vaak tot enorme vertraging. Zeker wanneer de planning al onder druk staat is dit een van de grootste risico’s voor een softwareproject.

Hoe je dit voorkomt: 

  • Beschrijf duidelijk wat je wilt, bijvoorbeeld door user stories uit te werken. Betrek het ontwikkelteam al in deze fase.
  • Zorg dat er genoeg tijd is om inschattingen uit te werken en accepteer ook dat sommige zaken (nog) niet of maar beperkt ingeschat kunnen worden.
  • Gebruik beproefde methodieken om inschattingen te maken. Een methodiek als Scrum voorziet daar in.

2. Geen ruimte voor veranderingen

In veel softwareprojecten is er weinig tot geen ruimte voor veranderingen. Dat kan variëren van ‘zo hebben we het nu eenmaal bedacht’ tot ‘er is geen budget’ en ‘zo halen we de deadline nooit’. Tunnelvisie en een gebrek aan flexibiliteit zijn echter de perfecte ingrediënten voor een mislukt project.

Hoe je dit voorkomt:

  • Zorg voor een systeem waarin flexibiliteit geborgd is. Agile is hiervoor uitgevonden!
  • Beloon voortschrijdend inzicht en nieuwe ideeën en maakt het laagdrempelig deze in te dienen.
  • Zorg voor momenten waarop afwijkende ideeën en richtingen besproken en uitgewerkt worden.

3. De beruchte quick fix

In softwareland wordt vanwege een gebrek aan tijd of budget meer dan eens gekozen voor de snelle oplossing in plaats van een solide lange-termijnoplossing: de quick fix. Op korte termijn is het ideaal, op lange termijn catastrofaal. Zeker als dit structureel gebeurt: het wordt dan onderdeel van de cultuur en uiteindelijk krijg je hier de rekening voor gepresenteerd.

Hoe je dit voorkomt:

  • Zorg voor een gezonde cultuur waarin er ruimte is voor solide oplossingen.
  • Als je dan toch de binnenbocht neemt: zorg dat dit tijdelijk is en maak duidelijke afspraken.
  • Hanteer een duidelijke definition of done: wat de een beschouwt als een pragmatische oplossing, ziet de ander als een niet wenselijke binnenbocht.

4. Onzorgvuldig programmeren

Wanneer kwaliteitsstandaarden en internationale richtlijnen worden genegeerd, leidt dit ontegenzeggelijk tot problemen. Security en performance raken uit zicht en elke programmeur gaat zijn of haar eigen standaarden hanteren. Ook gemakzucht is vaak debet aan onzorgvuldig programmeren.

Hoe je dit voorkomt:

  • Bepaal op voorhand welke kwaliteitsstandaarden en -richtlijnen worden gehanteerd. Zorg ook voor een systeem waarbinnen dit gehandhaaft wordt.
  • Gebruik een bestaand software framework (bijv. Symfony Framework) waarbinnen bepaalde zaken (security, performance) gefaciliteerd en/of geborgd worden.
  • Faciliteer code reviews waarbinnen programmeurs feedback op elkaars code geven.

5. Gebrek aan kennisdeling en overdraagbaarheid

Er zijn twee belangrijke elementen die hier toe leiden: een gebrek aan training en opleiding en een cultuur waarin te veel nadruk ligt op individuele prestatie.

Hoe je dit voorkomt:

  • Maak ontwikkeling en leren onderdeel van je cultuur, door structureel training en opleiding te organiseren.
  • Zorg voor onderlinge kennisdeling, bijvoorbeeld door een interne Wiki of documentatie en inhoudelijke werk- en voortgangsoverleggen.
  • Faciliteer coaching, door bijvoorbeeld seniors in te zetten om juniors te coachen.

6. Niet mee gaan met technologische ontwikkelingen

Soms is een richting gekozen die aan het begin goed leek, maar later niet meer aansluit bij technologische ontwikkelingen. Het is vaak kostbaar om van koers te veranderen, maar vaak nog kostbaarder om het niet te doen.

Hoe je dit voorkomt:

  • Organiseer technisch leiderschap in de vorm van een CTO en/of technische lead(s).
  • Zorg dat er tijd en ruimte beschikbaar is om ontwikkelingen te volgen en te implementeren.
  • Creëer ruimte in de teamplanning voor innovatie en experimenteren.

7. Gebrek aan reflectie en evaluatie

Maatwerk software ontwikkelen is complex. Er gaan daarom onvermijdelijk altijd zaken mis. Wanneer reflectie en evaluatie geen standaard onderdeel zijn van het ontwikkelproces zal er niet geleerd worden en worden fouten niet voorkomen.

Hoe je dit voorkomt:

  • Creëer een vast ritme voor reflectie, zoals bijvoorbeeld de retrospective in Scrum.
  • Bouw aan een open cultuur waarin mensen zich durven uit te spreken en feedback vast onderdeel is van samenwerken.
  • Zorg dat er steeds een duidelijk plan komt om reflecties, evaluaties en feedback om te zetten in betere (werk)processen.

8. De input en feedback van gebruikers word genegeerd

Een klassieke fout: de software doet functioneel precies wat ‘ie moet doen, maar is niet afgestemd op gebruikers. En wordt er toch gebruikersonderzoek gedaan, dan wordt er vaak weinig of niets gedaan met de uitkomst. Gevolg: software die niemand wil gebruiken of met tegenzin gebruikt.

Hoe je dit voorkomt:

  • Zorg dat je naast een goede ontwikkelaar, tester, engineer en projectmanager een specialist in UX en UI design betrekt bij het gehele proces.
  • Verzamel en analyseer doorlopend feedback en input van gebruikers en maak gebruik van bestaande conventies.
  • Creëer een systeem waarbij inzichten vanuit onderzoek prioriteit krijgen en worden meegenomen in het ontwikkelproces.

En nu?

Zakt de moed je al in de schoenen? Dat begrijpen we. Maar het hoeft dus niet mis te gaan. Door te leren van bovenstaande oorzaken, de tips toe te passen, de juiste methodieken te hanteren en te werken met een ervaren, solide team hoor jij straks bij die 20-50% die wel succesvol software ontwikkelt!

Hulp nodig bij maatwerk software ontwikkeling?

Wij staan uiteraard voor je klaar om met je in gesprek te gaan. Dus neem gerust contact met ons op of:

vraag een offerte aan!