Blog

De klant centraal

Geplaatst op 16/10/2019

Door: ViQiT, bij ViQiT

De wereld van software ontwikkeling heeft de laatse jaren veel veranderingen doorgemaakt. Computers nemen een steeds centralere plek in bij de processen van bedrijven, internet en de groei ervan maakt het mogelijk om applicaties en services in de cloud te draaien. Maar de grootste verandering is wel dat meer en meer bedrijven en organisaties de Agile methode zijn gaan omarmen. Ieder op hun eigen manier, maar de basis is dat het lange moeizame proces van idee naar oplevering ontzettend ingekort wordt door korte iteraties, sprints en continue opleveringen waarbij kleine beetjes functionaliteit stuk voor stuk opgeleverd worden.

Minimal viable products, worden het ook wel genoemd. In een voorbeeld op internet wordt een skateboard omschreven. In de volgende sprint wordt dat een step, daarna een fiets, motor en auto. De klant is betrokken bij het ontwikkelproces, het ontwikkelteam doet steeds meer ervaring op en werkt beter samen, en aan het eind is de klant tevreden over het eindresultaat. Het lijkt fantastisch en de klant wordt betrokken en staat centraal bij de ontwikkelingen, waar opmerkingen van de klant direct verwerkt kunnen worden in het product dat ontwikkelt wordt.

In mijn ervaring echter, zijn vooral managers en verkopers erg tevreden over deze manier van bouwen. Er wordt snel een product opgeleverd, en bij klachten over functionaliteit kan snel worden verwezen naar de volgende oplevering waar alle problemen verholpen zullen zijn. De klanten, of in ieder geval de eindgebruikers die met het product moeten werken zijn vaak wat minder enthousiast. Ze hebben een auto besteld, tenminste: er is ze verteld dat ze een nieuwe auto krijgen, en op het moment dat het doek er vanaf getrokken wordt, zien ze een skateboard staan. Veel mensen kunnen niet skateboarden en op het moment dat ze een poging wagen gaan ze grandioos onderuit. Gelukkig komt over twee weken een nieuwe oplevering. Een step is al makkelijker te berijden, maar wat doen ze met alle bagage die ze moeten meenemen?  Nog maar twee weken wachten op de fiets.

Hier komt erg naar voren dat de eindgebruikers van de software niet gebaat zijn bij een agile opleverproces. Erger nog: deze werkwijze zorgt juist voor veel frustraties. Het werk dat gedaan moet worden door het nieuwe systeem kan maar deels uitgevoerd worden. En het leerproces is veel lastiger omdat er in de loop van de tijd veel verandert, oude functionaliteit wordt weggehaald en nieuwe toegevoegd. Waarom moet ik leren skateboarden als ik een auto wil kopen?

Dan heb ik het nog niet gehad over ontwikkelprocessen om oude bestaande systemen te vervangen. Veel software die nu gemaakt wordt, dient om oude ‘legacy’ systemen te vervangen die om de een of andere reden niet meer voldoen aan de huidige eisen. Met andere woorden, men rijdt in een Polo uit 1998. Het heeft geen airco, elektrische ramen, maar hij rijdt in ieder geval van Breukelen naar Arnhem in minder dan een uur. Heel veel projecten die nu lopen zijn zo’n vervangingsproject en die leveren een skateboard op. Wat je in veel gevallen ziet is dat het skateboard op de achterbank wordt gegooid en men in de oude Polo verder rijdt. Heel tijdelijk, zoals de managers naar de eindgebruikers communiceren, maar de step en de fiets kunnen gelukkig ook nog achterin, al is het passen en meten. Op het moment dat de nieuwe auto wordt opgeleverd is het maanden, soms een jaar later, waar de eindgebruikers al die tijd met twee systemen hebben moeten werken, dingen dubbel hebben moeten doen, of tien minuten in systeem A hebben gezocht naar iets wat in systeem B staat. Dit leidt tot veel frustraties op de werkvloer en, waar eindgebruikers de mogelijkheid hebben gekregen om feedback te leveren, wordt het ontwikkelteam overstelpt met vragen en verbetersuggesties die afleiden van het eigenlijke werk.

De vraag is wat de beste manier is om zulke projecten ook werkbaar te maken voor de mensen die uiteindelijk met de software moeten werken. In één keer overstappen of stukje bij beetje nieuwe functionaliteit toevoegen? Hoe houdt je de klant centraal? Probeer in ieder geval te voorkomen dat eindgebruikers in twee systemen aan de slag moeten. Werk samen met eindgebruikers bij het ontwikkelproces en bij het definiëren van een minimal viable product, zodat frustraties en dubbele werkzaamheden voorkomen worden. In bovenstaand voorbeeld was het bijvoorbeeld belangrijk om snel van Breukelen naar Arnhem te reizen. Overleg met de klant wat de minimale wensen zijn en lever dat op. Zo houdt je de klant centraal.