Projectmanagent MCT2 Agile project management & Scrum Pieter Jorissen / Koen Heylen
22-10-2015
We verliezen de estafette De... estafette of sequentiele aanpak voor projectontwikkeling... kan conflicteren met de doelen van maximale snelheid en flexibiliteit. In plaats daarvan zou een scrum of rugby aanpak - waarbij een team in het geheel al bal spelend een afstand probeert af te leggen, beter bij de tegenwoordige competetieve vereisten passen"
Agile project management is een conceptueel raamwerk voor het beheren van ontwikkelingsprojecten als alternatief voor traditionele starre, sequentiele praktijken. agile betekent: behendig, lenig.
Fasen (NIET SCRUM) Initiatief Definitie Ontwerp Voorbereiding Realisatie Nazorg Het idee! Wat moet er gebeuren? Hoe moet het worden? Hoe moet het gemaakt worden? Doen! Gebruik en instandhouding 5
Typische fasen van een project (NIET SCRUM) Start van het project Mijlpaal Mijlpaal Mijlpaal Mijlpaal Mijlpaal Mijlpaal Initiatief Definitie Ontwerp Voorbereiding Realisatie Nazorg Einde van het project
Waarom Agile/Scrum: Klassieke sequentiele aanpak Initiatief Definitie Ontwerp Voorbereiding Realisatie Nazorg Eisen liggen vast Eerste GUI schetsen Eerste demo s product => Niet flexibel/agile genoeg Wat als er hier problemen opduiken??? Klant bedenkt zich? Bijkomende eisen? Technologie verandert / nieuwe mogelijkheden?
Het Agile Manifesto verklaring van waarden Personen en hun interacties Werkende software Samenwerking met de klant Reageren op veranderingen gaat voor gaat voor gaat voor gaat voor Processen and hulpmiddelen Uitgebreide documentatie Contract onderhandelingen Vasthouden aan een plan Bron: www.agilemanifesto.org
Agile project management werkwijze: Iteratief werken Elke iteratie is een project op zich analyse, design, implementatie, documentatie, testing & oplevering Zelf organiserende teams Nadruk ligt op communicatie
Agile project management Gevolgen: Snellere feedback, regelmatig opgeleverde software (na elke iteratie of SCRUM) Sneller inspelen op veranderende eisen/omgeving Latere wijzigingen van de vereisten mogelijk De business bepaalt de prioriteiten/teams de werking
Karakteristieken: Voortgang in een serie van sprints van een maand (of anders afhankelijk van het project) Alle Requirements worden bijgehouden als lijst van items in de product backlog Geen voorgeschreven engineering regel Wel: Algemene regels om een agile omgeving te creëren SCRUM is één van de agile processen (naast extreme programming, Lean Driven development,...)
Waarom Agile/Scrum: De klant die van te voren precies weet wat hij hebben wil moet nog geboren worden Het ontwerp dat 100% alle problemen afdekt die je tijdens het implementeren tegen gaat komen moet nog gemaakt worden Gevolgen: De verkeerde software wordt gemaakt Onjuiste documentatie De klant is niet tevreden weinig wijzigingen mogelijk na 1 e ontwerpfase
Sprints Scrum projecten maken voortgang in een serie van sprints Typische lenge van de sprint is 2 4 weken of maximaal een kalendermaand Constante lengte levert beter ritme op Analyseren, ontwerpen, coderen en testen gedurende de sprint
Scrum: Alles tegelijktijd Code Definitie Test Ontwerp
15
Sequentieel versus overlappende ontwikkeling Definitie Design Code Test In plaats van alles van één ding ineens......doen Scrum team een constant beetje van alles Bron: The New New Product Development Game door Takeuchi en Nonaka. Harvard Business Review, january 1986.
GEEN veranderingen tijdens een Sprint Verandering Bepaal de sprint lengte aan de hand van hoelang je verandering buiten kan houden (in requirements, team, technologie, )
Scrum framework Rollen Product owner ScrumMaster Team Ceremoniëel Sprint planning Sprint review Sprint retrospective Daily scrum meeting Artifacten Product backlog Sprint backlog Burndown charts
Scrum framework Rollen Product owner ScrumMaster Team Ceremoniëel Sprint planning Sprint review Sprint retrospective Daily scrum meeting Artifacts Product backlog Sprint backlog Burndown charts
Product owner Bepaalt de functionaliteit van het product Bepaalt de einddatum en inhoud Is verantwoordelijk voor de winstgevendheid (ROI) Legt de functionele prioriteiten vast in volgorde van marktwaarde Functionaliteit en prioriteit kunnen elke per iteratie aangepast worden, naar behoefte Accepteert het uiteindelijke resultaat (of niet)
De ScrumMaster Vertegenwoordinging van het management naar het project (is niet noodzakelijk leider!) Verantwoordelijk voor de toepassing van Scrum waarden en normen => Zorgt voor optimale productiviteit van het team Zorgt voor samenwerking tussen de verschillende disciplines en rollen Oplossingen van hindernissen => Schermt het team af van verstoringen van buiten het team
Het team Gebruikelijk 5-9 mensen Multi-disciplinair: Programmeurs, analist, testers, interactie ontwerpers, etc. Leden zouden fulltime toegekend moeten zijn Enkele uitzonderingen (vb: database beheerder) Teams organiseren zichzelf In het ideale, maar zelden helemaal geen titels Leden wisselen alleen tussen sprints in
Scrum framework Rollen Product owner ScrumMaster Team Ceremoniëel Sprint planning Sprint review Sprint retrospective Daily scrum meeting Artifacts Product backlog Sprint backlog Burndown charts
Voor elke sprint Team capaciteit Product backlog Markt condities Huidig product Technologie Sprint planning meeting Sprint prioritisering Anylseer en evalueer product backlog Bepaal sprint doel(en) Sprint planning Bepaal hoe sprint doel te halen (design) Maak sprint backlog (taken) van de product backlog items (user stories / features) Schat sprint backlog in uren in Sprint doel Sprint backlog
Sprint planning Het team selecteert de items van de product backlog waar ze zich aan durven te committen De Sprint backlog wordt aangemaakt Taken worden bepaald en ingeschat (1-16 uren) Samenwerkend, niet exclusief door de ScrumMaster Hoog niveau ontwerp wordt meegenomen Als vakantie planner wil ik in staat zijn om foto's van de hotels te bekijken. Implementeren logica (8 uren) Implementatie gebruikers interface (4) Schrijf de test code (4) Code Foo class (6) Werk de performance tests bij (4)
De daily scrum Eigenschappen Dagelijks Maximaal 15-minuten Staand Niet bedoeld om problemen op te lossen Iedereen welkom Alleen de team leden, ScrumMaster en de product owner mogen praten Helpt andere meetings te voorkomen
Daily Scrum: Iedereen beantwoordt 3 vragen Wat heb je gisteren gedaan? 1 Wat ga je vandaag doen? 2 Is er een obstakel? 3
Na iedere sprint: De sprint review Team presenteert wat het bereikt heeft in de sprint Vaak een demonstratie van de nieuwe features of architectuur Informeel 2 uren voorbereidingstijd Geen slides Het hele team doet mee Iedereen is welkom
Sprint retrospective Aan het einde van elke sprint Wat ging goed, wat ging niet goed tijdens de sprint Het hele team doet mee: ScrumMaster Product owner Team Eventueel klanten en anderen
Sprint retrospective Het hele team besluit wat ze zouden willen : Gaan doen Stoppen te doen Voortzetten
Scrum framework Rollen Product owner ScrumMaster Team Ceremonieël Sprint planning Sprint review Sprint retrospective Daily scrum meeting Artifacten Product backlog Sprint backlog Burndown charts
Product backlog = Het eisenpakket Een lijst van al het gewenste Dit is de product backlog Ideaal: zo uitgedrukt dat elk item een waarde heeft voor de gebruikers van het product Geprioritiseerd door de product owner Herprioritisatie kan aan het begin van elke sprint
Voorbeeld product backlog Backlog item: User Story De gast kan reserveren 3 Als gast ben ik in staat een reservering te annuleren 5 Als gast wil ik de datum van een reservering kunnen veranderen 3 Als hotel medewerker kan ik RevPAR (revenue-per-available-room) rapportage 8 opvragen Verbeter exception handling 8... 30... 50 Inschatting [story points]
De sprint doel Een korte beschrijving van de focus van het werk gedurende de sprint Database Applicatie Behalve op Oracla kan de applicatie ook draaien op SQL Server. Life Sciences Realiseer de functionaliteit om genetische studies te voorzien van gegevens. Financiële diensten Lever meer technische indicatoren dan bedrijf ABC met realtime data
De sprint backlog Teamleden zoeken zelf hun werk uit Werk wordt nooit opgedragen De inschatting nog te doen wordt elke dag bijgewerkt Elk teamlid mag aan de sprintlog taken toevoegen, verwijderen of veranderen Taken in de sprint komen vanzelf te voorschijn
De sprint backlog Voor onduidelijk werk voeg een taak toe die later gedetailleerd wordt Werk de hoeveelhuid uren bij zodra meer duidelijkheid is verkregen!!! Taak is geen doel, op zich!!! maar een middel om een (van de) user story te bereiken
Sprint taken Taken Ma Di Wo Do Vr Impl. gebr.interface 8 4 8 Impl. logica 16 12 10 4 Test de logica 8 16 16 11 8 Schrijf online help 12 Maak the Foo class 8 8 8 8 8 Voeg logging toe 8 4
Sprint burndown diagram Schatting van het aantal story points voor de taken van de sprint
Tasks Impl. gebr.interface Impl. logica Test de logica Schrijf online help Mon 8 16 8 12 Tues Wed Thur Fri 4 8 12 10 7 16 16 11 8 50 40 30 20 Hours 10 0 Mon Tue Wed Thu Fri
Schaalbaarheid Een team bestaat standaard uit 7 ± 2 mensen Schaalbaarheid door teams van teams Factoren bij schaalbaarheid Type toepassing Team grootte Team colocatie Project lengte Scrum is meerdere keren toegepast op projecten met 500+ mensen
Schaalbaarheid door Scrum van scrums
Scrum van scrums van scrums
Extra info & bronnen (geen leerstof)
Meer info & bronnen http://abrachan.wordpress.com/scrum/ http://nl.wikipedia.org/wiki/agile-softwareontwikkeling www.mountaingoatsoftware.com/scrum www.scrumalliance.org www.controlchaos.com
Scrum origins Jeff Sutherland Initiële toepassing bij Easel Corp in 1993 IDX en 500+ mensen doen Scrum Ken Schwaber ADM Scrum gespresenteerd op OOPSLA 96 met Sutherland Auteur van drie Scrum boeken Samen met Mike Cohn: oprichter Scrum Alliance in 2002 Mike Beedle Patronen voor Scrum op PLOPD4
Scrum is toegepast door: Microsoft Yahoo Google Electronic Arts Lockheed Martin Philips Siemens Nokia IBM Capital One BBC Intuit Nielsen Media First American Real Estate BMC Software Ipswitch John Deere Lexis Nexis Sabre Salesforce.com Time Warner Turner Broadcasting Océ
Scrum is toegepast voor: Commercil software In-house ontwikkeling Contract ontwikkeling Fixed-price projecten Financiële applicaties ISO 9001-certified applicatie Embedded systemen 24x7 systemen met 99.999% uptime vereisten De Joint Strike Fighter Computer spelletjes FDA-goedgekeurd, levenskritische system Satteliet software Websites Handheld software Mobiele telefoon Network switching applicaties ISV applicaties Enkele van de grootste applicaties in gebruik
Scrum literatuurlijst Agile and Iterative Development: A Manager s Guide door Craig Larman Agile Estimating and Planning door Mike Cohn Agile Project Management with Scrum door Ken Schwaber Agile Retrospectives door Esther Derby en Diana Larsen Agile Software Development Ecosystems door Jim Highsmith Agile Software Development with Scrum door Ken Schwaber en Mike Beedle Scrum and The Enterprise door Ken Schwaber User Stories Applied for Agile Software Development door Mike Cohn Elke week nieuwe artikelen op www.scrumalliance.org
Einde 22-10-2015 - p.49