What The beep is… – Agile?

What The beep is… – Agile?

In de IT wereld wordt nogal eens het woord Agile gebruikt. Ook in andere branches zie je deze term steeds vaker voorbij komen. Maar wat is het nou eigenlijk?

Agile is een methode om software producten als webapplicaties en mobiele apps te ontwikkelen. Met een agile werkmethode lever je werkende software van hoge kwaliteit frequent en consistent op.

Agile betekent ook wel lenig, behendig. Je kunt het dus zien als een werkmethode waarmee je constant verifieert of het product nog voldoet aan de wensen van de klant. Is dat niet zo, dan stuur je bij. Op deze manier verklein je het risico dat je veel energie stopt in het bouwen van een product dat uiteindelijk niet aansluit op de wensen van de klant.

 Tweet dit: Agile is een manier van werken waarbij je constant checkt of het product voldoet aan de wensen vd klant

IT projecten kunnen namelijk nogal complex zijn. Om een écht succesvol software product te maken moeten ontwikkelaars tot in den treure begrijpen wat de doelen, uitdagingen, behoeften en verwachtingen van hun klant zijn.

Hoe hun omgeving eruit ziet.

Tegen welke uitdagingen ze aan (kunnen) lopen.

Wie de eindgebruiker is.

Wat de eindgebruiker met de app moet kunnen.

Om goed te begrijpen wat de klant wil, zijn duidelijke afspraken en heldere communicatie dus ontzettend belangrijk. En daar kan nog wel eens wat bij misgaan. De verzender communiceert iets niet, of onduidelijk. Of de ontvanger luistert niet, of interpreteert het anders dan bedoeld.

Dat is menselijk.

Maar feit is wel dat bij IT projecten waarbij de communicatie niet goed verloopt, de kans een stuk groter is dat iets anders wordt gebouwd dan datgene wat de klant voor ogen had. Of er wordt iets gebouwd wat de klant wel voor ogen had, maar waar de eindgebruiker niet gelukkig van wordt. Het gevolg is vaak dat er veel extra aanpassingen moeten worden gedaan, waardoor veel IT projecten qua tijd en geld ruim boven het budget uitkomen.

Feit is alleen dat communicatie tussen mensen nooit perfect zal zijn. Anders hadden we wel robots geheten en in codetaal gecommuniceerd.

En dat is nou juist één van de belangrijke uitdagingen waarbij de ‘Agile’ manier van werken helpt. De Agile methode erkent namelijk dat wij mensen zijn en geen systemen. En dat we dus soms fouten maken en niet altijd voorspelbaar zijn en logisch handelen.

Tweet dit: Over de oorsprong en kenmerken van Agile werken

De oorsprong: het Agile Manifest

Hoe dat allemaal begon? Laten we even teruggaan naar het jaar 2001, toen het Agile Manifest werd opgesteld door 17 developers over de hele wereld.

Het Agile Manifest is een reactie op de meer traditionele manier waarop software wordt ontwikkeld, zoals de Waterfall methode. Deze modellen werden als traag en bureaucratisch gezien. Hierbij is weinig ruimte voor verandering gedurende het proces, terwijl de omgeving wel verandert.

Het belangrijkste doel van het Agile manifest daarentegen is om “de klant tevreden te stellen door waardevolle software vroegtijdig en voortdurend op te leveren.”

Vervolgens werden er 4 kernwaarden opgesteld:

  • Mensen en hun onderlinge interactie boven processen en hulpmiddelen
  • Werkende software boven allesomvattende documentatie
  • Samenwerking met de klant boven contractonderhandelingen
  • Inspelen op verandering boven het volgen van een plan

© 2001, de auteurs van het Agile Manifesto.

Met waardevolle software wordt software bedoeld die waardevol is voor de klant én – als dat verschillende partijen zijn – de eindgebruiker.

Daarnaast wordt werkende software tijdens het proces constant opgeleverd, steeds verder doorontwikkeld. Startend met bijvoorbeeld een Minimal Viable Product, in plaats van een compleet werkend product te bouwen. Het voordeel van het constant opleveren van werkende software, is dat je meteen kunt testen hoe de eindgebruiker het gebruikt. En of het wordt gebruikt zoals je had verwacht. Zo niet, dan pas je het aan naar aanleiding van die input.

Lever je de software niet constant op, dan steek je veel tijd en energie in het bouwen van een software product dat uiteindelijk misschien niet meer aan de wensen van de klant voldoet. Bijvoorbeeld omdat de omstandigheden zijn gewijzigd, of door nieuwe inzichten.  Dan kunnen afspraken die aan het begin van het proces zijn gemaakt, op een later moment helemaal niet meer relevant zijn.

Door software continue op te leveren, geeft het je de mogelijkheid om constant af te stemmen of de gemaakte afspraken juist geïnterpreteerd zijn en nog steeds van toepassing zijn of aangepast moeten worden.

Kenmerken van een Agile proces

Agile moet je zien als een visie, een soort van overtuiging volgens welke een bedrijf werkt. Vervolgens hebben mensen verschillende methodologieën uitgewerkt op basis van de Agile principes. Bekende voorbeelden daarvan zijn Kanban en Scrum.

Over het algemeen omvat een agile methodologie de volgende activiteiten:

  • Inventariseren

Niet alleen bij aanvang van het project, maar vooral ook gedurende het project wordt constant gekeken wat de wensen zijn van de klant. Deze kunnen immers veranderen door nieuwe inzichten.

Tijdens de inventarisatie wordt een uitgebreide lijst opgesteld van alle benodigde functionaliteiten die van belang zijn. Hierbij wordt ook gekeken welke features de hoogste prioriteit hebben, zodat voor de ontwikkelaars duidelijk is waar zij op moeten focussen.

Lees ook: Hoe een briljant app-idee tot leven komt – de inventarisatie (deel 2)

  • Itereren

Itereren – oftewel herhalen, opnieuw doen – is cruciaal in een agile proces. Constant wordt gecheckt of datgene wat gebouwd is nog wel in lijn is met de verwachtingen. En of het product voldoet aan de wensen van de markt, door te testen. Zo niet, dan wordt gekeken of het product en/of de eisen bijgeschaafd moeten worden.

Meestal duurt één iteratie zo’n 1 – 4 weken. Aan een lange termijn planning wordt veel minder waarde gehecht (sterker nog, die worden vaak niet gebruikt) omdat er in de tussentijd nog zoveel kan veranderen.

Het kan dus zo zijn dat tijdens het proces de wensen veranderen. Vanuit de agile visie wordt verandering zelfs aangemoedigd. Itereren bestaat dus ook uit constant inventariseren of de wensen zijn veranderd.

  • Feedback geven

Onderdeel van veel agile processes is ook terugkijken op het proces: wat ging goed en wat kon beter? Vaak wordt dit aan het einde van elke iteratie gedaan. De ‘feedback loop’ is erg belangrijk, omdat dat het team zo leert van fouten en successen en steeds beter wordt.

Bij de bovenstaande stappen is het trouwens belangrijk om te benoemen dat bovenstaande stappen niet eerst afgerond hoeven te worden voordat met de volgende stap begonnen kan worden. Het hele idee van Agile is dat je tijdens elke iteratie steeds weer inventariseert en feedback geeft. Dit in tegenstelling tot de Waterfall methode, waarbij de teamleden pas met de volgende fase starten als de vorige is afgerond.

Het grote voordeel van Agile ontwikkelen is dat, door de korte iteraties, kleine problemen opgemerkt en opgelost kunnen worden voordat de problemen groter worden en dus steeds moeilijker aan te passen en op te lossen.

Hierbij zijn vooral de korte communicatie lijnen – in het team onderling maar ook met de klant – van groot belang. Ook in onze eigen projecten helpen de ‘Agile’ principes ons om software producten op een flexibele én effectieve manier te ontwikkelen.

Vond je dit een handig artikel?

Ik waardeer het als je dit artikel wilt delen – dat helpt ons ontzettend om meer IT enthousiastelingen te bereiken. Delen kan met één druk op onderstaande knoppen:

[shareaholic app=”share_buttons” id=”27605453″]

Dankjewel!

Gerelateerde artikelen