Wat kost het om zelf software te maken? 1/2

Wat kost het om zelf software te maken? 1/2
En hoe kan je je goed voorbereiden als je hierover nadenkt? 
 

Inleiding 

Het laten ontwikkelen van ‘eigen software’ is een uitdagend proces dat veel organisaties vroeg of laat overwegen. De kosten hiervoor kunnen echter sterk variëren, afhankelijk van factoren zoals het doel van de software, de gewenste functionaliteiten en complexiteit van bijvoorbeeld integraties.  

Bouwen van een huis 

Vergelijk het met het bouwen van een huis: er verschillende factoren die van invloed zijn op het ontwerp, de kosten, en het verloop van de bouw. 
 
In dit artikel geven we je inzicht in de belangrijkste aspecten die de kosten van maatwerksoftware bepalen, zodat je goed voorbereid aan de slag kunt gaan en met vertrouwen gefundeerde keuzes kunt maken. Een goede voorbereiding is namelijk het halve werk en helpt om verrassingen en onnodige kosten te voorkomen. 
 
Leuk dat je software wilt laten maken!  
 
Maar wat kost zoiets? Is dat moeilijk? Deze vragen krijgen we bij bond for web solutions vaker. Een kort, simpel antwoord is er niet te geven.  
 
Vergelijk het met het bouwen van een huis: wat kost dat ongeveer? “Dat hangt ervan af”, zegt de aannemer. “Van inhoud, oppervlakte, gebruikte materialen en afwerking.” Hetzelfde geldt voor een het ontwikkelen van een onlineapplicatie.  
 
We gaan het toch proberen: het doel van het artikel is om je praktische handvatten te geven en uiteindelijk antwoord te geven om de vraag: “Wat kost het om zelf software te laten maken”. 
 
Om inzicht te krijgen in de kosten van een applicatie is het van belang te kijken wat het doel precies is? Wat wil je bereiken? Wat is het specifieke doel wat je voor jouw organisatie of klantengroepen wilt behalen?  
 
Bij bond for web solutions proberen we in een workshop de antwoorden op deze vragen te achterhalen. We gebruiken daarvoor een beproefde checklist, om jou een duidelijk beeld te geven van de verschillende kosten. De acht vragen: 
  1. Wat is het doel van de oplossing? 
  2. Bestaan er vergelijkbare applicaties? 
  3. Voor welke gebruikers is de applicatie primair bedoelt? 
  4. Wat is de business case? 
  5. Welke functionaliteiten zijn er minimaal nodig om het doel te behalen? 
  6. Zijn er integratie met (bestaande) systemen voorhanden of noodzakelijk? 
  7. Om hoeveel data gaat het? 
  8. En wat is het beschikbare budget? 

1. Wat gaan we tackelen?  

De eerste stap is om te bepalen welk doel je wilt bereiken. Die doelstelling(en) helpen je voorafgaand aan, tijdens én na de implementatie van je applicatie om juiste keuzes te maken.  
 
Welk probleem ga je tackelen? Wat gaat het opleveren? Bekijk het voor de verschillende klantgroepen. 
Wanneer is iedereen blij?  Probeer het zo concreet mogelijk te houden 
 
Deelvragen helpen je om prioriteiten te kunnen stellen. Eerst schets je het grotere plaatje en deel te het project verder op in kleine meetbare en behapbare stukken. Denk eerst groot en werk stap-voor-stap naar kleinere delen.  
 
Stuur steeds bij waar nodig. Het kan voorkomen dat in deze fase er met meerdere personen in de organisatie gesproken wordt en jouw plan steeds bijgesteld wordt. Luister goed, verwerk de waardevolle feedback, maak het plan harder en stel prioriteiten. 
 
De antwoorden helpen je om de kosten voor jouw applicatie te identificeren en het zorgt ervoor dat je niks vergeet (of misschien onderschat) en kan je helpen de juiste (type) partner te selecteren.  
 
En nadat de software voor iedereen beschikbaar is, kan er ook gemeten worden of de doelen zijn behaald en het project geslaagd is. (En of je misschien nog moet bijsturen). 

2. Bestaan er vergelijkbare oplossingen? 

Vaak bestaat er al oplossing die jou kan helpen het probleem of uitdaging te tackelen: alsjeblieft niet het wiel opnieuw uitvinden. Wat is er in de markt al beschikbaar? 
 
Controleer in de markt of er standaard of vergelijkbare applicaties zijn. Kijk ook buiten jouw branche of zelfs internationaal. Zo kun je tijdens de voorbereidingsfase nagaan of er misschien al in jouw behoefte is voorzien.  
 
Het helpt ook bij het beslisproces om uiteindelijk toch voor een bestaande applicatie te kiezen. (Wat ook vaak een goed resultaat kan opleveren).  
 
Of beter nog: gebruik de specificaties van een vergelijkbare applicatie voor het opstellen of bijscherpen van jouw eisen en wensen. Leer van het voorwerk of ervaring van andere. 
 
Vaak is het ook een afweging van ‘zelf doen’ of ‘uitbesteden’. Het kan natuurlijk voorkomen dat een bestaande applicatie al voorziet in de meest elementaire behoefte. Vraag je wel af of je verder in de tijd met een dergelijke applicatie kan doorgroeien of het misschien al snel gaat wringen? 
 
Een extra aandachtspunt zijn mogelijke licentiekosten per gebruiker. Neem dit in je business-case en berekeningen. Wat kosten de licenties bv voor een langere periode of een groeiende vraag? 

3. Voor wie is de applicatie bestemd? 

Voor welke klantengroepen is de oplossing bedoelt? En zijn er meerdere groepen waar jouw oplossing meerwaarde voor kan bieden? Denk hierbij aan klanten, medewerkers, management, leveranciers en of afdelingen binnen de organisatie.  
 
Vaak hebben verschillende type gebruikers andere eisen of wensen of is bijvoorbeeld het kennisniveau niet gelijkwaardig. Belangrijk om daar vooraf in de onderzoeksfase al rekening mee te houden. Wees specifiek en benoem de overeenkomsten en verschillen. 
 
Ook de hoeveelheid gebruikers is belangrijk bij het ontwikkelen van nieuwe software. Je kan bij het opstellen van het plan ook denken in fases: voor wie is de oplossing primair bedoelt en welke gebruikers zouden later in tijd kunnen aanhaken? 
 
Wat we bij bond vaak doen is het ontwikkelen van een MVP, een soort demo. Met de eenvoudige demo onder de arm kan je verder onderzoek doen naar specifieke eisen of wensen. Je maakt het meer tastbaar en concreet. In een workshop kan je een expertgroep betrekken bij het beantwoorden van de ‘klantvraag'.  
 
In de regel wordt maatwerksoftware door meerdere groepen in de organisatie gebruikt. Wel is het zo dat niet iedereen dezelfde functies of rechten heeft voor delen van jouw applicatie. Een rechtenmatrix kan hierbij veel inzicht bieden. 

4. Wat is de business-case? 

Kost het geld of is het een serviceproduct? Of zijn er scenario’s te bedenken dat jouw oplossing zichzelf gaat terugverdienen?  
 
Stel je voor dat de oplossing waar je naar opzoek bent als doel heeft om garantie-aanvragen van klanten te automatiseren. Dan wil je weten wat het handmatig verwerken van een aanvraag nu kost (tijd, middelen) en wat het je oplevert als dit proces gaat digitaliseren? En dat gaat verder dan alleen de tijdswinst. Denk niet alleen in kostenvoordelen. 
 
Het kan ook helpen klanttevredenheid en kwaliteit te verhogen. Dat heeft ook een waarde. Wanneer je een SaaS (software as a service) applicatie gaat ontwikkelen dan geeft dat extra (zakelijke) mogelijkheden zoals het afspreken van een abonnementsstructuur. Dat kan helpen een deel van de ontwikkelkosten op termijn terug te verdienen.  
 
Veel organisaties zien hier een extra (maandelijkse) kasstroom ontstaan.  
 
Het is goed om jezelf af te vragen wie de groepen zijn en naar welke omvang het zou kunnen groeien. En welke toegevoegde waarde wordt er geleverd? En wat zijn ze bereid om te betalen voor jouw oplossing? 

5. Welke functionaliteiten heb je nodig? 

Wat wil je dat de applicatie doet? Welke functionaliteit moet er gewoon inzitten (must-have)? Wat kan zou er eventueel later aan worden toegevoegd (nice-to-have)  
 
Even terug naar het voorbeeld van garantie-aanvragen: Wat moet de klant kunnen doen om de aanvraag in te dienen? Voor wie moet deze aanvraag zichtbaar zijn? Welke vervolgstappen zijn verreisd om de garantie toe te kennen? Wat als de garantie afloopt? Zijn er nog aanvullende wensen zoals een inlog, rapportagefunctie, klanthistorie etc. Of denk ook aan privacy, wetgeving, opslagbeleid, etc 
 
Betrek bij de inventarisatie juist de experts, diegene waar je het voordoet. Dat zorgt voor essentiële inzichten, waar jij misschien nog helemaal niet aan gedacht had. Daarnaast, heel belangrijk, helpt het mee om de acceptatie van de nieuwe software te vereenvoudigen.  
 
Vervolgens prioriteer je de gebruikerswensen. Dit helpt bij het bepalen van wat de MVP (een eerste versie van de oplossing) ongeveer moet doen en wat de eventuele vervolgstappen en kosten zouden kunnen zijn. 
 
Opmerkingen: Een kritische succesfactor in onze ogen is het goed luisteren, het verwerken van de feedback, de gebruikersgroepen vroegtijdig betrekken, het hebben van een duidelijke routekaart en het denken en werken in een stap-voor-stap aanpak. Het kan nooit allemaal tegelijk. Neem mee in je plan hoe je de gebruikers gaat verwelkomen, helpen bij het gebruik en belonen van succes. 

6. Is integratie met (bestaande) systemen nodig? 

Wat ook van invloed is op de kosten is een eventuele integratie of koppeling met een bestaande oplossing of applicatie. In moderne organisaties zijn er vaak meerdere bronnen waar rekening mee gehouden moet worden. Maak het ICT-landschap inzichtelijk.   
 
Welke gegevens zijn noodzakelijk en waar zijn deze opgeslagen? Gaan we de opgehaalde gegevens nog bewerken of op een andere manier presenteren? Wie is eigenaar van de data en hebben we daar toegang toe? Werkt de beloofde API-koppeling wel zoals beloofd was? 
 
Is er al een koppeling op de markt die we slim kunnen hergebruiken of maken we een slimme duurzame koppeling naar de beschikbare data? Welke (internationale) standaarden gaan we gebruiken? 
 
Of wat gaan we doen als er aanpassingen zijn in de externe koppelingen? Wie is er product eigenaar en is intern aanspreekpunten voor aankomende wijzigingen en is dat goed geborgen in een onderhoudsplan? Kan je een inschatting maken van de toekomstige kosten bij grote aanpassingen bij leveranciers?  

7. Hoeveelheid data? en datamigratie? 

De hoeveelheid data die je applicatie gaat verwerken, hoeveel berekeningen er gaan plaatsvinden en de opslag ervan heeft invloed op de keuze van de software-architectuur. En dat heeft weer invloed op de kosten.  
 
Ben je zelf eigenaar van de gegevens of moeten er nog aanvullende afspraken gemaakt worden? Kijk ook naar de toekomst: wat doen we bij veranderingen die er ongetwijfeld gaan komen. Is dat goed vastgelegd? 
 
Als je data van je huidige software wilt behouden, dan is datamigratie een vereiste. In de voorbereiding maak je een plan welke data te sowieso wilt bewaren of waar je afscheid van gaat nemen. De volgende stappen zijn: extraheren, valideren en transformeren van de bestaande data naar de nieuwe applicatie. 
 
Juridisch: waar wordt de data opgeslagen en is dat juist geborgd?  

8. Wat is het beschikbare budget? 

Je weet nog niet wat het gaat kosten een applicatie te ontwikkelen. Maar je kunt misschien wel achterhalen hoeveel budget er is binnen jouw organisatie. Dit helpt jezelf, en partij die gaat ontwikkelen, om keuzes te maken in functionaliteit en wel/niet integreren met bestaande software. Daarnaast gaan we grofweg uit van de volgende onderdelen van een begroting: 
  • Initiële kosten
  • Uitbreidingsbudget
  • Trainingsbudget
  • Beheer- en onderhoud
  • Eventuele licentiekosten
  • Hosting, back-up
  • Integratiekosten  
Het gaat in deze fase om een begroting in hoofdlijnen. Verder detaillering en concretisering stel je samen met de ontwikkelpartner. Vergeet niet dat software zich heden ten dage continu ontwikkelt en zich aan moet passen aan nieuwe, snel veranderende wetgeving, doelgroepen of scenario’s. Het is daarom verstandig om een horizon van ongeveer drie jaar aan te houden. 

Conclusie 

Na het lezen weet je nog steeds niet wat het laten ontwikkelen van een applicatie kost. Maar je weet wel welke vragen je moet beantwoorden en welke keuzes je zou kunnen maken.  
 
Het laten ontwikkelen van maatwerksoftware brengt diverse kosten met zich mee, variërend van inventarisatie en uurtarieven tot integratie en onderhoud. Door vooraf goed na te denken over zaken zoals de doelgroep, noodzakelijke functionaliteiten en mogelijke integraties met bestaande systemen, kun je de kosten beter inschatten en weloverwogen beslissingen nemen. 
 
Hoewel de initiële investering hoog kan zijn, biedt maatwerksoftware vaak flexibiliteit en groeipotentieel die standaardoplossingen niet altijd kunnen bieden. Door het maken van een solide businesscase en het helder formuleren van prioriteiten, leg je de basis voor een succesvolle en kostenefficiënte softwareontwikkeling. 
 
Advies is om op de volgende vragen een helder antwoord te formuleren: 
  • Ambities op lange termijn  
  • Bedrijfsdoelstellingen  
  • Beschikbare tijd en budget  
Met deze voorbereiding kun je, samen met een softwarebedrijf, de kosten achterhalen en starten met software innovatie. 
 

In gesprek

Blijf op de hoogte van actuele gebeurtenissen op het gebied van platformen, digitalisering en veiligheid.

Schrijf in