Samenvatting: Een agile workflow is een reeks fasen die agile teams gebruiken om een applicatie te ontwikkelen, van idee tot voltooiing.
Elk softwareteam heeft een proces om het werk te voltooien. Door dat proces te standaardiseren in een vastgelegde workflow is het duidelijk gestructureerd en herhaalbaar, wat het op zijn beurt schaalbaar maakt. Bij Atlassian hanteren we een iteratieve benadering van workflowbeheer omdat deze ons helpt onze doelen sneller te bereiken en deze onze teamcultuur onderschrijft. We zijn experts in agile workflowmanagement (al zeggen we het zelf) en willen jou ook helpen om een expert te worden.
Aan de slag met agile workflows
Wanneer je een workflow voor het team implementeert, moet je altijd eenvoudig beginnen. Vecht tegen de verleiding om weken te besteden aan technische aspecten. Te complexe workflows zijn moeilijk te begrijpen en toe te passen, om nog maar te zwijgen van aanpassing. Voor softwareteams raden we de volgende basisworkflowstatussen aan:
Werk dat nog niet is gestart
Werk dat actief wordt bekeken door het team
Werk dat is voltooid en wacht op herziening
Werk dat volledig is voltooid en voldoet aan de definitie van gedaan door het team
In een issuetracker stromen deze statussen van de ene status naar de andere met behulp van transities die de workflow structureren.
Sommige softwareteams nemen extra statussen op in hun workflow zodat ze de status van het werk nauwkeuriger kunnen volgen.
Werk dat is geïmplementeerd, maar nog steeds wacht op een testerbeoordeling (zie ons artikel over agile testen voor meer informatie).
Code die beoordeeld en gereed is om samen te voegen in de hoofd- of releasebranch.
Niet elke status in de workflow hoeft door een andere persoon te worden afgehandeld. Naarmate een agile team volwassen wordt, verwerken ontwikkelaars steeds meer van het werk: van ontwerp tot en met levering. Een autonoom team dat heterogeen werk aankan, is immers een van de kenmerken van agile zijn.
Bespreek elk pijnpunt in het retrospectief van het team en houd er rekening mee dat elk team iets andere waarden heeft al naar gelang hun project, technologiestack en methode waarin ze graag werken. Daarom is het belangrijk een issuetracker te kiezen met een flexibele workflowconfiguratie. Veel te veel teams brengen hun werkstijl in gevaar om binnen een bepaalde toolset te passen, wat voor iedereen frustrerend is. Dit kan ertoe leiden dat teamleden die tool helemaal niet gebruiken, waardoor de frustratie in het hele team wordt verergerd en er over het algemeen grote schade wordt aangericht. En als het moreel daalt, lijdt de productiviteit eronder. Dat is een dubbele klap die we allemaal willen vermijden!
Teams die nieuw zijn in agile of die geen cross-functionele vaardigheden hebben, krijgen vaak 'mini-watervallen' in hun workflow. Het ontwerpteam start bijvoorbeeld een werkitem met een mockup. Ontwikkeling doet de implementatie. Test bevestigt de kwaliteit. Elke status is geblokkeerd totdat de vorige status is voltooid. Klinkt dat bekend? Dat is waterval. Maar met agile workflows lukt het veel beter het team te deblokkeren en de ontwikkeling gemakkelijker te maken.
Optimaliseer voor een agile proces
Wanneer je vertrouwd bent met de basisworkflow en klaar bent om over te stappen op een agile proces, maak je statussen aan voor elk type werk in het proces van een team. Ideevorming, ontwerp, ontwikkeling, codebeoordeling en testen zijn functioneel verschillend en kunnen individuele statussen zijn. Streef naar een compacte reeks statussen die duidelijk aangeven in welke fase een onderdeel van het werk zich bevindt.
Projectstatussen kunnen ook worden gedeeld met de rest van de organisatie. Denk bij het samenstellen van een agile proces na over welke statistieken belangrijk zijn om te rapporteren en welke niet-teamleden mogelijk hierin geïnteresseerd zijn. Een goed ontworpen workflow beantwoordt bijvoorbeeld de volgende vragen:
- Welke werkzaamheden heeft het team voltooid?
- Neemt de backlog van het werk toe of houdt deze gelijke tred met het team?
- Hoeveel items zitten er in elke status?
- Zijn er knelpunten die het team vertragen?
- Hoe lang duurt het om een gemiddelde taak te voltooien?
- Hoe veel werkitems voldeden de eerste keer niet aan onze kwaliteitsnormen?
De volgende stap voor optimalisatie van de workflow is te zorgen voor een gestage stroom werk door de workflow. Werk in uitvoering (WIP)-limieten dicteren een minimum en maximum aantal issues in een bepaalde status in de workflow, waardoor elke status voldoende werk heeft om het team volledig te benutten, maar niet zozeer dat het focus verliest door goochelen met prioriteiten. Het afdwingen van WIP-limieten maakt snel duidelijk welke processen het algehele werk in de pipeline vertragen. Naarmate het team leert optimaliseren rond de WIP-limieten, neemt de doorvoer toe. (Zie het artikel over WIP-limieten voor meer informatie.)
De uitdagingen om een agile proces te schalen
Organisaties met meerdere agile teams staan voor speciale uitdagingen met workflows. Teams willen vaak hun eigen workflow optimaliseren om hun unieke proces en cultuur weer te geven. Dit is volkomen begrijpelijk. Maar het kan problemen veroorzaken wanneer verschillende teams verschillende processen volgen terwijl ze aan hetzelfde project werken.
Agile teams die samenwerken, kunnen er baat bij hebben om dezelfde workflow te delen. Het gebruik van dezelfde workflow kan de overgang tussen agile teams gemakkelijker maken, omdat ze dezelfde conventies gebruiken voor het definiëren en leveren van werk. Het creëren van een gemeenschappelijk proces houdt meestal wat geven en nemen van beide teams in. Dat is goed! Ze leren van elkaar en komen uiteindelijk met een betere workflow.
Met Jira, de issuetracker van Atlassian, kunnen teams workflows delen, maar hebben ze verschillende weergaven van het proces op hun agile bord. Deze mogelijkheid leidt tot flexibele visualisatieopties zonder de gedeelde middelen van de workflow op te offeren.
Hoe je workflow er ook uitziet, het proces om deze te ontwikkelen moet ook agile zijn. Bespreek het proces van tijd tot tijd in retrospectieven en pas het aan naarmate de cultuur en samenstelling van het team veranderen.