Agile in 3 minuten
De basis
Afkomstig uit de IT-wereld, waar het concept Agile verwijst naar een reeks softwareontwikkelingsmethoden gebaseerd op iteratieve en incrementele ontwikkeling, waarbij eisen en oplossingen evolueren door samenwerking tussen zelforganiserende en cross-functionele teams. Tegenwoordig worden de principes van de Agile aanpak ook gebruikt in andere domeinen, bijvoorbeeld design & engineering, productontwikkeling, productie, enz.
Samenvatting
Incrementele softwareontwikkelingsmethoden gaan terug tot 1957. Lichtgewicht’ softwareontwikkelmethodes ontwikkelden zich halverwege de jaren 90 als reactie op ‘zwaargewicht’ methodes, die door critici werden gekarakteriseerd als een sterk gereguleerd, micromanaged, watervalmodel van ontwikkeling. Voorstanders van lichtgewicht methoden (en nu ook Agile methoden) beweren dat ze een terugkeer zijn naar vroegere praktijken in softwareontwikkeling.
Vroege implementaties van lichtgewicht methoden zijn Scrum (1993), Crystal Clear, Extreem Programmeren (XP, 1996), Adaptieve Software Ontwikkeling, Feature Driven Development, DSDM (1995, sinds 2008 DSDM-Atern genoemd) en het Rational Unified Process (RUP, 1998). Deze worden nu meestal aangeduid als Agile-methoden, naar het Agile Manifesto.
Het Agile Manifesto werd geschreven in februari 2001, op een top van onafhankelijk denkende beoefenaars van verschillende programmeermethoden.
Het Agile Manifesto heeft twaalf onderliggende principes:
1. Klanttevredenheid door snelle levering van bruikbare software
2. Verwelkom veranderende eisen, zelfs laat in de ontwikkeling
3. Werkende software wordt vaak geleverd (weken in plaats van maanden)
4. Werkende software is de belangrijkste maatstaf voor vooruitgang
5. Duurzame ontwikkeling, in staat om een constant tempo aan te houden
6. Nauwe, dagelijkse samenwerking tussen zakenmensen en ontwikkelaars
7. Persoonlijk gesprek is de beste vorm van communicatie (co-locatie)
8. Projecten worden opgebouwd rond gemotiveerde individuen, die vertrouwd moeten worden
9. Voortdurende aandacht voor technische uitmuntendheid en een goed ontwerp
10. Eenvoud
11. Zelforganiserende teams
12. Regelmatige aanpassing aan veranderende omstandigheden
Agile methoden splitsen taken op in kleine stappen met minimale planning en hebben niet direct te maken met langetermijnplanning.
Iteraties zijn korte tijdsbestekken. De teamsamenstelling in een Agile project is meestal cross-functioneel en zelforganiserend en de teamgrootte is meestal klein (5-9 mensen). De Agile methode moedigt belanghebbenden aan om “hun eisen te prioriteren op basis van bedrijfswaarde”.
De Agile aanpak wordt ondersteund door de Agile Alliance, een non-profit organisatie die Agile projecten wil zien starten en Agile teams wil helpen presteren. De organisatie wordt gefinancierd door individuele lidmaatschappen, bedrijfslidmaatschappen en door de opbrengsten van de Agile conferenties. Het is geen certificeringsinstantie en onderschrijft geen certificeringsprogramma’s.
Doelgroep
Iedereen die betrokken is bij een Agile-ontwikkelprojectteam; inclusief analisten, architecten, ontwikkelaars, engineers, testers en zakelijke klanten/gebruikers; iedereen die een Agile-projectteam ondersteunt of managet en een gedetailleerd begrip nodig heeft van de praktijken en voordelen van Agile-ontwikkeling.
Reikwijdte en beperkingen
Toepasbaar op ontwikkelomgevingen. Verbeterde kwaliteit; hogere productiviteit; positief effect op bedrijfstevredenheid.
Beperkingen:
– Werkt minder goed bij gedistribueerde ontwikkelinspanningen waar teams niet bij elkaar zitten
– Acceptatie: een Agile proces opdringen aan een ontwikkelteam dat niet bekend is met de aanpak.
– Uitzonderingen: missiekritische systemen waarbij falen koste wat kost geen optie is (bijv. software voor chirurgische ingrepen)