Agile Project Management volgens Scrum
David Griffioen 3 oktober 2006
Agenda: Agile project management volgens Scrum y y y y y y y
Planon Agile Scrum Kwaliteit en Testen Scrum voor grote projecten Waarom wel/geen Scrum toepassen? Vragen
Planon y Planon maakt productsoftware voor de facilitaire en vastgoed markt. y Grootste leverancier van FM/RE software in Europa. Vanaf 2006 ook in de US aanwezig. Marktleider in Nederland en België. y Meer dan 1000 klanten y Omzet 2005: Euro 17,2 miljoen y 220(+) medewerkers waarvan ca. 45 - 50 in SW Development
Het gaat goed met Planon
Repeat Winner Award Als enige onderneming vanaf 2000 in de Technology Fast-50 van Deloitte
Ervaring David Griffioen y Informatica UVA y Promotie aan de Radboud Universiteit bij Frits Vaandrager y Baan. Gewerkt aan een Extraction Transformation and Loading systeem specifiek voor de Baan database als teamlead y Inforay y Planon (juni 2001) y Product manager (Net en Talk) y Project manager en ScrumMaster y Nu manager van het web team
Scrum bij Planon y Toepassing gestart half 2005 y Cursus gevolgd bij Ken Schwaber: y 5 ScrumMasters y Architect, CTO, QA Manager y Drie groepen. Grootste groep heeft 4 Scrum teams y Teams multifunctioneel op 1 kamer y Het bevalt goed, het gaat steeds beter y Transparantie, discipline
Agile
Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. See: http://www.agilemanifesto.org/
Principles behind the Agile Manifesto y Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. y Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. y Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. y Business people and developers must work together daily throughout the project. y Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. y The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Principles behind the Agile Manifesto y Working software is the primary measure of progress. y Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. y Continuous attention to technical excellence and good design enhances agility. y Simplicity--the art of maximizing the amount of work not done--is essential. y The best architectures, requirements, and designs emerge from self-organizing teams. y At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Scrum
Scrum Overview y Empirical management & control process –inspect and adapt feedback loops; y Used to manage complex projects since 1990; y Delivers business functionality in 30 days; y Scalable to distributed, large, and long projects; y CMM Level/3 and ISO 9001 compliant; and, y Extremely simple but very hard.
© Ken Schwaber
Scrum Rollen (pagina 1 uit 1) y Product Owner y requirementslijst (scrum: productbacklog), ROI y The Team y ontwikkelen van functionaliteit y ScrumMaster y Scrum process
Scrum Artifacts y y y
Product Backlog Sprint Backlog Increment of Potentially Shippable Product Functionality
Scrum’s Practices y y y y y
The Sprint Planning Meeting (8 uur) The Sprint (30 dagen = 1 maand bij Planon) The Daily Scrum Meeting (15 min) The Sprint Review Meeting (4 uur) The Sprint Retrospective Meeting (3 uur)
Scrum Rollen
Scrum Rollen y y y
Product Owner The Team ScrumMaster
Product Owner y Geeft namens alle stakeholders aan wat men nodig heeft. y Kent de business y Is verantwoordelijk voor het behalen van ROI y Beheert de productbacklog y Is verantwoordelijk voor de planning y “The Product Owner’s focus is ROI. The Product Owner directs the project, Sprint by Sprint, to provide the greatest ROI and value to the organization.”
The Team y Realiseert software: y Ontwerpen y Bouwen y Testen y Documenteren y In het team zitten alle disciplines om software te bouwen. y Zelf organiserend. (Scrum laat vrij hoe je werkt) y Ideaal 7 man groot (5 tot 10) y Liefst dicht bij elkaar, bijvoorbeeld 1 kamer.
Scrum Master y Zorgt ervoor dat proces loopt zoals het hoort
y “The Scrum Master is responsible for the success of the project, and he or she helps increase the probability of success by helping the Product Owner select the most valuable product backlog and by helping the Team turn that backlog into functionality.”
Scrum Artifacts
Scrum Producten (Artifacts) y y y
Product Backlog Sprint Backlog Increment of Potentially Shippable Product Functionality
Product backlog y Lijst met dingen die gedaan moeten worden om product te krijgen. y Veel features y Maar ook y Non functionals y Bouwomgeving y Bugs
y y y y y
Teams kiezen werk vanaf bovenaan. Bovenaan kleiner, meer uitgewerkt, gecalculeerd Er is er 1 lijst per project Eigendom van PO. Team gebruikt 5% voor uitwerking. Team kan ook items op de Product backlog zetten. Technische zaken of ‘restwerk’ uit een sprint.
Voorbeeld FacilityTalk (inspanning mist) 1 - BO Contract Activities (CR 7526) 2 - constant memory consumption - inbound (CR 341) 3 - constant memory consumption - outbound (CR 1891) 4 - feedback to other system and improve logs (CR 336) 5 - Propertyset (beh) in XML or commandline (CR 539) 6 - Error handling. Leave files. (CR 1890) 7 - Text/Excel files as input (CR 1889) 8 - FT as service (CR 216) 9 - Documentation (CR 1892) 10 - Equipment reports integration manager (CR 8055) 11 - Business integration manager (CR 8701) 12 - Capgemini meetsysteem (CR 8704) 13 - Directory per stage (CR 7840) 14 - multiple select free field (CR 770) 15 - Fast Cleanup (CR 8297) 16 - SOAP for SAP XI Financials (CR 8702)
Sprint backlog y De taken voor het team voor de maand. y Per taak is1 persoon verantwoordelijk (mag geholpen worden) y Per taak maximaal 2 dagen inspanning y Gemaakt en bijgehouden door het team. y Bij houden ‘nog te werken’ uren. (geen uren boeken)
y Wordt gemaakt in sprint planningmeeting.
Scrum’s Practices
Scrum’s Practices y y y y y
The Sprint Planning Meeting (8 uur) The Sprint (30 dagen = 1 maand bij Planon) The Daily Scrum Meeting (15 min) The Sprint Review Meeting (4 uur) The Sprint Retrospective Meeting (3 uur)
Sprint Planning y Aan het begin van de sprint y Twee blokken van ieder 4 uur y In het eerste blok geeft de PO bij de product backlog items aan wat de het idee erachter is. y Doel is dat het hele team begrijpt wat gemaakt moet gaan worden. y Het tweede blok is voor het team. y Technisch ontwerpen maken, HOE gaan we het maken? y En hoe gaan we het plannen. WIE gaat het maken (ontwerpen, bouwen, testen en beschrijven?)
Daily scrum y Voor het Team. (Geen chickens geen ProductOwner) y Ieder teamlid geeft antwoord op drie vragen y Wat heb je gister gedaan y Wat ga je vandaag doen y Heb je ergens een probleem (een belemmering om je werk te doen) y Staande! y Maximaal 15 minuten. y Voorzitter: ScrumMaster.
Sprint Review meeting y Aan het einde van de Sprint y Team laat zien aan ProductOwner en andere stakeholders wat er die maand gemaakt is. y Alleen werkende, geteste, gedocumenteerde software mag getoond worden. y Hier is ook informeel contact met de opdrachtgevers.
Retrospectieve meeting y Voor Team en ScrumMaster. De PO is optioneel. y Doel van de meeting: De volgende sprint productiever en leuker maken. y Vraag voor iedereen: y Wat ging er goed y Wat kan verbeterd worden (! Niet wat was slecht) y Resultaat: Items op de product backlog.
Scrum plaatjes
Nog een plaatje van Scrum
Brainmap
Kwaliteit en Testen
Kwaliteit in een maand; de uitdaging y SCRUM regel: “Elke sprint werkende software opleveren die van voldoende kwaliteit is” y Uitdaging: alles wordt gedaan in 1 maand y Functioneel ontwerpen y Op hoofdlijnen moet ontwerp al duidelijk zijn, anders niet in Sprint
y Bouwen y Testen y Software is ‘af’ als het potentieel leverbaar is (‘potentially shippable’)
Agile Testen en Agile Testers y Bouwers en Ontwerpers vinden Scrum meestal vanaf dag 1 leuk. y Testers hebben wat meer moeite met de omschakeling: y Testers krijgen vaak de schuld van uitloop y Goed Ö goed gebouwd; fouten Ö slecht getest. y Testers worden vaak onvoldoende geïnformeerd. y In reactie hierop leggen testers eisen op aan de omgeving. y Agile testers gaan actief op zoek naar informatie: y Ontwerpen, overleg met functioneel ontwerper, ProductOwner en gezond verstand.
Kwaliteit in een maand y Risicomatrix (bewust kiezen) y Schade bij falen y Kans op falen y Ervaren tester heeft zelf functionele kennis van product y In de maand direct testen wat de bouwer af heeft. y Geen waterval testperiode aan het eind van het project waarin ‘we de bugs gaan fixen’ y Kwaliteit blijvend hoog
Kwaliteit tools y Vaak builden y Ieder half uur een build (cruisecontrol) y Iedere nacht een volledige build y DB converteren, code scramble, JUnit
y Veel automatisch testen y JUnit tests y Robot Tests (Regressie) y Bugs volgen in Planon y Strak monitoren indicators
Kwaliteit monitors
35 1 30 25
10
9
5
8 3 Launch Center P5
1
1 1
3 1
Workorders P5
1 2
13
8
TSI P5
1 3
RFR ERJ EIP EFO
1 Pop-Up Management P5
2 2 2
Space Management P5
6
7
2
Reservations P5
1
Helpdesk P5
9
1 3
Hades P5
Basis Interface P5
Autorisation P5
0
1 1 4
1 1
14
FieldDefiner P5
8
CadViewer P5
6
Budget P5
1
Basis Module P5
5
1 1
2
Configuration Management P5
10
32 1
Report generator P5
3
Persons P5
15
Inventory management P5
1 3
Install/Upgrade P5
20
60
50
40
30
Solve this sprint Solve this day
55 32
20
10
21
27
24
1
0
1
4
6
6
1
2
8
Iteratie 2005 Iteratie 2005 Iteratie 2005 Iteratie 2005 Iteratie 2005 Iteratie 2005 Iteratie 2006 Iteratie 2006 Iteratie 2006 Iteratie 2006 03 - March 04 - April 01 - January 02 12 10 - October 11 05 - June 06 - July 08 February December November September
Release
25
1
20
3 3
15
1 1
10
1 1 14
1 5
9
1
6
7
2
1 1
10
8
RFR ERJ EIP EFO
5
3 0 Autorisation P5
C adViewer P5
FieldDefiner P5
Hades P5
Install/Upgrade P5
Report generator P5 Space Management P5
35 30 25 20
27 29
15 10 5 6 2
0
Iteratie 2005 11 November
Sprint
1 Iteratie 2006 01 - January Iteratie 2006 02 - February
5 1 Iteratie 2006 03 - March
Iteratie 2006 04 - April
Solve this sprint Solve this day
Samenvatting Kwaliteit en Testen binnen Scrum y y y y
Testen integraal onderdeel van de Sprint Testers zitten in de Scrum Teams Ook kwaliteit is verantwoordelijkheid van het Team Sprint is alleen een succes als er ook getest is
y Veel geautomatiseerde regressietesten JUnit en Robot y Issues kunnen niet opgespaard worden tot testperiode y Zeer transparant voor Development en omgeving
Scrum in grote projecten
Scrum projecten groter dan 7 man y Voor grote projecten worden er meerdere teams gemaakt. y Naast de genoemde practices is er dan nog een scrum of scrums, hierin worden dingen besproken die over de teams gaan. y Regelmatig worden meerdere teams door 1 scrummaster ‘gedaan’, dit kan voldoende communicatie zijn.
Waarom Scrum?
Waarom geen Scrum y ?
y Let op: Niemand hoeft te weten dat scrum toegepast wordt!
Waarom Scrum y Scrum maakt het werk overzichtelijk; 1 maand met 7 man. y Je werkt ‘doet er toe’. Dit geeft energie! y Menselijk brein kan goed met abstracties omgaan maar dit kent beperkingen. Niets zo duidelijk als werkende software. y Korte feedback loops. y Minder voorraad. Flow of value. http://www.pmdoi.org/ y Flexibiliteit voor opdrachtgever y Projecten vaker succesvol (gebruik schaalvoordeel)
Einde
Computable van 14 april 2006 – pagina 1
Te veel ict-projecten mislukken Budget < 75.000 Î kans op succes 55 % 1,5 miljoen < budget < 3 miljoen Î kans op succes 25% Budget > 3 miljoen Î kans op succes is 0% Bij grotere budgetten worden de kansen op succes alleen maar kleiner. Een belangrijke reden is slecht project management.
En dan … dan valt het tegen …
En dan valt het tegen.. y In de sprint kan werk ‘zomaar’ veel meer blijken te zijn dan geschat aan het begin van de maand. y De maand duurt niet langer. y Het team wordt niet groter. y De kwaliteit wordt niet minder. y De flexibiliteit is in de functionaliteit. Het team levert minder features. y De afgevallen features gaan terug naar de product backlog.
Of het blijkt dat het helemaal niet kan! y y y
Stel je voor… Je start een project, het is uitdagend maar het kan. Dan na 6 sprints, wordt er een mega deal gesloten door de opdrachtgever. y Er komen wat ‘kleine’ aanpassingen. Het aantal transacties per seconde wordt 20 keer zo groot. y Het Team ziet dit als technisch onmogelijk (binnen tijd en geld) y De opdrachtgever is een business man. Jij een techneut.
Pigs and Chickens
It’s all about Pigs and Chickens Een grapje over een Bacon with Eggs restaurant. Een Pig is “someone who makes a personal commitment to the success of the project” Een chicken is ‘involved’. Chickens mogen wel kijken en luisteren. In een stand up (komt later) niets zeggen. In het project zijn chickens bijna ‘2de rangs’, het kunnen goed managers zijn.
Opbreken software
Opbreken software y y y
Breek project in functionaliteiten, niet in lagen. In administratieve applicatie: beheer van 1 ‘ding’. Web applicaties kan vaak per pagina y Overzicht y Beheren van 1 ‘ding’. y Grafieken module y Per type grafiek. (Snelheidsmeter, bar chart, multi serie bar chart) y Performance: Caching techniek.