Wat is Agile ontwikkeling (agile development)?
Verzamelnaam voor manieren van softwareontwikkeling die korte iteraties van enkele weken herhalen, elke keer werkende software opleveren, feedback van gebruikers verwerken en het plan bijstellen om veranderende eisen te volgen. Bekende methoden zijn Scrum en Extreme Programming (XP).
Japanse benaming: アジャイル開発
“Agile ontwikkeling (agile development)” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Softwareontwikkeling en projectmanagement.
Vakgebied: Softwareontwikkeling en projectmanagement
Het Manifest voor Agile Softwareontwikkeling
De ideeën achter agile ontwikkeling zijn samengevat in het Manifest voor Agile Softwareontwikkeling, dat in 2001 werd gepubliceerd. Het waardeert mensen en hun onderlinge interactie boven processen en tools, werkende software boven allesomvattende documentatie, samenwerking met de klant boven contractonderhandelingen, en inspelen op verandering boven het volgen van een plan. Het erkent dat de zaken aan de rechterkant waarde hebben, maar hecht meer waarde aan die aan de linkerkant; het betekent dus niet dat documentatie of plannen overbodig zijn.
Verschil met het watervalmodel
In het watervalmodel worden de eisen eerst vastgelegd en wordt het hele systeem in één doorgang gebouwd, zodat gebruikers pas tegen het eind van de ontwikkeling iets werkends zien. Bij agile ontwikkeling worden functies stukje voor stukje gebouwd, te beginnen met de hoogste prioriteit, en wordt met korte tussenpozen iets werkends getoond, zodat verkeerd begrepen of veranderende eisen vroeg worden opgemerkt. Daar staat tegenover dat de uiteindelijke omvang en kosten moeilijk vooraf vast te leggen zijn, en dat passende contracten en een doorlopende betrokkenheid van gebruikers bij de ontwikkeling nodig zijn. Welke aanpak beter is, hangt af van hoe zeker de eisen zijn en hoe duur wijzigingen zijn.
Toepassing bij ontwikkeling dicht bij de hardware
Omdat chips en printplaten duur en traag zijn om opnieuw te maken, verloopt de ontwikkeling van de hardware zelf vooral planmatig, met een specificatie die vroeg wordt vastgelegd. Software zoals firmware, drivers, EDA-scripts en verificatieomgevingen wordt daarentegen vaak agile ontwikkeld, in combinatie met continuous integration en geautomatiseerd testen. Zolang er nog geen echte hardware is, draait de software eerst op simulatoren of FPGA-prototypes, waarbij de planning van de hardware wordt gecombineerd met iteraties van de software.
Veelgestelde vragen
Betekent agile ontwikkeling dat er geen ontwerpdocumenten worden geschreven?
Nee. Het Manifest voor Agile Softwareontwikkeling waardeert werkende software boven allesomvattende documentatie, maar erkent ook de waarde van documentatie. Documenten die nodig zijn voor onderhoud of om de veiligheid te onderbouwen, worden geschreven voor zover nodig en samen met de software bijgewerkt.
Zijn agile ontwikkeling en Scrum hetzelfde?
Scrum is een van de bekendste raamwerken voor agile ontwikkeling. Agile ontwikkeling is een verzamelnaam voor het idee om in korte iteraties waarde te leveren; naast Scrum hoort daar bijvoorbeeld Extreme Programming (XP) bij, met praktijken zoals testgedreven ontwikkeling en pair programming.