Agile Systeemontwikkeling

1. Inleiding Agile

Binnen de ICT zijn zogenaamde ‘Agile ontwikkelmethodieken’ al enige tijd met een opmars bezig. Deze ‘lichtgewicht’ methodieken, zoals XP en Scrum, kunnen beter omgaan met wijzigingen in projectomstandigheden en gebruiken alleen de hoogst noodzakelijke procedures en documenten. Om de overeenkomsten tussen een groot aantal agile methodieken te benadrukken is in 2001 het agile manifesto opgesteld.

Dit manifest propageert
vier kernwaarden:

1. Individuen en interactie boven processen en tools.
2. Werkende software boven uitgebreide documentatie.
3. Samenwerking met de klant boven contractonderhandelingen.
4. Reageren op verandering boven het strikt volgen van een plan.

In de praktijk blijkt dat je met een agile aanpak vaak in kortere tijd en voor minder geld betere software oplevert, die ook nog eens beter voldoet aan de wensen van de klant. Agile methodieken zeggen meestal weinig over activiteiten buiten de scope van het ontwikkelteam, zoals het in productie nemen van het product, inbedding in de organi-satie, opleiding van gebruikers, et cetera. Bovendien wordt vaak pas in de loop van het project duidelijk wat er aan het eind precies opgeleverd gaat worden en kan het erg lastig zijn om van te voren een goede inschatting te maken van het totaal benodigde budget. Daarmee zijn agile methodieken vaak moeilijk in te passen in een organisatiecultuur zoals die in Nederland gangbaar is.

2. Tegenstellingen PRINCE2 vs Agile?


Oppervlakkig gezien lijkt er ook een tegenstelling te zijn tussen de sterk georganiseerde, formele en met de nodige regels en processen omgeven projectmethodiek van Prince2, en de losse, flexibele agile ontwikkelmethodieken. Is dit wel zo? Of is deze tegenstelling meer het gevolg van de bureaucratische implementatie van Prince2 in de praktijk en is het wel degelijk mogelijk een uitgebreide projectmanagementmethodiek als Prince2 te combineren met agile softwareontwikkeling? Om deze vraag te kunnen beantwoorden houden we de basisprincipes van agile tegen Prince2 aan.

3. Het agile manifest


De twaalf basisprincipes voor agile softwareontwikkeling zijn verwoord in het agile manifest2 dat in 2001 door zeventien vooraanstaande mensen uit de softwareontwikkeling is opgesteld.

1. De hoogste prioriteit is de klant tevreden te stellen door het vroegtijdig en frequent opleveren van bruikbare software.
Hiermee deelt agile de voorkeur voor het meten van voortgang aan daadwerkelijk opgeleverde producten met PRINCE2. Bij agile methodieken is het gebruikelijk dat elke iteratie werkende software oplevert en dat iteraties niet te lang duren.

2. Sta open voor veranderende eisen, zelfs tijdens de bouw. Agile processen benutten verandering en leveren zo een concurrentievoordeel voor de business.
Juist dit belangrijke principe hebben beide methodieken met elkaar gemeen. Wijzigingsbeheer is essentieel binnen PRINCE2 en is volledig ingebed in de methodiek. In de praktijk wordt dit proces in PRINCE2-projecten echter vaak geïmplementeerd als papieren tijger. In een agile project zullen dezelfde afwegingen gedaan worden als in PRINCE2; wat is de impact op de planning en begroting, en zijn er nog andere consequenties? De beslissingsbevoegdheid over een wijziging ligt bij PRINCE2 formeel bij de stuurgroep. Bij agile methodieken ligt dit op het niveau van de gebruikers en het ontwikkelteam.

3. Werkende software frequent opleveren, liefst iedere paar weken, hooguit iedere paar maanden.
Dit is wederom een aanvulling op de opdeling van je project in fases in PRINCE2. Korte fases geven snel inzicht in (gebrek aan) voortgang en houden het projectteam scherp.

4. Vertegenwoordigers van de business en ontwikkelaars werken dagelijks samen gedurende het gehele project.
Overleg tussen klant, leveranciers en gebruikers wordt in PRINCE2 formeel geregeld via de stuurgroep. In de communicatie met de stuurgroep wordt gestreefd naar overleg indien noodzakelijk (management by exception). Softwareontwikkeling blijkt juist gebaat bij nauwe samenwerking tussen opdrachtgever, gebruikers en projectteam. Niets in PRINCE2 weerhoudt de projectmanager er echter van om vertegenwoordigers van de business op te nemen in het projectteam. Ook PRINCE2 gaat er vanuit dat goede samenwerking tussen alle partijen het beste projectresultaat oplevert.

5. Bouw projecten rond gemotiveerde individuen. Geef hun de omgeving en de ondersteuning die ze nodig hebben en vertrouw erop dat ze de klus klaren.
PRINCE2 is vooral gericht op het projectmanagementproces. Agile methodes hebben ook oog voor de psychologische kanten van een project, met name gericht op maximale ‘empowerment’ van de projectleden. Binnen de overeengekomen toleranties is ook PRINCE2 er op gericht een projectteam zoveel mogelijk zijn gang te laten gaan.

6. De meest efficiënte en effectieve manier om informatie te delen in een ontwikkelteam is met elkaar te praten.
Ook dit is een aanvulling op PRINCE2 en met name een goede tip voor projecten die de neiging vertonen om juist alle communicatie via documenten te doen. PRINCE2 houdt echter ook rekening met het reële risico dat mensen, al dan niet vrijwillig, projectteams voortijdig verlaten waardoor waardevolle kennis verloren kan gaan. Dat is een belangrijke reden om bepaalde zaken wel degelijk op papier vast te leggen.

7. Werkende software is de belangrijkste maat voor vooruitgang.
Deze gedachte komt geheel overeen met de gedachte in PRINCE2 je te richten op (tussen-)producten en niet op activiteiten. Om zo snel mogelijk werkende software te kunnen opleveren is het belangrijk om goed inzicht te hebben in welke tussenstappen je daarvoor nodig hebt. De productbreakdown uit het planningsproces van Prince2 is daarvoor een uiterst geschikt hulpmiddel.

8. Agile processen maken continu ontwikkelen mogelijk. Opdrachtgever, ontwikkelaars en gebruikers moeten een constant tempo eindeloos kunnen volhouden.
Dit principe lijkt in tegenspraak met de definitie van een project, dat stelt dat een project een duidelijk begin en eind heeft. De achterliggende gedachte is echter meer dat je een omgeving moet creëren waarin iedereen optimaal kan blijven functioneren. Zowel Prince2 als agile richten zich hierop door het reguleren van de dynamiek in een project zodat er geen overbelasting van resources plaatsvindt.

9. Voortdurende aandacht voor een hoge technische kwaliteit en voor een goed ontwerp versterken agility.
Agile projecten stellen hoge eisen aan de vaardigheden en discipline van de teamleden. In Prince2 wordt dit aspect vooral procesmatig ondervangen door nadruk op kwaliteitsmanagement.

10. Eenvoud – de kunst van het maximaliseren van het werk dat niet gedaan wordt – is essentieel.
Vanuit het oogpunt van de business case achter elk willekeurig project lijkt dit ons altijd een goed beginsel. Prince2 adviseert nadrukkelijk om kritisch te blijven op wat je doet en of het wel nodig is voor het te behalen resultaat. Anders wordt je een Pino-project.

11. De beste architecturen, eisen en ontwerpen komen voort uit zelfsturende teams.
Prince2 biedt vooral richtlijnen voor de projectorganisatie en de communicatie tussen de verschillende teams onderling en met de projectomgeving. Hoe een team zichzelf organiseert en hoe de specialistische producten worden gerealiseerd wordt in Prince2 vrijgelaten. Agile methodieken bieden hiervoor waardevolle handvatten.

12. Regelmatig onderzoekt het team hoe het effectiever kan worden en het past vervolgens zijn gedrag daarop aan.
Dit principe past naadloos op de evaluatiemomenten die Prince2 definieert zoals de assessments gedurende en aan het einde van een fase en het lessons-learnedrapport aan het eind van een project.

4. Conclusie


Alles overziend blijkt dat de methodieken of gedachtes elkaar op een vijftal punten (2, 4, 7, 8 en 12) overlappen en elkaar op de zeven overige punten uitstekend aanvullen. Belangrijke constatering is dat het manifesto op geen enkel punt volledig in tegenspraak is met de gedachtegangen in Prince2. Belangrijk verschil tussen agile en Prince2 is dat agile de teamleden en hun interactie benadrukt en Prince2 zich meer richt op formele processen en deliverables. Agile sluit vaak slecht aan op de gangbare managementcultuur. Prince2 mist een belangrijke focus op de personen die het uitvoerende werk moeten doen. Agile en Prince2 kunnen elkaar op deze punten goed aanvullen.

Het oorspronkelijke artikel stond eerder op ict-pm.wikispaces.com.

Boeken over dit onderwerp

Agile Product Management with Scrum

Auteur: Roman Pichler
In ‘Agile Product Management with Scrum’, leading Scrum consultant Roman Pichler uses real-world examples to demonstrate how product owners can create successful products with Scrum.
Europrijs: 30,95
Bestellen

Lean Architecture for Agile Software Development

Auteur: James Coplien
‘Lean Architecture for Agile Software Development’ is geen boek vol met methoden, maar een boek met een focus op code en veel codevoorbeelden. Onder andere de volgende onderwerpebn worden in dit boek beschjeven: Agile productie, Organisatie issues, implementaties met Scala/Python/Java van een voorbeeld DCI account, Qi4 en veel meer.
Europrijs: 29,99
Bestellen

Meer boeken over Scrum vinden.


-- Printbare PDF-versie --


No votes yet.
Please wait...

Aanvullingen

Geef zelf een aanvulling.

Geef een aanvulling

Licentie: Creative Commons (Naamsvermelding/Gelijkdelen)

Checklisten:
Selectie te gebruiken methodologie 38 vragen.
Project-organisatie ontwikkelteam 29 vragen.
Gebruik methodologie in project 17 vragen.
Sidebar