“Zoveel klanten en zoveel wensen”. Als tijd schaars is en de wensen voor softwareaanpassingen groot, dan moeten keuzes gemaakt worden. Maar hoe maken we keuzes voor welke functionaliteit, hoe stellen we prioriteiten en op welke wijze ontwikkelen we nu eigenlijk software? Hoe brengen we de juiste focus aan op het juiste moment? En zijn er nog andere factoren die van invloed zijn op het ontwikkelproces?
Wat wil een klant eigenlijk?
Welke methode we ook kiezen om software te ontwikkelen doet er eigenlijk niet zo veel toe. Wat klanten willen is van groter belang. Hoe beter we dat ondersteunen hoe succesvoller we met z’n allen zijn. PinkRoccade onderzoekt doorlopend de klantwaardering en dat levert het volgende inzicht op. Zorgorganisaties willen:
- meedenken met de ontwikkelrichting van de software;
- graag hun wensen en eisen bij ons kwijt;
- inzicht in de wensen en eisen die bij andere klanten spelen;
- terugkoppeling over de status van hun wensen en eisen;
- kwalitatief goed software. En kleine fouten in de software zijn best toegestaan mits daarover goed wordt gecommuniceerd. Het halen van deadlines is daarnaast minder belangrijk dan de kwaliteit van de software.
Zorgorganisaties willen nadrukkelijk betrokken worden bij de ontwikkeling van software. Maar hebben wij ze al goed bij dit proces betrokken? Spelen we in op bovenstaande zaken of moeten we onze aanpak om de klant te integreren verbeteren? Wij denken dat daar belangrijk verbeterpotentieel ligt.
Zoveel klanten, zoveel wensen
Veelal is capaciteit om software te ontwikkelen beperkt. Deze capaciteit moet grofweg verdeeld worden over de volgende categorieën aanpassingen:
- Wet- en regelgeving (vaak de Must Haves).
- Herstellen van softwarefouten.
- Wensen en eisen in relatie tot bestaande software.
- Wijzigingen in het kader van technische en functionele innovatie.
Op het moment dat wet- en regelgeving veel aanpassingen vragen dan gaat dat vaak ten koste van de andere categorieën en vice versa. Bij PinkRoccade is de productmanager de verantwoordelijke persoon die de verschillende categorieën afweegt en bepaalt welke nieuwe software er ontwikkeld wordt. Een productmanager doet derhalve ook veel denkwerk voor de klant en doet dat vaak in overleg met één of meerdere klanten.
Kort op de bal spelen door toepassen van Scrum
De IT is traditioneel een industrie waarin ‘methoden’ een belangrijke rol spelen. Begrippen als SDM, SDW, MAD, RAD, JAD, Objectgeoriënteerd, prototyping of Agile zijn ons niet onbekend. Afhankelijk van de tijd waarin we
leven is een methode actueel of niet. Zo kenden we jaren geleden de ‘watervalmethode’ voor softwareontwikkeling: voor een vaste hoeveelheid (functionaliteit fixed, tijd is flexibel) te ontwikkelen functionaliteit werden fasen doorlopen als ontwerp, realisatie, testen tot implementatie en beheer. Iedere voorgaande fase moest afgesloten worden voordat men met de volgende fase kon beginnen. In een sterk veranderende wereld is dit geen goede aanpak omdat de functionaliteit in tussentijd al weer kan wijzigen. De kans dat een behoefte dan aansluit bij een gewijzigde klantwens is dan beperkt.
De waterval is dus uit. En scrum is in. Volgens Wikipedia is scrum een raamwerk voor agile management ("behendig beheren") van softwareontwikkeling. Er wordt gewerkt in multidisciplinaire teams die in korte sprints (iteraties) werkende software opleveren. Samenwerking, communicatie en teamgeest zijn hierbij sleutelwoorden. Scrum is een term die afkomstig is uit de rugbysport, hierbij staan de spelers in een grote groep en proberen ze al duwend de bal naar de overkant van het veld te brengen. Er wordt niet afgewacht of de vorige fase afgelopen is maar er wordt tegelijkertijd gewerkt.
Het scrumproces bestaat grofweg uit de volgende stappen:
- Het verzamelen van alle (nog te realiseren) eisen en wensen tot een zogenaamde product backlog. Deze kunnen verdeeld worden over de eerder aangegeven categorieën.
- Het prioriteren van wensen en eisen, hetgeen leidt tot een sprint planning: daarop staan de onderdelen uit de product backlog met de hoogste prioriteit die gerealiseerd moeten worden. Hoe hoger een wens in de product backlog staat, des te hoger de prioriteit.
-
Het sprintproces. Dit is veelal een vierwekelijks ontwikkelproces (time fixed, functionaliteit is flexibel). In dit proces worden functionele en technische ontwerpen gemaakt, wordt de software gerealiseerd, getest, de architectuur geëvalueerd en documentatie wordt aangepast. In dit proces worden wensen en eisen tot kleine taken uitgewerkt die begrijpelijk zijn en binnen een of twee dagen te realiseren zijn. De sprint backlog zijn alle taken die gedaan moeten worden in de sprint. De backlog items die niet volledig af zijn gaan terug naar de backlog en worden over het algemeen als eerste in de volgende sprint afgerond. Door de korte periode in een scrum en de snelheid waarmee functionaliteit ontwikkeld moet worden, wordt er ‘kort op de bal gespeeld’. Door inzet van technieken uit Het Nieuwe Werken zoals videoconferencing, skypen, etc. is er dagelijks contact tussen de teams, die zich bijvoorbeeld in het buitenland kunnen begeven.
-
Het proces tot het uitleveren van releases. Er kan besloten worden om van iedere sprint een release te maken, maar meestal wordt een release uit meerdere sprints samengesteld.
Het scrumproces is als volgt weer te geven:
Sprinten
Door het kort op de bal spelen in een korte periode ontstaan er snellere en betere resultaten. Deze kunnen direct naar klanten gedistribueerd worden. Maar, niet iedere klant wenst iedere vier weken een nieuwe oplevering te ontvangen. En let wel: een sprint is niet hetzelfde als een cyclus waarbinnen software opgeleverd kan worden. Na een sprint moet het namelijk nog uitgetest worden, gedocumenteerd en gereed worden gemaakt voor distributie. Daarom kiest PinkRoccade Healthcare ervoor om de resultaten van meerdere, bijvoorbeeld drie, sprints te bundelen tot een release.
Een logisch vervolg: Scrum 2.0
Door het toepassen van een scrum methodiek zijn klanten niet zomaar automatisch aangesloten. Productmanagers worden wel geacht om namens de klanten beslissingen te nemen (de specifieke benaming van die rol is de productowner) zodat we uiteindelijk hetgeen ontwikkelen wat de klant wil. Introductie van Scrum 2.0 zou dan ook zeer wenselijk zijn. Daarbij passen we scrum toe in een web 2.0 omgeving waarbij een groot aantal klanten zich kan buigen over de gewenste doorontwikkeling van de software.
In zo’n Srum 2.0 methode speelt de klant een belangrijke rol:
- Elke klant heeft zijn eigen product backlog: de geregistreerde wensen en eisen per klant. Medewerkers van de klant hebben inzage in de betreffende backlog.
- De totale product backlog van een softwareoplossing is een optelsom van alle backlogs van alle klanten, inclusief de sprintbacklog.
- Klanten hebben onderling inzicht in elkaars backlogs. Dubbele registratie zal daardoor niet (snel) meer voorkomen indien klanten eerst kijken of andere klanten er al eens iets over gevraagd of geschreven hebben.
- Wanneer klanten eenzelfde problematiek tegenkomen dan hebben zij de mogelijkheid om aan te geven ‘Dit vind ik leuk’ of ‘Dit speelt ook bij mij’. Daardoor ontstaat een duidelijk door klanten geprioriteerde wensen- en eisenlijst.
- De softwareleverancier stelt zich ten doel om altijd de top x wensen en eisen mee te nemen voor een gedeelte van de beschikbare ontwikkelcapaciteit in de ontwikkelsprint.
- Indien de top x wensen over gaan naar een nieuwe versie kunnen klanten automatisch geïnformeerd worden over de nieuw te ontwikkelen functionaliteit. Dat betekent dat de backlogs van klanten ook automatisch bijgewerkt kunnen worden met een nieuwe status.
Consequenties van een Scrum 2.0 aanpak
Door een 2.0 ontwikkelaanpak zijn klanten beter in de gelegenheid om een stempel te drukken op de ontwikkeling van software. Dat kan zelfs in combinatie met bestaande gebruikersgroepen en stuurgroepen. De resultaten uit een 2.0 ontwikkelaanpak zijn input voor deze groepen. Men ken snel beslissen over wat andere klanten belangrijk vinden. En vervolgens kunnen gebruikers- en stuurgroepen zich bezighouden met meer strategische onderwerpen en functionaliteit.
Door klanten op deze manier op scrum aan te sluiten worden zij beter geïnformeerd. Een en ander stelt wel eisen aan de manier waarop wensen, eisen en verzoeken door klanten ‘ingeschoten’ worden. Deze moeten helder, duidelijk en volledig zijn. Daarnaast vereist de aanpak ook dat dit goed gefaciliteerd wordt door een digitale omgeving, bijvoorbeeld door dit proces te faciliteren binnen het klantenportaal van PinkRoccade Healthcare.
In de tweede helft van dit jaar starten wij een grootschalige verbetering van dit proces. Ben u geïnteresseerd om hierin een bijdrage te leveren, mail dan naar ondergetekende.
JP van den Tillaard
E jan-paul.vandentillaard@pinkroccade.nl