Agile software development
Agile software ontwikkeling is een conceptueel raamwerk voor het uitvoeren van software-ontwikkelingsprojecten.
Basis van Agile software ontwikkeling is het Agile Manifesto:
- Individuals and interactions over processes and tools
Agile legt de nadruk op direct contact tussen alle mensen die bij een project betrokken zijn. Niet alleen het ontwikkelteam, maar ook analisten, ontwerpers en de klant.
- Working software over comprehensive documentation
Bij Agile methoden wordt de voortgang afgemeten aan de hand van werkende producten of prototypes. Documentatie is van ondergeschikt belang.
- Customer collaboration over contract negotiation
De klant is direct betrokken bij het hele proces, zodat hij niet voor verrassingen komt te staan.
- Responding to change over following a plan
De Agile methode is er op gericht om zich snel aan te kunnen passen aan de veranderende werkelijkheid. Wijzigingen gedurende het ontwikkelproces kunnen naadloos worden ingepast.
Quintor kiest voor de Scrum methode bij de inrichting van Agile processen en heeft daar bij verschillende klanten Proof of Concepts neergezet, die zonder uitzondering positief zijn ontvangen.
Scrum is een framework voor het agile managen van softwareontwikkeling. Agile werkt op basis van multidisciplinaire teams die in korte sprints (iteraties) werkende software opleveren. Samenwerking, communicatie en teamspirit zijn hierbij sleutelwoorden.
Voordelen Agile / Scrum
- Klant direct en voortdurend betrokken bij het ontwikkelproces
- Software ontwikkelen die aansluit bij de klant-wens
- Lage kosten en snelle doorlooptijd door bewaken van de voortgang
- Eenvoudige maar zeer effectieve methodiek die in korte tijd kan worden ingevoerd
Rollen
Product owner
- Eigenaar Product Backlog
- Houdt rekening met de belangen van alle stakeholders (inclusief team)
- Prioriteert de Product Backlog
- Onderhandelt met team over Sprint inhoud
- Hakt knoop door m.b.t. requirements
- Accepteert of weigert opleveringen
Scrum master
- Neemt hindernissen (‘impediments’) weg
- Faciliteert Scrum / zelfsturing
- Helpt PO met releaseplanning
- Schermt het team af voor “ruis”
- Bewaakt timeboxen en rollen
- Zorgt voor zichtbaarheid artifacts
- Heeft geen autoriteit
Scrum Team
- Multidisciplinair (Analist, Ontwikkelaar, tester)
- Autonoom
- Zelfsturend
- Samenwerken
- Geeft commitment aan de Sprint inhoud
- 4 tot 9 mensen
- Werkplekken in elkaars gezichtsveld (bij voorkeur)
Processen
Sprint planning
- Plenair en maximaal 4 uur
- Product owner en team onderhandelen over sprint inhoud
- Product owner gaat over scope
- Team gaat over de schatting
- Team geeft commitment aan PO welke stories deze sprint opgeleverd worden
Daily stand-up
- Vaste tijd, vaste plek
- Maximaal 15 minuten
- Bestaat uit 3 vragen;
- Wat heb je gedaan na de laatste stand-up?
- Wat ga je doen voor de volgende stand-up?
- Zijn er nog obstakels ?
Sprint review
- Demo
- Alleen stories die 100% “klaar” zijn
- Shippable product
- Signoff door Product Owner
- Nieuwe wensen -> Product Backlog
Sprint Retrospective
- Wat ging goed?
- Wat kon beter?
- Wat willen we de volgende Sprint veranderen?
- Intern, zonder Product Owner
Management
Product backlog
- Lijst van alle gewenste requirements
- Lijst kan zowel functionele als niet functionele requirements bevatten
- De product owner is verantwoordelijk voor de prioritering
- De lijst kan ten alle tijde aangevuld worden
- Wordt onderhouden door de product owner
Sprint backlog
- De lijst van requirements t.b.v. de sprint.
- Wordt opgesteld door het scrum team.
- Bevat de requirements met de hoogste prioriteit voor de product owner
Burndown Chart
- Overzicht hoeveel werk er nog uitgevoerd moet worden in een sprint.
- Wordt weergegeven in nog te besteden uren.
- Wordt dagelijks bijgehouden door de scrum master
Story points
- Een simpele manier om initieel in te schatten hoeveel ontwikkel werk verwacht wordt
- Is een relatieve eenheid die de moeilijkheidsgraad aangeeft
Velocity
- De velocity van een sprint is de som van de story points van alle user stories die in die sprint zijn afgerond