Grip met Scrum
ICT-projecten zijn beter hanteerbaar door software iteratief te ontwikkelen.
Voor complexe ICT-projecten geldt dat deze vaak langer duren en tot hogere kosten leiden en bovendien niet aansluiten bij de wensen en behoeften van de klant. De ICT-projecten van de overheid vormen hierop helaas geen uitzondering. TNO heeft onlangs in een onderzoeksproject voor Defensie laten zien dat het anders kan: een zware applicatie voor het uitvoeren van dreigingsanalyses werd met behulp van een speciale methodiek op tijd en binnen budget werkend opgeleverd. Voor alle overheidsinstanties die worstelen met complexe ICT-projecten die niet goed lopen, waar teveel belangen onverenigbaar lijken te zijn en die maar niet leiden tot de gewenste resultaten, biedt een agile softwareontwikkelmethode zoals Scrum hoop. Dit artikel laat aan de hand van de praktijkervaringen van TNO zien dat de Scrumaanpak écht werkt.
Succesvolle toepassingen in de praktijk
Scrum is een methode voor het ontwikkelen van software. TNO heeft de Scrum methode met succes toegepast in een aantal projecten. Zo heeft TNO een ‘Chemical and Biological Incident Simulator’ (CABIS) ontwikkeld, een simulator die experts op het gebied van dreigingsanalyse faciliteert in het onderzoek naar de effectiviteit van de verdegdiging tegen (terroristische) aanvallen met chemische en biologische middelen. De applicatie bezit vanwege de vele samenhangende natuurkundige aspecten van nature een hoge graad van complexiteit. De simulator is ontwikkeld in een onderzoekstraject voor defensie, en kan ook uitgebreid worden naar dreigingen in civiele situaties. Gebruikers van deze applicatie specificeren de dreiging door aan te geven over welke middelen een aanvaller mogelijk beschikt (zoals type wapens en hoeveelheden chemicaliën), onder welke omstandigheden de aanval plaatsvindt, en welke beschermde maatregelen men hiertegen kan inzetten (zoals schuilmogelijkheden, doctrines en training). Het systeem genereert op basis van deze uitgangspunten alle mogelijke scenario’s die kunnen optreden en rekent vervolgens per scenario een keten van modellen door wat uiteindelijk leidt tot inzicht in aard en ernst van de consequenties. Op deze wijze kunnen de gebruikers van het systeem bepalen waar nog zwakke plekken en ‘gaten’ in de verdediging zijn. De hiervoor ontwikkelde visualisaties geven een geheel nieuwe impuls aan deze dreigingsanalyses, niet alleen voor militaire situaties, maar ook in civiele situaties, bijvoorbeeld in de nabijheid van chemische installaties.
Scrum
De software ontwikkelmethode Scrum is ontwikkeld om grip te krijgen op ICT projecten (K. Schwaber, M. Beedle, Agile Software Development with Scrum, 2001.). Het is vrijwel onmogelijk om aan de start van een groots ICT project alle requirements te bepalen. Er is altijd sprake van onvoldoende inzicht in de gebruikersproblematiek alsmede in de technische mogelijkheden en dat leidt altijd tot voortschrijdend inzicht, zowel bij gebruikers als ontwikkelaars. Scrum software development speelt hierop in door software iteratief te ontwikkelen opdat er ruimte ontstaat voor het aanpassen aan de gewijzigde situatie zonder dat dit leidt tot kapitaalvernietiging of projectvertraging. Transparantie, prioriteit, user-involvement en teamspirit zijn hierbij sleutelwoorden. De methode wordt gekarakteriseerd als een iteratieve werkwijze waarin een multidisciplinair team in korte sprints (typisch 3-5 weken) steeds opnieuw een werkende applicatie oplevert. De klant en het team stemmen daartoe voorafgaand aan de sprint af wanneer (duur van de sprint) welke functionaliteit gerealiseerd moet worden (prioriteit door de klant) en kán worden gerealiseerd (productiviteit van het team). De klant krijgt daarmee de garantie dat een werkend product wordt afgeleverd én wat daarin aan functionaliteit beschikbaar komt. Het team krijgt daarbij de garantie voor een stabiele gebruikerswens tijdens de sprint. Technologische tegenslag wordt bij voorbaat al verdisconteerd door de eisen in volgordelijkheid van gebruiksbelang op te stellen: de bovenste moeten kosten wat kost gerealiseerd, de onderste leveren het team bonuspunten. In deze volgordelijkheid wordt de klant intensief betrokken: hij moet immers aangeven welke minder belangrijke functionaliteit kan vervallen om binnen budget en levertijd te blijven. Dit stelt overigens hoge eisen aan de klant in de rol van producteigenaar. Hij moet zich realiseren wat de consequenties zijn van deze volgordelijkheid.
Het geven van een demo aan het eind van iedere sprint is een essentieel onderdeel van de Scrum aanpak. Enerzijds omdat het team wordt gedwongen een werkende code op te leveren (software die 99 procent af is, is dus geen werkende code), anderzijds omdat gebruikers een beter begrip krijgen van hun eigen applicatiewensen en de demo alle ruimte geeft voor waardevolle feedback. Tot slot ervaren stakeholders tijdens opeenvolgende demo’s op deze wijze de groei van de software-applicatie waarmee het vertrouwen tussen opdrachtgever en -nemer groeit.
Conclusie
Zaken waar in de praktijk tegenaan werd gelopen is dat de eisen voor volgordelijkheid niet altijd overeen stemde met de onderlinge technische relaties. Met andere woorden: een dak op een huis is belangrijk maar je kan geen dak op een huis zetten wanneer je hebt beslist om vanwege budgettaire redenen een deel van de dragende muren weg te laten.
Over de auteurs
Paul Brandt, Nicole de Koning en Frank van het Veld werken bij TNO.
Plaats als eerste een reactie
U moet ingelogd zijn om een reactie te kunnen plaatsen.