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.

Nu oefenen: vragen over Agile ontwikkeling (agile development)

Hoe heet bij agile ontwikkeling, bijvoorbeeld met Extreme Programming (XP), de activiteit waarbij de interne structuur van een programma zo wordt herschikt dat het gemakkelijker te begrijpen en te wijzigen is, zonder het van buiten zichtbare gedrag te veranderen?

  1. APair programming
  2. BReverse engineering
  3. CRefactoring
Antwoord en toelichting tonen

Antwoord: C. Refactoring

Refactoring verbetert de structuur van code zonder de functie te veranderen, bijvoorbeeld door dubbele code samen te voegen, lange functies op te splitsen en duidelijkere namen te kiezen. Om te bevestigen dat het gedrag niet is veranderd, worden geautomatiseerde tests voorbereid en na elke kleine wijziging uitgevoerd. Pair programming is een XP-praktijk waarbij twee mensen samen aan één computer een programma schrijven. Reverse engineering is het analyseren van een bestaand programma om de specificatie en het ontwerp ervan te achterhalen.

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.

“Agile ontwikkeling (agile development)” in de toelichting

Vragen met “Agile ontwikkeling (agile development)” (2)

  1. Hoe heet bij agile ontwikkeling, bijvoorbeeld met Extreme Programming (XP), de activiteit waarbij de interne structuur van een programma zo wordt herschikt dat het gemakkelijker te begrijpen en te wijzigen is, zonder het van buiten zichtbare gedrag te veranderen?
  2. Welke eigenschap van het watervalmodel voor softwareontwikkeling is juist?

Verwante termen

Watervalmodel Blackboxtesten (black-box testing) CI/CD (continuous integration en continuous delivery) Earned value management (EVM) Equivalentiepartitionering (equivalence partitioning) Grenswaardenanalyse (boundary value analysis) Kritiekepadmethode (CPM) Scrum SLA (service level agreement) Takdekking (branch coverage)

Naar de woordenlijst