Software- en Gameproject

Vergelijkbare documenten
Software- en Gameproject

Software- en Gameproject

Software- en Gameproject

Software- en Gameproject

Definitief 1.0 Handreiking voor toepassen van Agile Scrum binnen Overheidsdiensten april 2012

TFS als perfecte tool voor Scrum

Scrum bij Hosting. Philippus Baalman

IIBA NL Jaarcongres "Business Analyse in Scaled Agile"

Software- en Gameproject

Software- en Gameproject

AERIUS II. Mark Wilmot Product Owner AERIUS. Ministerie van EL&I Programma Directie Natura 2000 Programma Stikstof (PAS)

Leiderschap in een organisatie met technische professionals

Agile buiten de IT. Bent u al onbewust bekwaam met agile? Bert Leibbrand bert.leibbrand@itri.nl

STARTUP AGILE/SCRUM: SPRINT 0. StartUp Agile/scrum Sprint 0

WHITEPAPER IN 5 MINUTEN. 11. Scrum

Agile (Scrum) Werken Jeroen Hak

SCRUM FRESHAPPLE.NL #DIGITALATHLETES

Doel Vaststellen wat het doel is van aankomende sprint en een plan maken om dat doel te bereiken.

Scrum. Een introductie

WHITE PAPER. Agile/Scrum

EXIN Agile Scrum Foundation

Agile Scrum Foundation Training - Scrum Begrippenlijst. Agile. Burndown Chart. Burnup Chart. Continuous Delivery. Continuous Deployment

Agile Testen in de praktijk

Scrum: Een Agile aanpak voor ontwikkeling van producten. Scrumteam rollen. Verder dan de vraag 2

LSSN seminar Amsterdam Edwin Kippers Master Black Belt. Project Management

De Agile Analist. Henk Jan Huizer

Wie ben ik? Agile Software Development. Het waterval model. Inhoud

Toepassen van Scrum als process template

Welkom. bij scrum. Zin in Onderwijs

Februari juni Toelichting aanpak. Claudia Tjia GROEP F M42

Samen toegankelijke websites bouwen met Scrum. Irene Melisse

Een plan van aanpak voor Scrum bevat de volgende onderdelen met bijbehorende uitwerking.

Scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum agileagileagileagileagileagileagileagil

[ SCRUM. ] Een introductie

WORKSHOP 1W5. De Scrum-projectmethode voor betere groepsresultaten. Rienk van der Ploeg hogeschooldocent Informatica bij IICT-FNT

De ideale Product Owner

Een website ontwerpen met agile design en scrum, wat heb je nodig?

Agile with a smile. Dion Kotteman

13. De ideale product owner

Agile bij grote administratieve systemen. Omgaan met requirements

Auditen van Agile projecten

Kwaliteit en Testen binnen Agile Project Management volgens Scrum bij Planon. David Griffioen 11 april 2006

Speciaal voor u. Omdat wij ervan overtuigd zijn dat kennis pas echt waardevol is als je het deelt. De Product Backlog. Hoe ga je daar mee om?

Agile werken: zó doen we dat

Continuous Requirements Engineering

1. De watervalmethode Agile softwareontwikkeling Iteratief werken Agile technieken voor teams... 3

B.Sc. Informatica Module 4: Data & Informatie

Aliens?

Scoren met je project Projectmatig werken mag géén last zijn!

Verzamelde vragen en antwoorden Agile Applicatie ontwikkeling. Agile Methodiek en Technologie. Zest Application Professionals

Agile Scrum voor Non-IT

Continuous Requirements Engineering

Plan van Aanpak. project Tetris Packing

Aqua: agile verbeteren voor teams. TestNet Zomer Workshops 2017 Huib Schoots

Kwaliteit in Agile: een gegeven?

Agile Foundation examen - OEFENVragenformulier

Project methodiek. Auxilium BV Oude Delft CD Delft. T: F: E:

Business Sprint LOOT-scholen en Zo.Leer.Ik in kader van project Leerling Door Madelief Keyser en Michael van Wetering

Summary report. Time entries. Users Luc Schols 112:52:38. Other 545:11:53. Rasjaad Basarat 112:30:08. Jesse Baas 108:26:26

Agile/Scrum Foundation

Software- en Gameproject

SCRUM: REPETEREN, MAAR OOK LEREN?

EEN INTRODUCTIE TOT SCRUM

SCRUM METHODE.

Cecile Davis & Leo van der Aalst cecile.davis@sogeti.nl & leo.vander.aalst@sogeti.nl

Pair Testen. Het verbeteren van je test kennis met anderen. Peter

Wat drijft het werkveld?

Game en Software Project

EXIN Agile Scrum Master

Riskpoker - Confirmation - Planningpoker. Opfrissing TMap NEXT in scrum en toelichting op de opdracht Leo van der Aalst - Jos Punter - Hans Lantink

Inhoud. Deel I: De rollen Voorwoord...7. Over de auteur Dankwoord...19

Scaled agile in de praktijk: welke modellen zijn er en wat werkt het beste in jouw situatie?

Michael Franken met medewerking van Rini van Solingen

PRODUCT OWNER.

Inhoud. 1. Agile werken. 2. Het belang van Agile werken. 3. Basisprincipes van Agile werken. 4. De meest gebruikte Agile methode: Scrum

Eerste ontwerp Conferentie Software Development Programma 5 minuten Introductie. Netvlies Sedert 1997

Even voorstellen. Xenophanes. Literatuur. Inhoudsopgave SCRUM en bid management DEEL I BID MANAGEMENT. (Colophon, 560 circa 478 v. Chr.

Tester, hoe word jij geschikt voor de toekomst?

TestNet Voorjaarsevenement 2010 Jurian van de Laar 12 mei 2010

Introductie workshop Agile & Scrum

Best Practice Seminar 14 NOVEMBER 2013

Scrum in het kort

EXIN Agile Scrum Foundation

Agile Beheer: Mythe of werkelijkheid? Odile Moreau BlinkLane Consulting NIOC Arnhem, 5 april 2013

Agile : Business & IT act as one

Inhoud in vogelvlucht

Van Gantt chart naar Burn up chart: het doen van een eerste Agile project

Ik had overigens het schrijven van dit voorwoord ingeschat op 1 storypoint. Het zijn er uiteindelijk 3 geworden. En het aantal iteraties? Oneindig.

Scrum. F. Vonk versie

Agile Testing isn t Risking IT! Bram Bronneberg Test Manager Logica - CGI

Strategie=> Agile. PIM strategie sessie Utrecht, 24 september 2015

AGILE INSPIRATION BOOST. Agile. Sneller, slimmer, beter? Inspiratie voor Agile / Scrum teams

Paul Scrumepidemie bij

Agile Project Management volgens Scrum. David Griffioen 21 mei 2007

Ontwikkelmethoden en technieken. Ontwikkelmethoden & Technieken HC 2

Overdracht van project naar beheer. Beheer is ook Agile!

fantestische middag 7 Agile en SCRUM

Transcriptie:

Software- en Gameproject Inleidende colleges periode 3-4 2016/2017 College 1 - Scrum en Agile Johan van Rooij 1

Welkom Software- en gameproject. In een team van rond de 10 personen een product maken voor een echte klant. Dit is echt anders dan programmeeropdrachten binnen de bachelor. Projectmethodiek: Scrum Planning & prioriteren, rolverdeling, sprints Risico management. Planning, communicatie, architectuur. Communicatie met een echte klant. Hoe zorg je dat het eindproduct nuttig is? Werken in een groter team. Hoe zorg je dat iedereen nuttig bezig blijft, kennis goed verspreid zit, keuzes bewust gemaakt worden 2

Inleidende colleges 1. Inleiding scrum. Agile & Scrum Rolverdeling, Scrum Master, Product Owner, Backlog, Sprints, Stories, Retrospectives, 2. Risico s, planning en communicatie. 3. Plan for change. (Door Raja Lala) Ervaringen met Scrum. + Colleges van andere docenten. 3

Wie ben ik? Docent (alleen dinsdag) Software Project. Algorithms and Networks. Afstudeerders. Senior Consultant / Senior Data Scientist (rest van de week) CQM B.V. Eindhoven. Johan van Rooij 4

Waarom deze colleges? Herkenbaar? Uit: bonkersworld.net, building software 5

6 Waarom deze colleges?

Waarom deze colleges? Statistieken variëren van jaar tot jaar en tussen verschillende bronnen. Als een paal boven water: Veel grote softwareprojecten falen. Toch worden we hier langzaam wel beter in. En dat is nodig ook, want het kost vele miljarden. 7

Waarom deze colleges? Hier staat niet: slechte programmeurs. 8 Uit IT Cortex, The Bull survey (1998)

Waarom deze colleges? (Grote) software projecten zijn vooral moeilijk vanwege niet technische zaken. Deze zaken goed doen is waarschijnlijk belangrijker dan heel goed programmeren. `Wij informatici willen dit nog wel eens vergeten. Dat neemt niet weg dat een solide technische uitvoering natuurlijk ook van vitaal belang is. Als software engineer zou je je hier ook druk over moeten maken. Wil je alleen software schrijven, of wil je een succesvol product maken? 9

Dit college: Scrum en Agile Agile vs waterfall. Het scrum proces. Backlog, iteraties/sprints, standups, scrum board, sprint review. Rolverdeling binnen het team. Scrum master, product owner, team member. Bij UU softwareproject ook: voorzitter, ICT contactpersoon. Step-by-step plan to Agile success. Product vision. Het backlog vullen, prioriteren en splitsen van stories. Epics, planning poker, backlog grooming. Feedback van de klant. 10

Software- en gameproject WATERVAL EN AGILE 11

De waterval methode By Peter Kemp / Paul Smith - Adapted from Paul Smith's work at wikipedia, CC BY 3.0 12

De waterval methode Vanuit een engineering perspectief volstrekt logisch. Erg nuttig framework om vanuit de denken (komt terug in college 3). In principe is dit wat jullie geleerd hebben bij imperatief programmeren. Het is net een programmeeropdracht. Toch werkt dit niet. Als je je project strikt op deze manier insteekt / faseert garandeer ik dat het mis gaat. 13

14 Waarom werkt waterval niet?

15 Agile manifesto

Agile en scrum Wat is agile? Agile software ontwikkeling is een categorie van softwareontwikkelingsmethoden gebaseerd op de ideeën uit het agile manifesto. Scrum Xtreme programming Kanban Rational unified process / Agile unified process Lean software development Scrum-ban Agile with discipline 16

Wat is scrum? Een populaire vorm van agile software ontwikkeling. Ontwikkeld door Jeff Sutherland in 1993. Bij veel bedrijven nu de standaard. Gezien de aard van het software- en gameproject lijkt scrum ons voor jullie een goede aanpak. 17

Scrum in het kort - I Er zijn drie rollen in een scrum team: De product owner. De scrum master. Het development team. In het software project: Hebben we ook een voorzitter. Heeft je supervisor ook een rol (your boss in het bedrijfsleven). 18

Scrum in het kort - II Het team maakt met de product owner een wensenlijstje van features (stories): the product backlog. Het development team selecteert een klein aantal van deze stories uit het backlog en vult hiermee het sprint backlog. Deze stories worden in één iteratie van twee weken (een sprint) gerealiseerd. 19

Scrum in het kort - III Dagelijkse bijeenkomsten om de voortgang in de gaten te houden in informatie tussen developers uit te wisselen: daily standups. Aan het eind van de sprint zou de sprint backlog gerealiseerd moeten zijn. Er zou een demobaar product moeten liggen (potentially shippable product increment). Na iedere sprint een sprint review: hoe kan het beter? 20

21 Iteratief ontwikkelen

22 Waarom agile development?

Waarom agile development? Zelfs met agile methodieken gaat het vaak mis. Grote softwareprojecten tot een goed einde brengen is moeilijk (er komt veel bij kijken) 23

Hoe werkt dat dan in dit vak? 2 weken A B C D A. Sprint: 2 weken werken door team: Uitwerken stories Daily stand-ups Halverwege: Overleg studenten-mt met begeleider B. Demo aan opdrachtgever: Alle code is compileerbaar Evaluatie met opdrachtgever Opdrachtgever geeft nieuwe prioriteiten 24

Hoe werkt dat dan in dit vak? 2 weken A B C D C. Technische analyse door team Voorbereiden nieuwe planning (inschatten/prioriteren) Terugblik op meeting met opdrachtgever. Begeleider heeft (telefonisch) contact met opdrachtgever D. SCRUM planningsmeeting/voortgangsvergadering met begeleider: Kort na demo aan opdrachtgever Reflectie/review vorige Sprint, planning volgende sprint Andere agendapunten voortgangsvergadering Begeleider observeert Belangrijke beslissingen over het project worden altijd in deze vergadering genomen 25

Software- en gameproject ROLLEN BINNEN (ONZE VERSIE VAN) SCRUM 26

De product owner De product owner is één persoon die alle stakeholders vertegenwoordigd. Moet alle stakeholders begrijpen (markt, klant, verschillende afdelingen van gebruikers, development team, anderen.) De contactpersoon voor de klant! Taken: Verantwoordelijk voor de product vision. Prioriteert het product backlog. Mag beslissingen nemen over prioriteiten (voor of na het raadplegen van stakeholders zoals de klant of het team). 27

De scrum master De scrum master is verantwoordelijk voor het proces. Loopt alles soepeltjes? Hoe kan het proces beter, waar heeft het team last van? Wegnemen van afleiding van buiten. Taken: Voorzitten van sprint reviews en daily standups. Faciliteert het proces, zonder projectleider te zijn. Wij maken bij het softwareproject verschil tussen: De scrum master. De voorzitter. 28

Het development team Het development team zijn jullie allemaal. Dus ook de scum master, voorzitter en product owner! Geen specifieke rollen voor testen, ontwerpen, etc. Iedereen is gezamenlijk verantwoordelijk voor de code en het eindproduct. Het team organiseert zichzelf. Beslissingen worden in onderling overleg binnen het team gemaakt. Iedereen heeft evenveel zeggenschap. Interactie met de buitenwereld gaat via de scrum master of de product owner. Zelf verantwoordelijk dat je een nuttige bijdrage aan het geheel levert. 29

De scrum master en de voorzitter Om meer studenten een management rol te geven is er voor gekozen een extra rol te introduceren: de voorzitter. Scrum master (planning, voortgang, inhoud): Onderhoud het backlog. Heeft overzicht over de planning. Kijkt of het team voldoende voortgang boekt en wat beter kan. Voorzitter (vergaderingen, sociale kant, proces): Zit vergaderingen, daily standups en sprint reviews voor. Draagt zorg voor goede interne communicatie. Zorgt dat iedereen gehoord wordt en beslissingen op de juiste gronden genomen worden. 30

Welke taak hoort nu bij wie? Prioriteren volgens belangen klant Uitwerken stories Product owner contactpersoon Backlog Klantmeetings Sprint planning Voorzitten Stories genoeg uitgewerkt? Scrum master Voorzitter 31 Risico s planning Iedereen aan het werk Projectleiding Teamspirit Interne communicatie Facilitator

Software- en gameproject HET SCRUM PROCES 32

Standup meetings - I Iedere dag begint met een standup meeting. Ander tijdstip kan ook, maar kan verstorend zijn. Deze is op een vast tijdstip en vaste plek. Onafhankelijk van of iedereen aanwezig is of niet. Iedereen staat. Dan ben je actiever. De meeting duurt maximaal 20 minuten. De voorzitter zorgt hiervoor! Opties om dit soepel te laten verlopen: Alarm op je telefoon voor start van standup (als niet begin van de dag). 1,- boete voor laatkomers. 33

Standup meetings - II Iedereen in het development team zegt: Wat heb ik gisteren gedaan? Van welke problemen heb ik last? Waar ga ik vandaag aan werken? Doel van de standup: Iedereen op de hoogte houden van voortgang. Iedereen op de hoogte houden van wie waar mee bezig is. Problemen signaleren buiten standup uitdiepen. Zichtbaar of het ontwikkelproces lekker loopt. 34

Het scrum board - I 1. Bij aanvang sprint krijgt iedere developer een lijst stories toegewezen. 2. Iedere developer plant de implementatie van deze stories en splitst de story op in kleinere tasks. 3. Iedere task komt op een post-it. Visueel: voortgang taakverdeling 35

Het scrum board - II Tasks gaan over: Design Implementatie Testing Deployment Refactoring Alle tasks als post-its bij de betreffende story. Bepaal vooraf definition of done : Per task (vaak triviaal) Per story (belangrijk!) 36

Het scrum board - III Update het bord tijdens standup meetings. Einde sprint: Alles af (als het goed is). Bord leeg. Nieuwe stories voor onaf werk. 37

Einde van een sprint Een sprint eindigt altijd met een demo aan de stakeholders. Liefst product waar de klant verder mee kan spelen. Deze feedbackloop is één van de essenties van iteratief ontwikkelen, gebruik deze dus ook! Demo zou informatie over (volgende) prioriteiten moeten opleveren. Een sprint eindigt ook altijd met een sprint review. Plan de volgende sprint. Denk voor het plannen eerst na over mogelijk nieuwe stories (bijvoorbeeld refactoring daar waar het team dat nodig acht). 38

Valkuilen Voeg geen stories toe tijdens de sprint. Vraag je eerder af waarom je dat wilt, en wat er mis ging en dus de volgende sprint beter kan. Los geen problemen op tijdens de standup. Tijd op de standup is tijd van iedereen. Veel deadlines betekent veel tijdsdruk en verleiding om slechte code te schrijven. Technical debt los je op met refactoring tasks. Komt je te vaak in tijdsdruk, kijk dan eens naar het planproces. Het prioriteren van stories is moeilijk. Betrek je klant en stakeholders. 39

Software- en Gameproject Inleidende colleges periode 3-4 2016/2017 College 1 - Scrum en Agile Johan van Rooij 40

Dit college: Scrum en Agile Agile vs waterfall. Het scrum proces. Backlog, iteraties/sprints, standups, scrum board, sprint review. Rolverdeling binnen het team. Scrum master, product owner, team member. Bij UU softwareproject ook: voorzitter, ICT contactpersoon. Step-by-step plan to Agile success. Product vision. Het backlog vullen, prioriteren en splitsen van stories. Epics, planning poker, backlog grooming. Feedback van de klant. 41

Software- en gameproject STEP-BY-STEP PLAN TO AGILE SUCCESS 42

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met de klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. 43

Product Vision FOR (target customer/user) WHO (statement of need or opportunity) THE (product name) IS A (product category) THAT (key benefit) UNLIKE (competitor/current situation) OUR PRODUCT (primary differentiator) Uit: Geoffrey Moore s Crossing the Chasm. 44

Product Vision Voorbeeld: aleph library website FOR students at the Universiteit Utrecht WHO need to request books, extend loans, or query the collection THE aleph.uu.nl website IS AN online service THAT gives students access to the library's collection and their accounts THAT they can use from home UNLIKE the current situation where they need to go the library physically. 45

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met de klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. 46

Het product backlog vullen Sessie met het hele team. Geef iedereen een stapel post-its en een pen/stift. Schrijf mogelijke scenario s of user stories op de post-its. Verzamel de verschillende stories. Het initiële product backlog is geboren. Aandachtpunten: Gebruik de product vision als leidraad. Focus op het perspectief van de gebruiker. 47

De gebruiker, niet het systeem! Standaard format user story: Als een (rol van gebruiker) kan ik (iets doen) zodat Voorbeeld: Als student kan zien welke boeken ik in bruikleen heb zodat ik kan voorkomen dat ik boetes krijg i.v.m. te laat terug brengen. Voorkom om over het systeem te praten. Dus niet: Het systeem heeft een uitklapbare tab waarop alle boeken die de gebruiker geleend heeft zichtbaar zijn. Nut is uiteindelijk de ervaring van de gebruiker. 48

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met de klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. 49

Het initiële product backlog heeft te veel stories De stories moeten geprioriteerd worden. Welke stories zouden in de eerste sprint gerealiseerd kunnen worden? Van welke stories is het minder belangrijk als ze aan het eind van het traject niet gerealiseerd zijn? Onderhandelen en afstemmen. Prioriteiten moeten primair in het belang van de klant zijn. Bij de klant kunnen verschillende stakeholders verschillende belangen hebben. Het soepel verlopen van het ontwikkelproces is ook een belang! Hier ligt een taak voor de product owner en scrum master. 50

Grove prioritering: MoSCoW Must haves: Zonder deze feature heeft het product geen waarde. Should haves: Functionaliteit die je onder druk achterwege kan laten. Could haves: Gewenste functionaliteit die je wil als het product stabiel werkt. Won t haves: Features waarvan je vooraf al weet dat je hier niet aan toe gaat komen. 51

Prioriteiten stellen met de klant Sessie met de klant: Categoriseer stories als M, S, C, of W. Loop hierna nogmaals door de vier categorieën en beslis of de story hier wel of niet thuis hoort. Tijdens de sessie kan de klant ook met nieuwe stories komen. There must be a serious game, playable online. It should be customizable or scriptable. It could run on mobile devices. It won't adapt to a player's expertise. 52

Prioriteiten in het product backlog Er zijn bedrijven waar het product backlog lineair geordend is een volledige rangschikking van alle stories. Persoonlijk vind ik dit onrealistisch en moeilijk te onderhouden. Een ruwe classificatie (M,S,C,W) is goed genoeg. Reden is vaak dat developers altijd issues bovenaf moeten pakken, en dus ontwikkelsnelheid per developer meetbaar is. Er zijn klanten die van alle stories must have s maken. Zij zijn vaak gewend aan waterval / projectmanagement methoden en willen geen vrijbrief geven om nu al zaken te laten vallen. Dit kan echt heel moeilijk zijn (maar gebeurt helaas vaak, zeker in combinatie met contract onderhandelingen). Oplossing ligt vaak in vragen wat de klant graag in het eerste prototype ziet (andere namen aan M,S,C,W geven). 53

De issue tracker Wij raden sterk aan de GitLab issue tracker te gebruiken. http://git.science.uu.nl Regel: Geef je UU begeleider toegang tot de issue tracker. Geef je klant geen toegang tot de issue tracker. Nu je stories, geprioriteerd volgens de MoSCoW methode hebt kun je de issue tracker gaan vullen. Issue trackers hebben ongelooflijk veel voordelen boven excel documenten. Issues zijn nu primair stories, straks stories, epics, bugs, other tasks, etc. Nu is het copy-paste, straks ga je de issue tracker steeds updaten. 54

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met de klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. 55

Voordat de eerste sprint kan starten We hebben nu een backlog gevuld met stories in GitLab. Stories, geprioriteerd volgens de MoSCoW methode. Wat zullen we nu eerst doen? Pfff, zo veel must have stories, waar te beginnen? Dat past nooit in één sprint! Oplossingsrichtingen: Begin met een skelet van het systeem (frontend, backend, database, ) dat verder weinig kan maar wel makkelijk uit te bereiden is via user stories. Sommige stories zijn eigenlijk epics. 56

Epics Stories die te groot zijn voor één sprint noemen we epics. Meestal is het binnen een epic goed mogelijk een eerste stap/storie te definiëren. Of de epic op te breken in verschillende losse stories of kleinere epics. Kijk uit dat je iets niet zomaar een epic noemt. Stories in de product backlog kunnen ook andere problemen hebben (waardoor ze een epic lijken) Niet precies genoeg gedefinieerd. Nog niet mogelijk om deze te implementeren. 57

Het ideale product backlog Het `ideale product backlog ziet er zo uit: Vooraan: geprioriteerde stories verdeelt over sprints. Achteraan: epics en lage prioriteit stories. Epics met hoge prioriteit moeten opgedeeld worden in kleinere brokken. 58

Het opsplitsen van epics Split: splits de epic in stories of kleinere epics. Stub: maak een stub implementatie zodat een storie de ontwikkeling van andere stories niet in de weg zit. Voorbeeld: database class die hetzelfde antwoord geeft op iedere query. Spike: een experiment om meer te leren over hoe een grote story of epic in te schatten, te plannen of splitsen. Voorbeeld: een toy database die op de productie server draait. Time-box: houd de story zoals die is, maar spreek een maximale tijdsduur om eraan te besteden af. 59

Slechte stories of goede stories Hoe merk je snel dat er iets mis is met een story? Goede high-prio stories voldoen aan INVEST. Independent. Negotiable. Valuable. Estimable. Small. Testable. 60

Goede stories - I Independent. Geen afhankelijkheden van andere stories. Kan direct aan begonnen worden. Negotiable. Stories zijn geen requirements documenten. Je moet er met het team over eens worden wat er wel en niet onder valt. Typisch doe je dit tijdens planning poker. Valuable. Stories die de klant geen aanwijsbaar voordeel opleveren zijn niet nuttig. Hoe laat je aan de klant zien dat de storie opgeleverd is? 61

Goede stories - II Estimable. Van een storie moet je kunnen inschatten hoeveel werk dit is. Lukt dit niet? Mis je technische kennis om het in te schatten? Is de story te groot? Of niet goed genoeg gedefinieerd? Small. Iedere sprint zou uit veel kleine stories moeten bestaan. Dit maakt de inschattingen realistischer en verkleind het risico de sprint niet af te kunnen maken. Testable. Als de story geïmplementeerd is zou het testbaar moeten zijn. Dit zorgt ervoor dat gevalideerd wordt dat het werkt en dat toekomstige stories er geen last van onverwachte problemen dankzij deze story krijgen. 62

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met de klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. 63

Start de eerste sprint We hebben nu een backlog gevuld met stories in GitLab. Stories, klein genoeg en geprioriteerd om te starten. Welke stories zijn verstandig om mee te beginnen? Planning! volgende week. Hoeveel stories passen er in een sprint? Planning poker! Kaarten te verkrijgen bij het projectbureau. 64

Planning poker Ieder teamlid heeft een set kaarten als hiernaast. 1. Per story kiest ieder teamlid een kaart met het aantal story points (hoeveelheid werk) dat hij/zij denkt dat het realiseren van de story kost. 2. Als je begint denk dan aan 8 uur werk per story point. 3. Als er geen consensus is leggen de teamleden met de laagste en de hoogste score uit waarom zijn denken dat het zoveel werk is. 4. Laat iedereen een nieuwe inschatting maken tot het team het eens is. 65

Doel van planning poker Planning poker leidt tot: Inschattingen per story. Overeenstemming over hoe groot stories zijn (en wat een story inhoud). Goede stories zijn doorgaans minder dan 10 punten. Inzicht in hoeveel werk er in iedere sprint verzet wordt: development velocity. Gaat het sneller? Langzamer? Hoe komt dat? Hoeveel teamleden heb je, en hoeveel tijd is er beschikbaar? Nu kun je de eerste sprint plannen. Start de eerste sprint! 66

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met de klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. 67

Review product met klant Na iedere sprint: demo met de klant. Klanten hebben meer te doen dan alleen met jullie softwareproject bezig zijn. Ik bedoel niet dat ze niet geïnteresseerd zijn. Ik bedoel wel dat ze doorgaans meer verantwoordelijkheden hebben. Gebruik daarom de tijd met de klant verstandig. Klant feedback is essentieel voor een succesvol product. 68

Hoe zoveel mogelijk feedback te verzamelen Demo: Voordoen hoe het moet? Of: klant achter de computer? Demo: Alleen tijdens de klantsessie? Testproduct dat na de sessie meegenomen kan worden? Denk hier over na Bereid de sessie voor. Vraag je af welke informatie heb ik van de klant nodig voor de volgende (twee) sprints? 69

Doel van de demo met de klant Waarom demo je het product? Zichtbaarheid. Feedback. Verwacht dus dat hier nieuwe dingen uit komen. Niet alleen bugs, maar echt nieuwe informatie. De klant had wellicht iets anders verwacht dan hij ziet. De klant realiseert zich waarschijnlijk nu pas wat hij gevraagd heeft. Bespreek na de demo daarom ook altijd de prioriteiten (op hoofdlijnen) voor de volgende sprint. Nieuw informatie, nieuwe inzichten, dus gewijzigde prioriteiten. 70

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met de klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. 71

Sprint review / retrospective Eind van de sprint meeting met alle developers. Een terugblik: Wat ging goed? Wat kan er beter. Taak: hoe kunnen we wat er op de sprint review gezegd is gebruiken om volgende sprints beter te doen. Scrum master en voorzitter hebben hier extra verantwoordelijkheid. Maar: het hele team gaat hierover. 72

Retrospective Een effectieve methode voor een retrospective op de laaste sprint is de volgende: Laat ieder teamlid op post-its keyword schrijven die betrekking hebben op de volgende twee vragen: 1. Wat ging deze sprint goed? 2. Wat kan er beter? (Dit kan ook goed gegaan zijn) Één voor een hang iemand een post-it op een bord en legt uit wat hij/zij vindt. Alle andere briefjes die hetzelfde beschrijven worden erbij geplakt. Nadat alle briefjes op het bord hangen kiezen alle teamleden max drie onderwerpen uit de categorie wat kan er beter? De onderwerpen met die het vaakst gekozen worden, daarbij wordt gekeken wat hieraan te doen is. 73

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met de klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. 74

Het backlog bijhouden Het `ideale product backlog ziet er zo uit: Vooraan: geprioriteerde stories verdeelt over sprints. Achteraan: epics en lage prioriteit stories. Als je eenmaal bezig bent is backlog grooming er o.a. voor om deze stories en/of epics verder uit te diepen. Het is heel makkelijk een backlog uit de hand te laten lopen. Niet alleen door het oplossen van issues, ook door het steeds ontstaan van nieuwe issues. Doe dit dus ook regelmatig. 75

Backlog Grooming!! Backlog Grooming. Epics opsplitsen en stories waar iets mee aan de hand is opschuiven of beter specificeren. Een taak voor de scum master en de product owner. Uiteindelijk iedereens verantwoordelijkheid. Product owner: Prioriteiten up-to-date houden. Zijn de stories zo geformuleerd dat de klant er daadwerkelijk wat aan heeft? Scrum master: Zijn er genoeg stories om aan te werken voor de volgende sprint? Zijn issues (bugs) niet al opgelost als bijeffect van andere issues of stories. 76

Step-by-step plan to Agile success Eerste stappen met scrum: 1. Stel een product vision op. 2. Het product backlog vullen. 3. Grove prioritering (MoSCoW). 4. Opsplitsen van belangrijkste stories. 5. Start de eerste sprint. 6. Review product met klant. 7. Review proces met het development team. 8. Onderhouden van het backlog. Volgens mij kunnen jullie aan de slag 77

Software- en gameproject TOT SLOT 78

Teaching software development methods Scrum lijkt makkelijk. Het is een goed omschreven methodologie. Het toepassen van de agile filosofie is echt moeilijk! In mijn ervaring: Hele slimme mensen worstelen ook met keuzes in het softwareontwikkelproces (agile of niet-agile). De term agile wordt nogal eens misbruikt om slecht coderen en/of plannen goed te praten. 79

Meer weten over scrum? Veel materiaal beschikbaar on-line: The scrum primer. The official scrum guide. Free scrum training video s (www.scrummethodology.com) The scrum reference card. Of 80