Software maken: Hoe moeilijk kan het zijn?
“Ik weet wat ik wil. De developers moeten dat enkel programmeren. Hoe moeilijk kan het zijn?”
Een uitspraak die ik (helaas) al vaak heb gehoord van ondernemers die weinig ervaring hebben met het ontwikkelen van software.
Het verhaal is gekend: de ondernemer heeft een gat in de markt gezien, en wil daar haar pijlen op richten. Volgens haar is de oplossing een app of een website of iets dergelijks - in ieder geval een softwareproduct. Vervolgens schrijft ze neer wat die software moet doen - soms is dat een beknopt of een lijvig Word document, soms zitten er wat Powerpoint slides bij die de user interface duidelijk moeten maken. In ieder geval beschrijft dat document volledig hoe de uiteindelijke software eruit moet zien en hoe ie moet werken.
De ondernemer gaat dan op zoek naar een software agency die de app kan ontwikkelen. Ze schrijft er een paar aan, en met een aantal van hen gaat ze aan tafel zitten. Het document wordt op tafel gelegd, en het agency wordt gevraagd een offerte te maken. De beste offerte wordt weerhouden, en voila, het agency bouwt de app.
Tot zover is er geen vuiltje aan de lucht. Wat er vervolgens gebeurt, is vaak minder leuk. De app wordt gelanceerd en ... er komen geen gebruikers of klanten op af. Hoe komt dat? Het agency heeft vast een paar dingen niet goed gemaakt! Er ontbreken nog een paar heel belangrijke features! Die waren toch heel duidelijk beschreven in het oorspronkelijke document!
Waar gebeurd
De echte oorzaak ligt helaas iets ingewikkelder. Laat me je even een waar gebeurd verhaal vertellen. Onlangs was ik op de koffie bij een startup die bovenstaand scenario had doorlopen. Ook zij merkten dat ze weinig tractie kregen op de markt. Wat was de oorzaak toch? Om dat te achterhalen, besloten ze gebruikerstesten uit te voeren. Een tiental gebruikers uit hun doelpubliek vroegen ze om een aantal taken uit te voeren met hun platform, terwijl iemand van hen naast hen zat om te kijken hoe de gebruikers een taak volbrachten. Wat bleek? Van die tien gebruikers slaagde er niet één in om een account aan te maken. Hun gebruikers waren niet in staat om de hele flow te doorlopen die nodig was om een username en wachtwoord te krijgen op het platform. De mensen van de startup waren zo gewoon om in die flow te denken, dat ze niet doorhadden dat die flow heel moeilijk te begrijpen was voor hun gebruikers.
Een heel lange inleiding om te zeggen: een nieuw, innovatief software product bouw je niet door een aantal features op tafel te leggen en die te maken. Er zijn heel wat dingen waar je aandacht aan moet besteden.
Test!
Je bouwt innovatieve software. Dat wil zeggen dat je iets maakt dat nog niemand ooit gemaakt heeft. Hoe kan je dan weten of je de juiste beslissingen neemt? De enige manier om innovatieve software te maken, is door kleine stapjes te nemen, en die elke keer opnieuw uit te proberen bij je gebruikers. Zijn ze tevreden? Prima, dan gaan we verder. Zijn ze niet tevreden? Ai, dan moeten we een stapje terug nemen en iets anders proberen.
Moeilijk proces
Je merkt dat dit een heel intensief proces is, waar je op voorhand moeilijk van kan gaan bepalen hoeveel tijd en middelen je erin gaat moeten steken. Daar komt nog bij dat software nooit "af" is: je kan altijd nog dingen verbeteren en toevoegen. Je relatie met het software agency is een heel breekbare relatie. Eens je met een agency in zee gaat, is het heel moeilijk om hen te vervangen door een andere partij. De opgebouwde kennis wordt snel heel groot. Daarenboven heeft elk agency wel haar eigen combinatie van tools die ze gebruiken, dat het vaak onmogelijk is om een ander agency te vinden dat in al die tools even goed thuis is. Houd ook in het achterhoofd dat de doelstellingen van een agency niet dezelfde zijn als de doelstellingen van een ondernemer. Een agency wil software schrijven. Een ondernemer wil investeren in iets dat een zekere return gaat opleveren. Dat is niet altijd hetzelfde; sommige zaken kan je oplossen met software die al bestaat. Weinig agencies hebben de neiging om die te gebruiken - ze schrijven het liever zelf.
Kom beslagen op het ijs
Zorg dat je als ondernemer genoeg kennis opbouwt om je software team te sturen en om al eens tegengas te kunnen geven. Zolang je die kennis niet zelf hebt, laat je je best bijstaan door iemand met ervaring. Ervaring niet alleen in software ontwikkeling, maar ook in de ontwikkeling van innovatieve producten.