Waarom heb ik Agile nodig?

Problemen die opgelost kunnen worden met Agile

Hierboven beschrijf ik een aantal problemen die door Agile werken aangepakt kunnen worden. Zoals je ziet heb ik hierin twee perspectieven opgenomen. Zowel de ontwikkelafdeling(rechts) als haar afnemer(links) zijn vaak ontevreden.

Vanuit de zijde van de afnemer wordt er flexibiliteit gemist en duurt het altijd lang. Daarnaast is de kwaliteit niet geweldig zodra er daadwerkelijk iets opgeleverd wordt.

Vanuit de zijde van de ontwikkelafdeling wordt er vaak hard gewerkt. De resultaten worden echter nooit gewaardeerd. Daarnaast worden ze vaak gestoord in hun werk. Het gevolg is dat er niet geconcentreerd gewerkt kan worden.

Problemen met ontwikkelmethodes

Aan de bovenstaande symptomen liggen een aantal problemen ten grondslag. Ik beschrijf hier eerst een aantal van die problemen. Daarna beschrijf ik een aantal oplossingen die Agile hiervoor biedt.

Communicatie en verwachtingsproblemen

Het is als afnemer van een ontwikkelafdeling ontzettend moeilijk om te laten weten waar je behoefte aan hebt. Ten eerste is hetgeen je wilt hebben nog niet aanwezig. Je moet er dus over dagdromen en zelf een voorstelling van maken. Die voorstelling is bijna onmogelijk om goed over te brengen op een ander. Hieronder kun je mooi uitgebeeld zien hoe er hierbij communicatie problemen kunnen ontstaan. Plaatje 5 is wat er uiteindelijk geleverd wordt, plaatje 6 is waar behoefte aan was. De afbeelding is, zoals te zien, al van 1973…

The swing in the tree meme, truly a classic

Verwachtingen vanuit de markt

Naast de communicatie problemen, worden er vaak door de afnemer harde deadlines verlangd. Je wilt ten slotte weten wanneer je gebruik kan maken van je investering. Begrijpelijk, maar dan moet er dus een groot plan gemaakt worden door de ontwikkelafdeling. De ontwikkelafdeling moet ten slotte een belofte afgeven en wil die waar kunnen maken. Doordat er een groot plan gemaakt wordt, wordt er ver vooruit gedacht. Daardoor duurt het weer lang voordat het gevraagde product klaar is. Is het product dan eindelijk klaar, dan is het vaak alweer achterhaald.

Afleidingen

Een groot project opzetten heeft nog een ander nadeel. Zodra mensen aan dat grote project bezig zijn, willen ze daar graag aandacht aan besteden. Daarbij hebben ze een belofte afgegeven dat ze het op moment X afhebben. Zodra er andere verzoeken op ze af komen, zullen ze verstoord reageren. “Ik heb dit afgesproken, dan ga ik niet nu tussendoor even wat anders doen.” Maanden achter elkaar geconcentreerd doorwerken is alleen niet mogelijk. De mooie kleine kansen vanuit de markt worden dan niet opgepakt. Daar wordt door afnemers vaak op gereageerd door het er dan door te duwen. Dat levert weer frustratie aan beide kanten op. De afnemer wil flexibiliteit, maar krijgt die niet. De afdeling wil graag concentratie op zijn opdracht en wordt overruled.

Welke oplossingen biedt Agile?

Feedback verkrijgen door iteraties

Iedere Agile ontwikkelmethode begint met de focus op het verkrijgen van feedback. Er wordt in korte iteraties gewerkt, meestal van 1-4 weken. Na iedere iteratie wordt een werkend product afgeleverd. Het product is dan niet compleet, het voldoet niet aan alle wensen die de afnemer heeft. De dingen die het kan, doen het alleen wel echt. Het is dus een uitgelezen kans voor de afnemer om te kijken of het product de goede kant op gaat. Voor de ontwikkelafdeling is dit de feedback die ze nodig hebben. Alleen zo kunnen ze begrijpen of ze goed werk leveren. De afnemer heeft na de iteratie de keuze om het opgeleverde product in productie te nemen, of om verder te gaan met ontwikkelen. Beide partijen kunnen hun verwachtingen bijstellen en het project weer de goede richting in sturen.

Onderstaande plaat toont hoe een project mis kan gaan middels de verkeerde verwachtingen. De afnemer wil graag bij de vlag uitkomen en bespreekt dit met de ontwikkelafdeling. Er wordt een richting ingeslagen op basis van die gesprekken. Als je verder gaat volgens die stippellijn, kom je ver van het doel vandaan uit. Door het verkrijgen van echte feedback, kan bijgestuurd worden. Het oorspronkelijke doel kan dan nog gehaald worden.

Iteraties brengen de mogelijkheid om bij te sturen zodat het doel nog gehaald kan worden

 

Focus houden door iteraties

Doordat een iteratie een korte tijd duurt, kan een afnemer wachten tot het einde van de iteratie om met een nieuw verzoek te komen. Het duurt ten slotte maximaal de lengte van de iteratie voordat afdeling en afnemer weer samen om tafel gaan. De afdeling krijgt daardoor de vrijheid om binnen die iteratie haar werk zelf in te delen. Dat betekent dat medewerkers zelf besluiten of ze de hele dag aan 1 grote aanvraag werken, of dat ze eerst even wat kleine aanvraagjes aanpakken om die maar gewoon weggewerkt te hebben. Hierdoor houden medewerkers focus en krijgen ze weer controle over hun eigen werk. En dat terwijl de afnemer juist een hoop flexibiliteit krijgt!

De plaat hieronder toont hoe het project bijgestuurd kan worden op veranderingen vanuit de markt. Het originele doel stond aan het einde van de blauwe stippellijn. Iedere iteratie heeft de afnemer echter de mogelijkheid om bij te sturen. Doordat die mogelijkheid er is, kan een plotselinge kans vanuit de markt snel opgepakt worden.

Iteraties brengen de mogelijkheid om bij te sturen op wensen vanuit de markt

Kwaliteit door multidisciplinaire teams

Er is nog een heel ander aspect aan het werken in een Agile omgeving. De feedback die nodig is om bij te sturen, moet namelijk echte feedback zijn. Dus feedback op het product, niet feedback op bv documentatie. Om dat voor elkaar te krijgen, niet het product dus werken. Een echt werkend product kan alleen maar opgeleverd worden met een multidisciplinair team. Dit betekent dat het team iedereen bevat die nodig is om van aanvraag te gaan tot echte business value. Laten we het voorbeeld nemen van een software ontwikkelafdeling. Hier betekent dit dus dat er mensen in het team moeten zitten die duidelijke wensen boven tafel krijgen. Het betekent dat er ontwikkelaars in het team zitten. Het betekent dat een architect in het team aanwezig is en ook dat er testers meedoen om de kwaliteit te controleren. Alleen op die manier is het mogelijk om aan het eind van een iteratie een volledig werkend product te hebben. Bijkomstigheid is daarmee dat het team ook volledig verantwoordelijk gemaakt kan worden voor de kwaliteit van de software. Zij hebben alles in handen om een goed of slecht product te maken.

Wat nu?

Bovenstaande is maar een deel van de voordelen die Agile biedt. Voor een volledige uitleg is wel meer tijd voor nodig. Wil je meer aspecten belicht hebben? Of heeft dit je al geïnteresseerd om te starten met Agile? Neem direct contact op, of lees eerst eens mijn aanpak bij beginnen met Agile door.