Redactionele bijdrage: Laureli Mallek, programmamanager
Vroege gebruikers van agile ontwikkeling waren vaak kleine, zelfstandige teams die werkten aan kleine, op zichzelf staande projecten. Ze hebben bewezen dat het agile model kan werken, tot vreugde en verbetering van softwaremakers over de hele wereld. Het bleek dat het watervalontwikkelingsmodel niet zo effectief was voor de ontwikkeling van software als agile projectmanagement voor de meeste teams
De populariteit van agile projectmanagement heeft ertoe geleid dat meer organisaties agile schalen in plaats van te werken met afzonderlijke teams of projecten, en dat zij dit toepassen op hele programma's. Agile heeft zich zelfs verder verspreid dan ontwikkelingsteams, waaronder IT, marketing, bedrijfsontwikkeling en meer.
Wat is agile projectmanagement?
Agile projectmanagement is een iteratieve benadering van het leveren van een project en richt zich op continue releases waarin feedback van klanten is verwerkt. De mogelijkheid tot aanpassing tijdens elke iteratie bevordert de snelheid en het aanpassingsvermogen. Deze aanpak verschilt van de lineaire aanpak van watervalprojectmanagement, waarbij een vast pad wordt gevolgd met beperkte afwijkingsmogelijkheden.
Nu klanten en bedrijven tegenwoordig snelle reacties en wijzigingen eisen, biedt agile de flexibiliteit om zich aan te passen en nieuwe iteraties uit te voeren tijdens het ontwikkelingsproces. Agile projectmanagement is ook een hoeksteen van DevOps-praktijken, waarbij ontwikkelings- en operationele teams samenwerken.
Wat is watervalprojectmanagement?
De benadering van watervalprojectmanagement omvat een duidelijk gedefinieerde volgorde van uitvoering met projectfasen die pas doorgaan als een fase definitief is goedgekeurd. Zodra een fase is voltooid, kan het moeilijk en kostbaar zijn terug te gaan naar een vorige fase. Agile teams kunnen een vergelijkbare volgorde doorlopen, maar doen dit in kleinere stappen met regelmatige feedbackloops.
De aanpak met watervalprojectmanagement volgt een lineaire, opeenvolgende formule. Dit werkt goed voor werk met voorspelbare, terugkerende processen, maar het kan ontwikkelingsteams fantasieloos maken zodat ze zich niet sneller kunnen aanpassen dan de concurrentie zich kan aanpassen.
A single missed deadline or scope change during a waterfall project can cause outsized impacts on subsequent releases. Additionally, when a team is fully focused on the next phase of work, resolving technical debt or fixing bugs can be painful if the team is fully allocated to new feature work and always pressing forward to the next stage.
Hieronder zie je een illustratie van een standaard watervalproject met rigide gesegmenteerde tijdblokken. Dit creëert een 'use it or lose it'-mentaliteit die ontwikkelaars, producteigenaren en belanghebbenden aanmoedigt om in elk tijdvenster zoveel mogelijk tijd aan te vragen, aangezien er in de toekomst misschien geen mogelijkheid is om iteraties te doen. Meestal proberen teams die waterval gebruiken de scope-creep te beheersen door middel van 'change control', waar iedereen het erover eens is dat het oorspronkelijke contract niet wordt gewijzigd.
Het watervalmodel kan enkele bekende uitdagingen van het bouwen van producten verergeren:
- Blockers en beheer van onderlinge relaties: traditionele stijlen voor projectmanagement creëren vaak 'kritieke paden', waarbij het project pas verder kan als een blokkerende issue is opgelost.
- Moeilijkheden om feedback van gebruikers en productvalidatie te verkrijgen: om alles nog erger te maken kan de eindklant pas met het product werken als het volledig is voltooid. Belangrijke issues in het ontwerp en de code van het product blijven dus verborgen tot de release.
De voordelen van waterval
- Vereist minder coördinatie als gevolg van duidelijk gedefinieerde fasen met sequentiële processen
- Een duidelijke projectfase helpt om onderlinge afhankelijkheden van werk duidelijk te definiëren
- De kosten van het project kunnen worden geschat nadat de vereisten zijn gedefinieerd
- Betere focus op documentatie van ontwerpen en vereisten
- De ontwerpfase is meer methodisch en gestructureerd voordat er software wordt geschreven
De nadelen van waterval
- Moeilijker om werk op te splitsen en te delen omdat teams vanwege striktere fasesequenties, meer gespecialiseerd zijn
- Risico op tijdverspilling door vertragingen en tegenslagen tijdens fasetransities
- Aanvullende wervingsvereisten om te voldoen aan gespecialiseerde faseteams, terwijl agile een meer cross-functionele teamsamenstelling stimuleert
- Extra communicatie-overhead tijdens overdracht tussen fasetransities
- Producteigendom en betrokkenheid zijn misschien niet zo sterk in vergelijking met agile, aangezien de focus ligt op de huidige fase.
Agile vs. Waterfall Methodologies
Agile werd voor het eerst aanvaard door softwareteams, die van de traditionele, sequentiële watervalbenadering overstapten op een methode die consistente feedback en aanpassing opleverde gedurende de hele levenscyclus van de ontwikkeling.
Agile projectmanagement hanteert een iteratieve aanpak van ontwikkeling door verschillende incrementele stappen te creëren met regelmatige feedbackintervallen. Dit bevordert het aanpassingsvermogen omdat een team zich tijdens het productontwikkelingsproces kan aanpassen, in plaats van zich te beperken tot een lineair pad. Het maakt ook regelmatige releases met veel impact mogelijk, zodat teams in de loop van de tijd een reeks successen kunnen boeken.
Iteratieve releases bieden een team meerdere mogelijkheden om:
- zich aan te passen aan veranderende omstandigheden, van nieuw ontdekte vereisten tot een geblokkeerd stuk werk.
- feedback van belanghebbenden te verzamelen tijdens het proces en responsief iteraties uit te voeren zonder de stress van een definitieve leveringstermijn.
- relaties en verbindingen te bouwen tussen rollen die het voor mensen gemakkelijker maken om effectief met elkaar in contact te komen en te communiceren.
Agile geeft teams meer veerkracht tegen veranderingen die onvermijdelijk optreden tijdens een project.
Een nog groter voordeel zijn gedeelde vaardigheden binnen het softwareteam. De overlappende vaardigheden van het team voegen flexibiliteit toe aan het werk in alle delen van de codebasis van het team. Op deze manier worden werk en tijd niet verspild als het project van richting verandert. (Zie ons artikel over het bouwen van geweldige agile teams voor meer informatie.)
Agile principes
- Een agile project is onderverdeeld in verschillende incrementele stappen, waaronder regelmatige feedbackintervallen.
- Een projectvereiste wordt gesegmenteerd in kleinere stukken, die vervolgens worden geprioriteerd op basis van belangrijkheid.
- Bevordert de samenwerking, vooral met de klant.
- Past zich regelmatig aan om ervoor te zorgen dat aan de behoeften van een klant wordt voldaan.
- Integreert planning met uitvoering, waardoor een team effectief kan reageren op veranderende vereisten
De voordelen van agile projectmanagement
- Snellere feedbackcycli
- Identificeert problemen vroeg
- Groter potentieel voor klanttevredenheid
- De time-to-market wordt drastisch verbeterd
- Betere zichtbaarheid/verantwoording
- Speciale teams zorgen in de loop van de tijd voor meer productiviteit
- Flexibele prioritering gericht op waardelevering
De nadelen van agile
- Kritieke paden en afhankelijkheden tussen projecten zijn mogelijk niet zo duidelijk gedefinieerd als in waterval
- Er zijn kosten voor de leercurve van de organisatie
- Echte agile uitvoering met een continue implementatiepijplijn heeft veel technische afhankelijkheden en engineeringkosten die moeten worden vastgelegd
Elementen waarmee je rekening moet houden bij de overstap naar agile
Overstappen op agile kan een uitdaging zijn, vooral wanneer een team of organisatie geworteld is in een meer traditionele projectmanagementbenadering. Overstappen op agile praktijken kan een aantal proceswijzigingen vereisen, vooral bij het toepassen van een DevOps-aanpak, waarbij ontwikkelings- en operationele teams nauw samenwerken om software te ontwikkelen en te onderhouden. Bij het toepassen van agile principes moeten een team en de belanghebbenden twee belangrijke concepten omarmen:
- De focus van de producteigenaar ligt op het optimaliseren van de waarde van de output van het team. Het team vertrouwt erop dat de producteigenaar de hoogste prioriteit geeft aan het belangrijkste werk.
- Het ontwikkelingsteam kan alleen werk accepteren wanneer het daar capaciteit voor heeft. De producteigenaar pusht het werk niet naar het team en legt geen willekeurige deadlines op. Het ontwikkelingsteam haalt werk uit de backlog van het programma wanneer het nieuw werk kan accepteren.
Laten we eens kijken naar de mechanismen waarmee agile programma's werk op een iteratieve manier organiseren, uitvoeren en structureren.
Roadmaps
Een productroadmap schetst hoe een product of oplossing zich in de loop van de tijd ontwikkelt. Een roadmap in agile ontwikkeling biedt een belangrijke context die teams in staat stelt om zowel incrementele als projectbrede doelen te bereiken. Roadmaps zijn samengesteld uit initiatieven, die grote functionaliteitsgebieden zijn, en bevatten tijdlijnen die aangeven wanneer een functie beschikbaar is. Naarmate het werk vordert en teams meer leren, wordt aangenomen dat de roadmap zal veranderen om die nieuwe informatie weer te geven, mogelijk op subtiele of brede wijze. Het doel is de roadmap gefocust te houden op de huidige omstandigheden die van invloed zijn op het project en de langetermijndoelen om effectief met belanghebbenden samen te werken en te reageren op de concurrentie.
Hieronder volgt een eenvoudige roadmap voor een productteam, met initiatieven in de vakjes en tijdlijnen die worden aangegeven door de mijlpalen in rood.
Vereisten
Elk initiatief in de roadmap is onderverdeeld in een reeks vereisten. Agile vereisten zijn korte beschrijvingen van vereiste functionaliteit, in plaats van documenten van 100 pagina's zoals in traditionele projecten. Ze evolueren in de loop van de tijd en profiteren van het gedeelde begrip van het team van de klant en het gewenste product. Agile vereisten blijven lean, terwijl iedereen in het team een gedeeld begrip ontwikkelt via voortdurende gesprekken en samenwerking. Pas wanneer de implementatie op het punt staat te beginnen, worden ze uitgewerkt met alle details.
Backlog
De backlog stelt de prioriteiten voor het agile programma. Het team neemt alle werkitems op in de backlog: nieuwe functies, bugs, verbeteringen, technische of architecturale taken, enz. De producteigenaar geeft prioriteit aan het werk in de backlog voor het engineeringteam. Het ontwikkelingsteam gebruikt vervolgens de geprioriteerde backlog als enige bron van waarheid voor wat er moet worden gedaan.
Agile statistieken
Agile teams gedijen op basis van statistieken. Werk in uitvoering (WIP)-limieten houden het team en het bedrijf gefocust op het leveren van werk met de hoogste prioriteit. Grafieken zoals burndown- en beheerschema's helpen het team hun leveringscadans te voorspellen, en continue stroomdiagrammen helpen knelpunten te identificeren. Deze statistieken en artefacten houden iedereen gefocust op de grote doelen en vergroten het vertrouwen in het vermogen van het team om toekomstig werk te leveren.
Agile draait op vertrouwen
Agile processen kunnen niet functioneren zonder een hoog niveau van vertrouwen onder teamleden en creëren daarom vertrouwen. Het vereist openhartigheid om moeilijke gesprekken te voeren over wat goed is voor het programma en het product. Omdat gesprekken met regelmatige tussenpozen plaatsvinden, worden er regelmatig ideeën en zorgen geuit. Dat betekent dat teamleden vertrouwen moeten hebben in elkaars vermogen (en bereidheid) om de beslissingen die tijdens die gesprekken worden genomen uit te voeren.
Conclusie...
Agile projectmanagement is een innovatieve aanpak, niet alleen voor softwareprojecten, maar ook voor projecten van alle niveaus. Door de flexibiliteit te bieden om te reageren op veranderingen tijdens de ontwikkelingscyclus, stelt agile teams in staat om producten van hogere kwaliteit te leveren die voldoen aan de behoeften van de klant. Agile stelt teams in staat, bouwt verantwoordingsplicht op en stimuleert innovatie terwijl continue verbetering wordt bevorderd. Het geeft je de mogelijkheid om op veranderingen te reageren zonder te ontsporen. En dat is goed nieuws voor elk programma.
Learn more about agile project management and check out our free jira project management template. Plus, dive into agile adoption with agile tools for software teams, and learn how to communicate the progress of work across teams.