Stel: je hebt een geweldig idee voor een app, platform of ander soort software. Je wil het graag laten ontwikkelen door een softwareontwikkelaar. Maar wat kun je verwachten van het ontwikkelproces? En hoe bereid je je goed voor?
Stap 1: De requirement analyse
Een ontwikkelproces begint altijd bij een requirement analyse. Dit betekent dat je als softwareontwikkelaar samen met de klant gaat zitten en kijken naar het waarom achter de applicatie. Waarom wil je deze app maken? Wat is het doel? Wat wil je er mee bereiken? Wat wil je toevoegen? Vaak ontdekken we bij die eerste stap dat de klant gefixeerd is op een bepaalde manier waarop die oplossing geboden moet worden. Laten we zeggen dat een klant babysitters wil koppelen aan gezinnen. Dan zou hij misschien helemaal gefixeerd zijn op het idee dat het via social media moet verlopen. Maar dit hoeft niet de beste oplossing te zijn. Om die te vinden, moeten we ons eerst afvragen: waarom wil je deze mensen koppelen? Wat is het fundament? Als we daar naar teruggaan, zien we misschien dat er een veel handigere oplossing te bedenken is.
Vaak merken we dat de klant ook een eindeloze lijst aan features voor ogen heeft. Features die misschien heel leuk zijn om te implementeren, maar zijn ze ook nodig? En hebben ze toegevoegde waarde? Ook dan is het belangrijk om weer terug te gaan naar de kern. Dan gaan we kijken: voor wie wordt die applicatie gemaakt? Wie zijn de gebruikers? En wat is dan handig om te bouwen?
Stap 2: Het minimum viable product
De volgende stap is het definiëren van het minimum viable product. Dit betekent dat je gaat kijken hoe je de meest uitgeklede versie van het product kan maken, dat wel werkt en waarde toevoegt. Dit bepalen we aan de hand van de drijfveren die we in stap 1 hebben besproken. De grote vraag hierbij is: wat voor systeem wordt het ongeveer? Wordt het een platform of een marktplaatsachtige applicatie? Of een simpele website? En ook belangrijk: wat moet een gebruiker minimaal kunnen doen? Alle onderdelen die we kunnen bedenken, zetten we dan in een backlog. En dan gaan we kijken: wat is noodzakelijk?
Stap 3: De techniek
In de volgende stap wordt het systeemontwerp, of de architectuur, ontworpen. Op functioneel niveau ligt er nu een oplossing. Alleen dan moet je vervolgens nog allerlei dingen bepalen. Bijvoorbeeld: wat voor hardware je gaat gebruiken? Wat voor serversoftware? Wordt het voor web of mobiel? En hoeveel databases heb je nodig? Ook dit aspect moet volledig uitgedacht worden.
Stap 4: De mensen
Je gaat in stap 4 beginnen met de ontwikkeling van het mvp. Je weet nu wat je gaat maken. Maar je moet vervolgens nog wel bedenken: oké, met welke mensen gaan we dit doen? En hoe richten we de samenwerking in? Werken we bijvoorbeeld met daily stand-ups of wekelijkse meetings?
Stap 5: de implementatiefase en de testfase
In stap 5 ga je de onderdelen van het product implementeren, en het product testen. Na het implementeren van de onderdelen doen we als eerste een release in onze eigen testomgeving. Hier doen we interne tests om alle bugs eruit te halen. Vervolgens doen we een release in de accepratieomgeving, waar de klant het product kan controleren en kijken of hij vindt dat het naar behoren werkt. Dit proces herhalen we iedere twee weken, en releasen om de twee weken een volledig geupdate versie. De implementatiefase en de testfase lopen dus eigenlijk iteratief.
Als de testfase helemaal goed gaat, kunnen we uiteindelijk het product releasen in de productomgeving. Maar wanneer deze release is gedaan, kom je eigenlijk alweer terecht in een nieuwe fase, waarbij je weer doorontwikkelt. En dan moet je wederom de updates gaan implementeren en testen.
Het is belangrijk om te begrijpen dat het ontwikkelproces voor software nooit af is. Zeker bij mobiele applicatie, of een platform, blijf je altijd doorontwikkelen en optimaliseren. Je zorgt altijd dat de productieomgeving goed gemonitord wordt, zodat als er een bug ontstaat, of een server uitvalt, er dan gelijk ingegrepen kan worden.