14-9-2015
Les 3
Scrum in het kort
• Scrum is een agile proces dat het ons mogelijk maakt om de hoogste waarde in de kortste tijd te realiseren.
• Het maakt het ons mogelijk om snel en regelmatig
echt werkende software te zien (elke twee weken tot elke maand). • 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.
1
14-9-2015
Scrum origins •
• • •
Jeff Sutherland
• •
Initiële toepassing bij Easel Corp in 1993 IDX en 500+ mensen doen Scrum
• •
ADM Scrum gespresenteerd op OOPSLA 96 met Sutherland Auteur van drie Scrum boeken
Ken Schwaber
•
Mike Beedle
•
Patronen voor Scrum op PLOPD4
•
Oprichters Scrum Alliance in 2002, initiëel binnen de Agile Alliance
Ken Schwaber en Mike Cohn
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é
Karakteristieken: • • •
•
Zelf organiserende teams Voortgang in een serie van “sprints” van een maand Requirements worden bijgehouden als lijst van items in de “product backlog” Geen voorgeschreven engineering regel
2
14-9-2015
Alles tegelijkertijd
Sprints •
Scrum projecten maken voortgang in een serie van “sprints”
•
Typische lengte is 2–4 weken of maximaal een kalendermaand
• •
Constante lengte levert beter ritme op Ontwerpen, coderen en testen gedurende de sprint
Sequentiële vs. overlappende ontwikkeling Requirements
Design
Code
Test
In plaats van alles van één ding ineens... ...doen Scrum teams telkens een beetje van alles
3
14-9-2015
Product owner • • • •
Bepaalt de functionaliteit van het product
•
Functionaliteit en prioriteit kunnen elke iteratie aangepast worden, naar behoefte
•
Accepteert het uiteindelijke resultaat (of niet)
Bepaalt de einddatum en inhoud Is verantwoordelijk voor de winstgevendheid (ROI) Prioritering functionaliteit in volgorde van toegevoegde waarde
De ScrumMaster •
Vertegenwoordiging van het management naar het project Verantwoordelijk voor de toepassing van Scrum waarden en normen Oplossen van problemen / hindernissen Zorg voor optimale productiviteit van het team Zorg voor samenwerking tussen de verschillende disciplines en rollen Schermt het team af van verstoringen van buiten het team
• • • •
•
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
• • •
4
14-9-2015
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 Normaal tussen de 15 tot 30 minuten Aan het einde van elke sprint Het hele team doet mee: • ScrumMaster • Product owner • Team • Eventueel klanten en anderen
Product backlog • Het eisenpakket • Een lijst van wensen • Idealiter zo gespecificeerd dat • •
elk item een waarde heeft voor de gebruikers van het product Geprioriteerd door de product owner Herprioritering aan het begin van elke sprint
Dit is de product backlog
5
14-9-2015
Voorbeeld product backlog Backlog item
Prioriteit
De gast kan reserveren Als gast ben ik in staat een reservering te annuleren
1 1
Als gast wil ik de datum van een reservering kunnen veranderen
2
Als hotel medewerker kan ik RevPAR (revenueper-available-room) rapportage opvragen
3
Verbeter exception handling ... ...
3
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 Server.
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 Voor onduidelijk werk voeg een taak toe die later gedetailleerd wordt Werk de hoeveelheid uren bij zodra meer duidelijkheid is verkregen
•
6
14-9-2015
Hours
Sprint burndown diagram
Schaalbaarheid • •
Een team is normaliter 7 ± 2 mensen
•
Schaalbaarheid door teams van teams
• • • •
Type toepassing Team grootte Team colocatie
Factoren bij schaalbaarheid
Project lengte
Bekijk eerst het filmpje over het nieuwe intranet van de rijksoverheid (Rijksportaal). Opdracht Stel: jij bent de verantwoordelijke projectmanager voor de ontwikkeling van het nieuwe intranet en hebt als ontwikkelingsmethode Scrum gekozen. Bereid een elevator-pitch voor waarin je aan de directeur van een departement het volgende uitlegt: De voordelen van Scrum bij de ontwikkeling van het nieuwe Rijksportaal. De risico’s bij het gebruik van Scrum in dit project. Manieren om deze risico’s te beperken.
7
14-9-2015
8
14-9-2015
9
14-9-2015
10
14-9-2015
Case uitleenadministratie Een openbare bibliotheek leent boeken uit. Om te kunnen lenen moet je lid van de bibliotheek zijn en moet je de jaarlijkse bijdrage hebben voldaan. Lenen doe je met een persoonlijk bibliotheekpasje; dit pasje krijg je als je lid wordt. Als een boek aan iemand anders is uitgeleend kun je dit boek reserveren. De standaard uitleentermijn bedraagt 3 weken. Je kunt deze uitleentermijn met maximaal twee maal 3 weken verlengen. Indien boeken zijn gereserveerd kan een uitlening niet worden verlengd. Van sommige boeken heeft de bibliotheek meerdere uit te lenen exemplaren in haar bezit. Opdracht Maak van deze case een klassendiagram. Beschrijf eerst de objecten en de relaties tussen de objecten. Beschrijf daarna per object de relevante attributen en operaties. Neem de uitwerking over op een flip-overvel.
11