Scrum bij grote projecten?

7 januari 2013, 12:29

Grote ICT-projecten verlopen vaak stroef, vallen duurder uit dan begroot of mislukken zelfs totaal. Vorig jaar was er weer een debacle bij de Waterschappen: die stopte de ontwikkeling van een ICT-systeem voor het innen van waterschapsbelasting. Schade: €25 miljoen. Om deze verspillingen te voorkomen is er behoefte aan softwareontwikkelingsmethode die technische projecten beheersbaar en flexibel maken. Scrum kan dit soort projecten soepeler laten verlopen. In dit artikel vertel ik hoe en waarom Scrum nuttig is bij software-ontwikkeling voor grote ICT-projecten.

Iedereen die eens gewerkt heeft voor een grote ICT-organisatie weet hoe moeizaam software-ontwikkeling kan verlopen. Scrum is een softwareontwikkelings-methode die zo flexibel is dat tijdens het ontwikkelingsproces verandering mogelijk is. Dit in tegenstelling tot de traditionele ontwikkelmethodes waarbij aan het begin van het project het hele proces wordt uitgewerkt. Hierdoor kan het zijn dat een ontwerpfout pas vlak voor oplevering wordt ontdekt. En zo bestaat de kans dat het project uitloopt of zelfs faalt. Dit kan Scrum oplossen.

Google, Bol.com en Knab doen het al

Vaak wordt gedacht dat Scrum alleen werkt bij kleine projecten. Bij grote projecten zijn beslissers bang dat kiezen voor Scrum gelijkstaat aan verlies van controle en kwaliteit. Scrum staat daar bekend als een ‘leuk framework voor hobbyprojecten’. Ik ben van mening dat Scrum juist wél kan werken bij grote projecten. Bedrijven als Google, Knab en Bol.com gingen ons hierin al voor. Zo werd een release-moment bij Bol.com door gebruik van Scrum van twee jaar verkort naar een half jaar en heeft Knab binnen een recordtijd een compleet nieuwe bank neergezet.

Scrum omarmt verandering

Scrum is een framework voor het flexibel beheren van software-ontwikkeling. Agile (‘vlug en lenig’) werken is een manier om een project op te splitsen in korte en overzichtelijke, vaak twee weken durende, delen (sprints), waarin de projectleden steeds toewerken naar concrete resultaten. Doordat de periode waarin iets opgeleverd wordt kort is, is iedereen gefocust op deze korte periode.

Flexibel genoeg zijn om additionele klantbehoeftes te verwerken tijdens het ontwikkelproces, dat kan met Scrum. Ook bij een groot bedrijf of project Je bent flexibel genoeg om verandering te omarmen (embrace change-gedachte). Maar kwaliteit, doorlooptijd en haalbaarheid blijven gegarandeerd, net als bij de traditionele frameworks.

Angstige blikken

Zoals hierboven al toegelicht, is Scrum een pragmatisch framework. Het doel is oplevering. Maar pragmatisch werken wordt vaak verward met ad hoc werken. Mijn ervaring met grote bedrijven en ICT-projecten is dat steeds als ik voorstelde om een pragmatische aanpak te gebruiken, mensen mij met grote bange ogen aankeken. Eerst dacht ik dat dit kwam omdat ik verandering van de huidige manier van werken voorstelde. Elk groot bedrijf heeft in het verleden een zekere professionalisering meegemaakt. Doordat bedrijven groter werden, was uniformiteit nodig in de manier van werken en doen. Als een grote groep mensen op verschillende manieren werkt en ontwikkelt, wordt het zonder uniformiteit een grote chaos.

Na een tijdje kwam ik erachter dat de angst in hun ogen niet kwam door angst voor verandering, maar doordat men bang is om kwaliteit van de software te verliezen. De manier van werken die ik voorstelde werd onterecht verward met ad-hoc-ontwikkeling. Ad-hoc-ontwikkeling zou namelijk betekenen dat de organisatie jaren terug gaat, naar de tijd waar software nog op duizend verschillende manieren ontwikkeld werd en waarbij niet goed werd gecommuniceerd over kwaliteit of genericiteit. Scrum is niet ad hoc , maar een professionele methodiek die gebruikt kan worden bij de grootste bedrijven. Scrum is een setje basis regels dat je op vrijwel iedere afdelingen kunt toepassen. Het zorgt voor een tevreden klant en kwaliteitseisen blijven gewaarborgd. Het grootste verschil met traditionele methodes ligt in het kwaliteitstesten die elke twee weken plaats gaan vinden. Omdat voortaan vaker kwaliteitstesten worden uitgevoerd, zullen de testen ook korter zijn en sneller verlopen. Door de lagere tijdsdruk kan veel beter gefocusseerd worden op de kwaliteit.

Begin met sprints

Wil je scrum inzetten bij een groot ICT-project? Begin dan met het invoeren van sprints. Dit is iets wat iedereen vaak leuk vindt, omdat het de mogelijkheid biedt om na twee weken al resultaat te zien van het harde werken. Als je je organisatie echt wil scrummify-en, dan zou de release van de eerste sprint direct naar productie gezet moeten worden. Om dit te bereiken is geduld een schone zaak.

Voordat de software in gebruik genomen kan worden, moet eerst nog een aantal stappen gezet worden. Denk aan acceptatietests, een veiligheidstest en een usability test. Deze testen kosten veel tijd. De trick is om hierin een compromis te vinden. De testers willen het liefst een grote deploy, maar het ontwikkelteam wil liever kleine interactieve deploys om alles helder en manageable te houden.

Het zal neerkomen op in twee of drie stappen de software in productie te nemen. Dit zal de software-ontwikkeling verbeteren, omdat alles niet op het laatste moment gedaan wordt en alle obstakels en belemmeringen al ver voor de deadline zijn weggewerkt. De extra bonus die je krijgt is dat iedereen al in een zeer vroeg stadium betrokken is bij het project en exact weet wat van hen verwacht wordt.

Maak vooraf duidelijk afspraken

Scrum werkt met timeboxing, waarbij de projectperiode wordt opgedeeld in meerdere korte periodes. Een timebox kun je zien als een miniproject met een opgeleverd deelproduct aan het eind. Om ervoor te zorgen dat de deadline gehaald wordt, moeten de projectleden vooraf afspraken maken (pre-sprint). Het is daarbij belangrijk dat er rekening wordt gehouden met mensen, of systemen, binnen de organisatie die ervoor kunnen zorgen dat je de deadline van twee weken niet gehaald wordt. De systeembeheerder maakt bijvoorbeeld al tijd vrij om installaties te doen, of installeert alvast systemen die nodig zijn tijdens het project. Alles om vertraging van het project te voorkomen. Maak duidelijke afspraken over hoe Scrum werkt en je de verschillende opleveringen gaat je doen. Creëer ook begrip voor de situatie van verandering.

Begin klein

Bij het inzetten van Scrum bij grote bedrijven en projecten is het belangrijk om het ontwikkelproces niet direct volledig flexibel te willen maken. Begin eerst met een klein stukje. Als er een bedrijf is dat RUP (software-ontwikkelingsmethodiek) of Prince 2 (projectmanagementmethodiek) gebruikt, laat dit intact, maar probeer Scrum hierin te passen in plaats van het erdoor te vervangen. Als je klein begint, zullen de verschillende frameworks elkaar minder snel bijten. Start met wat het belangrijkste is voor een klant en pak hiervan de meest complexe onderdelen om mee te beginnen.

Focus op waar je wel controle op hebt en informeer de organisatie

Hoe controleer je de immens grote omgeving om je heen bij een complex ICT-project? Dit kan alleen door te accepteren dat je niet overal controle op hebt. Je kunt de organisatie niet in je ontwikkelproces passen. Leg de focus op het stuk in de organisatie waar je wel controle op hebt. Zorg ervoor dat een ontwikkelteam maar één stakeholder heeft: een product owner. Vraag eventuele andere stakeholders zoals IT-management en marketing vooraf om hun mening en laat zien dat zodra een sprint gestart is alleen de product owner zich ermee mag bemoeien. Mensen gaan zo vanzelf rekening houden met de eigenschappen van sprints. Iedereen binnen de organisatie die ook maar iets te maken heeft met het project moet weten wanneer een sprint loopt en wanneer deze af is. Om goed aan te geven dat een sprint af is, is het noodzakelijk om een goede sprint review / feature demo te geven. Nodig zoveel mogelijk collega’s uit voor deze demo. Hierdoor zal de hele organisatie zien hoever het team is en men zal respect krijgen voor het resultaat.

Conclusie

Scrum biedt voordelen en werkt ook in grote ICT-projecten en bij grote bedrijven. Er is sneller resultaat zichtbaar en het biedt flexibiliteit. Zelfs tot de laatste twee weken van het project. Ook draagt het bij aan gemotiveerde en enthousiaste medewerkers, omdat zij direct resultaat zien van hun inzet. Scrum zorgt met tools zoals het Scrum Board voor helderheid en transparantie bij alle betrokkenen. En het belangrijkste natuurlijk: een succesvol project en blije klant.

Credits afbeelding: danifeb (CC)

Pieter Zuidweg
Teamlead Development bij Virtual Affairs

In 2011 begon Pieter bij Virtual Affairs als ScrumMaster en Solution Architect. In deze rol bood hij klanten hoogwaardige diensten waarbij klanttevredenheid en de juiste toepassing van (Microsoft-) technologie voorop staan. Ook adviseerde hij de senior developers. Zijn technisch inhoudelijke kennis en commerciële vaardigheden dragen bij aan de succesvolle verkoop van ICT-oplossingen die weer staan voor het succes van onze klanten. Momenteel is Pieter Teamlead Development en stuurt hij het team van ontwikkelaars en architecten op de Nederlandse vestiging van Virtual Affairs aan. Zijn specialiteiten liggen naast scrum bij Software architectuur, .NET en technische design.

Categorie
Tags

7 Reacties

    Nicole Bunink

    Goed en bondig artikel over de praktijk van Scrum en zou er graag nog wat aan willen toevoegen. Mijn ervaring met scrum als zowel scrummaster en scrum coach is dat veel bedrijven/klanten in gesprekken aangeven bang te zijn dat ze niet alles krijgen wat ze willen hebben op de gestelde deadline. Daarin begint al een grote misconceptie omtrent agile software development. Zowel scrum maar ook andere ontwikkeltechnieken gaan uit van het creeren van een zo groot mogelijke waarde van de oplevering voor de klant/gebruiker. Alleen de requirements met hoge business value worden opgeleverd volgens de priorisering in de backlog. Als je het goed doet, bespaar je hierdoor juist geld en tijd door alleen datgene op te leveren die de hoogste business value hebben. Dit in tegenstelling tot bv waterfall waarin een volledige set van requirements van tevoren wordt gedefinieerd, nauwelijks ruimte is voor voortschrijdend inzicht of nieuwe requirements en waarin dus ook requirements staan die uiteindelijk niet of nauwelijks business value hebben of gebruikt worden.


    8 januari 2013 om 08:20
    Pieter_Zuidweg

    Beste Nicole,

    Dank je voor je toevoeging aan het artikel.

    Ik herken je opmerking over dat klanten/bedrijven bang zijn om niet alles te krijgen op de gestelde deadline. In deze situatie probeer ik ze te overtuigen van het feit dat ze wel degelijk alles kunnen krijgen binnen de gestelde tijd. De kanttekening hierbij is wel dat er geen requirements/changes bij kunnen komen. De klant begrijpt dat je geen werk kunt toevoegen zonder dat er iets afvalt en zal hiermee moeten instemmen.

    Zodra het project op volle toeren is zal in meeste gevallen de klant toch proberen te gaan schuiven met functionaliteiten. Denk aan de eeuwenoude discussie bij het bouwen van een huis “Kan er geen extra schuur bij mijn huis gebouwd worden, maar wel voor het zelfde geld”. Deze disussie zal er denk ik altijd blijven. Het probleem bij grote IT projecten was altijd dat het antwoord op deze vraag “Nee” was. Scrum biedt juist daar een oplossing voor, terwijl dit eigenlijk een commercieel probleem is. “Natuurlijk kunnen wij die schuur bouwen zonder dat daar extra voor betaald moet worden, maar dat zullen wij die ornamenten in de tuin wel moeten schrappen.” Klant blij, wij blij!


    8 januari 2013 om 10:52
    Ingrid Ebbelink, Interaction designer bij TriMM

    Fijn dat in dit artikel wordt aangegeven dat scrum prima bruikbaar is voor grote ICT-projecten.

    Wij gebruiken scrum al een jaar of drie voor een grote klant van ons, waar we daarvoor volgens de waterval methode werkten. Onze ervaring is dat de klant veel tevredener is over de voortgang en uitkomsten van de projecten. Door de 3-wekelijkse sprints met de review meeting aan het eind is de klant steeds op de hoogte van wat we doen en kan hij ook steeds invloed uitoefenen. Zo kunnen we snel inspelen op veranderende wensen van de klant en heeft de klant elke 3 weken een of meer nieuwe toevoegingen aan de website.

    Doordat we tijdens de sprints steeds testen is de kwaliteit van wat we live zetten ook hoger, bugs worden direct opgelost en niet pas aan het eind als het hele project ineens live gaat.


    8 januari 2013 om 15:12
    Wessy

    “Je kunt de organisatie niet in je ontwikkelproces passen. Leg de focus op het stuk in de organisatie waar je wel controle op hebt. Zorg ervoor dat een ontwikkelteam maar één stakeholder heeft: een product owner. “

    Belangrijk aandachtspunt : mijn ervaring is dat de business echt mee moet veranderen om een Agile ontwikkel proces mogelijk te maken. Als er geen product owner is die voldoende tijd en aandacht kan besteden aan het project is een Agile ontwikkel proces bijna niet te managen.


    9 januari 2013 om 17:32
    Mieke

    U noemt al even dat acceptatie-. veiligheids en usability tests ook gedaan moeten worden.

    Heeft u ideeen hoe dit in te passen in Scrum?

    Momenteel doen onze testers de ‘acceptatie’ test waardoor ze ongeveer een week slecht beschikbaar zijn voor hun scrum team. Regressie testen worden door de gehele ontwikkelafdeling gedaan, voor velen een grote ergernis…

    Usability tests worden momenteel nog niet structureel gedaan, maar ik zit in een projectgroep die dit graag op wil zetten.

    Zijn er manieren om deze tests in te passen?


    5 februari 2013 om 16:07
    kees van vlaanderen

    scrum is kut het werkt niet flikker op


    29 september 2016 om 14:19
    Lelandtup

    301 Moved Permanently

    301 Moved Permanently!..


    12 augustus 2017 om 03:19

Marketingfacts. Elke dag vers. Mis niks!