Scrum: een introductie Jan Thielen 4 augustus 2011 Ruis in een project Vrijwel geen overeenstemming Eisenpakket Anarchie Technologie Zeer onzeker Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle. Simple rijwel zeker Duidelijke overenstemming Complex We verliezen de estafette De...‘estafette’ aanpak voor product ontwikkeling... kan conflicteren met de doelen van maximale snelheid en flexibiliteit. In plaats daarvan zou een holistische of ‘rugby’ aanpak waarbij een team in het geheel al bal spelend een afstand probeert af te leggen, beter bij de tegenwoordige competitie vereisten passen" Hirotaka Takeuchi and Ikujiro Nonaka, “The New New Product Development Game”, Harvard Business Review, januari 1986. Scrum = agile projectaanpak Agile (= behendig, lenig) Het vermogen om tegelijkertijd te creëren en te reageren op verandering en daarmee winst te behalen in het snel veranderende bedrijfsleven. De kern van agile is het gebruik van beperkte maar toereikende regels binnen het project en het gebruik van regels die gericht zijn op communicatie. In de praktijk werken de ontwikkelaars aan de hand van Scrum, een concrete toepassing van een agileprojectmethodologie. Het Agile Manifesto–een verklaring van waarden Personen en hun interacties gaan voor Processen and hulpmiddelen Werkende software gaat voor Uitgebreide documentatie Samenwerking met de klant gaat voor Contract onderhandelingen Reageren op veranderingen gaat voor Bron: www.agilemanifesto.org Vasthouden aan een plan Scrum in het kort • Scrum is een agile proces dat het mogelijk maakt om de hoogste waarde in de kortste tijd te realiseren. • Het maakt mogelijk om snel en regelmatig echt werkende software te zien (iedere sprint duurt twee tot vier weken). • De business bepaalt de prioriteiten. • Teams organiseren zichzelf om de beste manier te bepalen om de hoogste prioriteiten op te leveren. • Iedereen kan elke twee weken de echte software bekijken en besluiten het vrij te geven of door te gaan met uitbreidingen in een volgende sprint. Voordelen van scrum • Het risico voor de klant verlagen. • Tastbare resultaten opleveren voor de klant binnen de kortst mogelijke termijn (na 2 tot 4 weken). • Snel inspelen op de concrete wensen van de klant (i.p.v. vage analyses) en de veranderende omgeving waarin software en websites ontwikkeld worden • Regelmatige communicatiemomenten inlassen waarop de klant op een concrete manier op de hoogte gehouden wordt van de voortgang van een project en de klant kan beslissen of hij al dan niet doorgaat met het project. • Beheersen van complexiteit door iteratief in stappen te werken. • Mogelijkheid bieden aan de klant om een project te bevriezen, waarbij er toch een voldoeningscheppend resultaat is, en dit daarna stapsgewijs verder te ontwikkelen. Optimaal Scrum • Tevreden klanten, programma's die voldoen aan de verwachtingen van de klant; • Gemotiveerde projectteams die controle hebben over het project (maximale productiviteit, minimale stress); • Een project en een product dat zichtbaar evolueert en bugvrij is. Scrum origins • Jeff Sutherland • • • Ken Schwaber • • • Initiële toepassing bij Easel Corp in 1993 500+ mensen doen Scrum Scrum gepresenteerd op OOPSLA 96 met Jef Sutherland Auteur van drie Scrum boeken Ken Schwaber en Mike Cohn • Oprichters Scrum Alliance in 2002, initiëel binnen de Agile Alliance 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: • • • • • • • • • Commerciële software In-house ontwikkeling Contract ontwikkeling Fixed-price projecten Financiële applicaties ISO 9001-certified applicatie Embedded systemen 24x7 systemen met 99.999% uptime eisen De Joint Strike Fighter • Computer spelletjes • FDA-goedgekeurd, levens• • • • • • • kritische system Satteliet software Websites Handheld software Mobiele telefoon Network switching applicaties ISV applicaties Enkele van de grootste applicaties in gebruik Sequentieel ipv overlappende ontwikkeling Requirements Design Code Test In plaats van alles van één ding ineens... …doet een Scrum team steeds een beetje van alles Bron: “The New New Product Development Game” door Takeuchi en Nonaka. Harvard Business Review, january 1986. Alles tegelijktijd Afbeelding beschikbaar op www.mountaingoatsoftware.com/scrum Sprints • • • • Scrum projecten maken voortgang in een serie van “sprints” Typische lenge is 2–4 weken of maximaal een kalender maand Constante lengte levert beter ritme op Ontwerpen, coderen en testen gedurende de sprint Geen veranderingen in een Sprint Verandering • Bepaal de sprint lengte aan de hand van hoelang je verandering buiten kan houden 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 (Return On Investment) Prioriteiten functionaliteit in volgorde van klant(markt)waarde Functionaliteit en prioriteit kunnen elke sprint naar behoefte worden aangepast Accepteert het uiteindelijke resultaat (of niet) De ScrumMaster • • • • • • Geen projectmanager, maar procesbegeleider Linking-pin management en projectgroep Verantwoordelijk voor de toepassing van Scrum waarden en normen Organiseert oplossingen voor hindernissen Zorgt voor optimale productiviteit van het team en samenwerking tussen de verschillende disciplines en rollen Schermt het team af voor verstoringen van buiten het team Het team • • • • • Gebruikelijk 5-9 personen Multi-disciplinair: programmeurs, testers, interactie ontwerpers, etc. Leden zouden fulltime toegekend moeten zijn • Enkele uitzonderingen (bijv., database beheerder) Teams organiseren zichzelf, in het ideale helemaal geen titels Leden wisselen alleen tussentijds sprints 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 Team capaciteit Sprint planning meeting Sprint prioriteiten bepalen Product backlog Markt condities • • • • Technologie Sprint doel Sprint planning • Huidig product Analyseer en evalueer product backlog Bepaal sprint doel Bepaal hoe sprint doel te halen (design) Maak sprint backlog ( (user stories / features) Schat sprint backlog in uren of story points in Sprint backlog Sprint planning • • • Het team selecteert de items van de product backlog waar ze zich aan durven te commiteren De Sprint backlog wordt aangemaakt • • Taken worden bepaald en ingeschat (1-16 uren) Samenwerkend, niet exclusief door de ScrumMaster Vaststellen van de Definition of Done 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 onnodige andere meetings te voorkomen Iedereen beantwoordt 3 vragen Wat heb je gisteren gedaan? Wat ga je vandaag doen? Is er een obstakel? • 1 2 3 Geen status melding voor de ScrumMaster 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 • • • • Neem regelmatig de tijd om te kijken wat wel en niet werkt Zoektocht naar steeds beter…. Aan het einde van elke sprint Het hele team doet mee: • ScrumMaster • Product owner • Team • Eventueel klanten en anderen Start / Stop / Voortzetten • Het hele team besluit wat ze zouden willen : Gaan doen Stoppen te doen Dit is slechts een van vele manieren om een retrospective 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 werk • Idealiter zo uitgedrukt dat elk item een waarde heeft voor de gebruikers van het product • Geprioriteerd door de product owner • Herprioriteren aan het begin van elke sprint Voorbeeld product backlog Het sprint doel • Een korte beschrijving van de focus van het werk gedurende de sprint Life Sciences Database Applicatie Realiseer de functionaliteit om genetische studies te voorzien van gegevens. Behalve op Oracle kan de applicatie ook draaien op SQL Financiële diensten Server. 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 Voeg een taak toe die later gedetailleerd wordt voor onduidelijk werk Werk de hoeveelheid uren bij zodra meer duidelijkheid is verkregen Sprint backlog Hours Sprint burndown diagram Schaalbaarheid • • Een team is normaliter 7 ± 2 mensen • Schaalbaarheid door teams van teams Factoren bij schaalbaarheid • • • • Type toepassing Team grootte Team locatie Project lengte Scrum is meerdere keren toegepast op projecten met 500+ mensen Schaalbaarheid door Scrum van Scrums En waarheen nu... • • • • www.mountaingoatsoftware.com/scrum www.scrumalliance.org www.controlchaos.com [email protected] Contact Bron: Mountain Goat Software, LLC Auteur: Mike Cohn Jan Thielen Gecertificeerd Scrum master 06 – 28277893 [email protected] www.jtinbedrijf.nl [email protected] www.mountaingoatsoftware.com