Software ontwikkelen: Agile, Scrum en Lean

Voor het ontwikkelen van software zijn verschillende standaard methodes beschikbaar. In het verleden werd vooral gewerkt met de watervalmethode, waarbij ontwerp-, ontwikkel- en testwerkzaamheden fasegewijs en voorzien van lijvige documentatie uitgevoerd werden. Omdat deze manier van werken veel nadelen heeft en niet zelden tot teleurstellende resultaten leidt, is gezocht naar methodes die tot betere resultaten leiden. Agile, Scrum en Lean worden steeds vaker genoemd als methodes die veel betere resultaten opleveren.

Agile

Agile software ontwikkelen wordt vaak in één adem genoemd met Scrum en Lean. Het gaat hierbij echter om verschillende methodes, waarbij agile feitelijk geen methode is in tegenstelling tot Scrum en Lean.

Behendig of wendbaar, dat is wellicht de beste Nederlandse vertaling van het begrip agile. Het duidt echter niet zozeer een werkmethode aan, maar meer een bepaald gedachtegoed dat men hanteert bij de manier van werken. Het begrip agile komt voort uit het Agile Manifesto, het in 2001 onder andere door Jeff Sutherland opgestelde manifest als reactie op de tot dan toe gebruikte logge en van veel documentatie voorziene software ontwikkelmethodes als de Watervalmethode. De letterlijke tekst van het Agile Manifesto luidt:

“Wij laten zien dat er betere manieren zijn om software te ontwikkelen door in de praktijk aan te tonen dat dit werkt en door anderen ermee te helpen. Daarom verkiezen we:
  • 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

Hoewel wij waardering hebben voor al hetgeen aan de rechterkant staat vermeld, hechten wij méér waarde aan wat aan de linkerzijde wordt genoemd.”

Het manifest geeft dus niet aan dat er geen processen of hulpmiddelen mogen worden gebruikt, dat er niet gedocumenteerd mag worden, etc. Het geeft vooral aan dat mensen en interactie, werkende software, samenwerking en reageren op veranderingen de belangrijkste uitgangspunten zijn voor succesvolle software ontwikkeling en -projecten. Het Agile Manifesto en het agile gedachtegoed vormen het fundament voor onder andere Scrum, DSDM (Dynamic Systems Development Method) en XP (Extreme Programming), die wel als gestructureerde werkmethode voor software-ontwikkeling zijn uitgewerkt.

Scrum

Het op het agile gedachtegoed gebaseerde Scrum is in de basis een zeer eenvoudige methode voor software-ontwikkeling. De methode kent slechts drie rollen:
  • Product Owner
  • Scrum Master
  • Team.

In het Team bevinden zich weliswaar de traditionele rollen als ontwerper, ontwikkelaar en tester, maar zij beperken zich niet tot de uitvoering van de traditionele rolinvulling. Het resultaat van het Team staat namelijk voorop en zo kan bijvoorbeeld ook de ontwerper testwerkzaamheden op zich nemen, als het te bereiken resultaat hierom vraagt. Naast deze agile rolinvulling, is het Scrumteam ook agile in de wijze waarop het de opdrachten plant en uitvoert. Deze opdrachten worden opgedeeld in tijdvakken (sprints) van één tot maximaal vier weken, waarbij aan het einde van elke sprint werkende software wordt opgeleverd. De Product Owner bepaalt hierbij wat het belangrijkste volgende onderdeel van de opdracht is en in de eerstvolgende sprint door het Team kan worden opgepakt. Daardoor kan continu worden ingespeeld op veranderingen. De Scrum Master bewaakt en faciliteert de toepassing van Scrum als werkmethode door het Team.

Lean

In tegenstelling tot Scrum is Lean in de basis geen methode voor software-ontwikkeling, maar een methode om continu te werken aan procesverbetering, het opleveren van een voor de klant acceptabel eindproduct en het vinden en reduceren of zelfs wegnemen van verspillingen. De basis voor Lean is gelegd door Toyota, in de vorm van het TPS (Toyota Production System). De vijf principes van Lean zijn:
  1. Stel de toegevoegde waarde voor de klant vast
  2. Bekijk de waardestroom, welke processtappen worden gevolgd om het resultaat te bereken
  3. Hanteer een continue processtroom, vermijd zoveel mogelijk wachttijd en voorraad
  4. Voorkom overproductie en begin pas met produceren als de klant of de volgende processtap erom vraagt
  5. Probeer de perfecte situatie te bereiken door een continue verbetercultuur

Eigenlijk is Lean overal toepasbaar waar procesmatig gewerkt wordt. En daarmee is het ook toepasbaar voor software-ontwikkeling. Mary en Tom Poppendieck beschrijven in hun boek Lean Software Development hoe Lean toepasbaar is als agile software-ontwikkelmethode: “Lean Software Development is the application of the principles of the Toyota Product Development System to software development.”

Conclusie

Agile is bij software-ontwikkeling dus vooral een gedachtegoed dat wordt gehanteerd, met het Agile Manifesto als basis voor een aantal agile software-ontwikkelmethodes, met Scrum als de belangrijkste daarvan. Lean is vooral een methode gericht op procesverbetering en het wegnemen van verspilling in processen, maar is wel degelijk ook toepasbaar als agile software-ontwikkelmethode.

Lees verder

© 2016 - 2024 Tuimelaar, het auteursrecht van dit artikel ligt bij de infoteur. Zonder toestemming is vermenigvuldiging verboden. Per 2021 gaat InfoNu verder als archief, artikelen worden nog maar beperkt geactualiseerd.
Gerelateerde artikelen
Softwareontwikkelmethode DevOpsSoftwareontwikkelmethode DevOpsDevOps (of Dev Ops) is een logisch vervolg en een verbetering van de Agile methode of filosofie. Bij Agile en Scrum zijn…
Software testen in ScrumSoftware testen in ScrumScrum bestaat alweer sinds de vroege jaren 90, maar bedrijven kampen er soms mee dat het software testen binnen een Spri…
Scrum, een softwareontwikkelmethode voor projectenScrum, een softwareontwikkelmethode voor projectenScrum is afgeleid van het Agile-softwarepakket en is een populaire methode in het projectmanagement. Een project wordt o…
Beter software testen in ScrumBeter software testen in ScrumScrum is een framework voor teams om complexe systemen en producten te ontwikkelen. Wanneer je software testen goed toep…
Minecraft van Microsoft, nu ook voor op schoolMinecraft van Microsoft, nu ook voor op schoolMinecraft is een sandboxspel uit 2011, dat sinds die tijd ongekend populair is. In deze kubistische wereld kan gespeeld…
Bronnen en referenties
  • http://www.agilemanifesto.org/iso/nl/
  • http://www.computer.org/csdl/proceedings/icsecompanion/2007/2892/00/28920165.pdf
Tuimelaar (10 artikelen)
Gepubliceerd: 29-01-2016
Rubriek: Pc en Internet
Subrubriek: Software
Bronnen en referenties: 2
Per 2021 gaat InfoNu verder als archief. Het grote aanbod van artikelen blijft beschikbaar maar er worden geen nieuwe artikelen meer gepubliceerd en nog maar beperkt geactualiseerd, daardoor kunnen artikelen op bepaalde punten verouderd zijn. Reacties plaatsen bij artikelen is niet meer mogelijk.