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



Vergelijkbare documenten
IIBA NL Jaarcongres "Business Analyse in Scaled Agile"

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

Agile (Scrum) Werken Jeroen Hak

TFS als perfecte tool voor Scrum

Scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum scrumscrumscrumscrumscrumscrum agileagileagileagileagileagileagileagil

EEN INTRODUCTIE TOT SCRUM

Testen binnen agile methoden Anko Tijman

Auditen van Agile projecten

Agile Testen in de praktijk

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

Agile Project Management volgens Scrum. David Griffioen 21 mei 2007

SCRUM FRESHAPPLE.NL #DIGITALATHLETES

Scrum. Een introductie

Ervaringen met Agile Software Development volgens SCRUM

[ SCRUM. ] Een introductie

Nationale Controllersdag 2018

EXIN Agile Scrum Foundation

Leiderschap in een organisatie met technische professionals

Aliens?

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

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

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

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

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

EXIN Agile Scrum Foundation

LSSN seminar Amsterdam Edwin Kippers Master Black Belt. Project Management

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

Continuous Requirements Engineering

IIA Congres Assurance of Agility

Agile Foundation examen - OEFENVragenformulier

WHITE PAPER. Agile/Scrum

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

Agile ervaring Ir.ing. Erik van Daalen

WHITEPAPER IN 5 MINUTEN. 11. Scrum

your reference in testing services WorkShop Agile in de praktijk - Erik Boelen - 18 december 2008

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

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

Overdracht van project naar beheer. Beheer is ook Agile!

Continuous Requirements Engineering

Scrum bij Hosting. Philippus Baalman

EXIN Agile Scrum Foundation

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

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

Agile Testen van Business Intelligence. Assepoester 2.0

Scrum in het kort

Software-en Gameproject

fantestische middag 7 Agile en SCRUM

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

EXIN Agile Scrum Foundation. Preparation Guide

De mens als essentiële factor in software development. hoe agile teams omgaan met software process improvement

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

Agile with a smile. Dion Kotteman

Test rapportage Waarom eigenlijk?

Stel je voor. Agile pilot en retrospectives bij Ericsson. SPIder Conferentie 2 oktober 2007

Effectief testen in complexe omgeving

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

TestNet Voorjaarsevenement 2010 Jurian van de Laar 12 mei 2010

Rijnlands denken en Agile ICT. Patrick van Burgel 7 december

Agenda. Introductie Aan het werk Conclusie / restrospective

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

De Agile Analist. Henk Jan Huizer

Februari juni Toelichting aanpak. Claudia Tjia GROEP F M42

Inleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!

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

Agile, Scrum en Kanban in de praktijk

Satisfy the real (and changing) customer expectation

Plan van Aanpak. project Tetris Packing

De Kracht van Agile. Rini van Solingen.

Agile Scrum voor Non-IT

Toepassen van Scrum als process template

Plan van Aanpak. project Tetris Packing

Whitepaper. Kwaliteit binnen Agile

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

Ontwikkelmethoden en technieken. Ontwikkelmethoden & Technieken HC 4

B.Sc. Informatica Module 4: Data & Informatie

Testgedreven ontwikkeling dat is pas veilig!

Welkom. bij scrum. Zin in Onderwijs

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

Scrum. Veranderingen. Product development of product manufacturing?

Software- en Gameproject

Software- en Gameproject

Samen toegankelijke websites bouwen met Scrum. Irene Melisse

Ontwikkelmethoden en technieken. Ontwikkelmethoden & Technieken HC 2

Plan van aanpak. Website voor Bouwkundig Adviesbureau Punte. Hugo Nijhuis John Oelen Frank Hazekamp Cindy Roelofs Ben Wilbers Tim Regelink

Scrum: where Business drives IT

R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O H A N. N R O D M I D D E

Wat drijft het werkveld?

Plan van aanpak. Snelste-pad-algoritmen. Studenten. MDL-referentie. Clermond de Hullu Wiebren Wolthuis Simon Wels Maik Gosenshuis D01

Agile bij grote administratieve systemen. Omgaan met requirements

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

Michael Franken met medewerking van Rini van Solingen

Agile project management & Scrum

Tmap Dag Ik test, jij test, wij testen. Testen binnen een Wendbare Belastingdienst. 29 september Laurens Kremer

Gewone jongens die mooie dingen maken. Wat we doen en hoe we het doen

Najaarsspecial Oktober 2013

CABA of Welke requirementstraining voor Agile teams?

Agile. Scrum. Tom Luuring

Agile werken: zó doen we dat

Transcriptie:

gile Software Development Februari 2008, Philippe Dirkse Wie ben ik? 2002: fgestudeerd TU/e 1999-2005: Mondo izzarro, rystal Interactive, Siemens tea 2005 heden: PTS: Leica Microsystems SES/MiPlaza Inhoud Traditionele ontwikkeling/waterval gile Scrum XP (cases) Het waterval model Fouten die in een vroegtijdig stadium van het ontwikkelproces worden gevonden zijn vele malen goedkoper (qua tijd en inzet) op te lossen, dan wanneer ze later aan het licht komen 1

Het waterval model Het waterval model Eisen Ontwerp Implementatie Iedere fase dient 100% compleet te zijn Iedere fase dient 100% correct te zijn Iedere fase wordt geborgd in een document dat als uitgangspunt voor de volgende fase dient Validatie Onderhoud Feiten: Gevolgen: 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 De verkeerde software wordt gemaakt Onjuiste documentatie De klant is niet tevreden 2

Oorzaken: Features worden niet toegevoegd op basis van prioriteit Schatting is commitment Er wordt geen gebruik gemaakt van hetgeen we leren TIJDENS het project gile Gebruik hetgeen je leert tijdens het proces om het proces te verbeteren Geef de klant eerlijke informatie gedurende het proces Lever gedurende het proces continu werkende code op aan de klant Stel jezelf open voor de veranderende wensen van de klant gile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation ustomer 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. gile methoden extreme Programming Scrum rystal lear daptive Software Development Feature Driven Development gile RUP 3

gile methoden extreme Programming Scrum rystal lear daptive Software Development Feature Driven Development XP @ SRUM Scrum rollen Klant epaalt de prioriteiten epaalt de business value Spreekt met één stem Is beschikbaar Scrum master Team Zelf-organiserend Implementeert de business value, bepaalt de kosten Kan te allen tijde werkende software demonstreren Houdt het proces in de gaten (vorderingen, vertragingen, blokkades) Maakt het proces inzichtelijk (bijhouden scrum board, backlog) User Stories Schrijf IEDERE requirement op als een user story User Stories Schrijf IEDERE requirement op als een user story ls (belanghebbende) Wil ik (requirement) Zodat ik (rechtvaardiging) ls speler Wil ik een hiscores lijst Zodat ik kan zien welke de te verslane score is 4

User Stories Schrijf bij iedere user story een acceptance test User Stories Schrijf bij iedere user story een schatting ls speler Wil ik een ls het hiscores spel is lijst afgelopen verschijnt er Zodat een ik kan tabel zienmet welke daarin de te de verslane 10 beste scores score is plus de namen van de bijbehorende spelers Naam Score Jantje 221000 ls speler Wil ik een hiscores lijst Zodat ik kan zien welke de te verslane score is 24 Schatten Schatten is moeilijk, zeker in het begin, ga er dus van uit dat je er naast kan zitten Schat in story points: deze taak is 2x zoveel werk als die Indien nodig, pas de schattingen aan lleen het team doet de schatting, LT NOOIT DE KLNT MEEDOEN Planning poker Ieder teamlid krijgt een set kaarten met story points Per user story legt iedereen afgedekt zijn schatting neer Draai tegelijkertijd de kaarten om en bespreek de verschillen 5

Lijst met alle op dit moment bekende user stories Geprioritiseerd door de klant Variabel: stories kunnen worden toegevoegd en verwijderd Filter: minder belangrijke stories zinken naar de bodem Sprint Korte periode (1-3 weken) egint met een sprint planning meeting Eindigt met een demonstratie van de afgeronde user stories Sprint planning meeting Klant kiest de user stories uit die hij op dit moment het belangrijkste vindt Team geeft aan hoeveel van deze user stories ze in de komende sprint denken te kunnen realiseren Velocity De velocity van een sprint is de som van de story points van alle user stories die in die sprint zijn afgerond Gebruik de gemiddelde velocity van een aantal sprints als basis voor hoeveel user stories er in een iteratie passen Gebruik de velocity om de voortgang van de sprint te bepalen 6

urn down chart Daily standup meeting 15 10 5 Velocity van de vorige iteratie is 15 Velocity van deze iteratie is 14 1 2 3 4 5 6 7 8 9 10 Vaste tijd, vaste plek Maximaal 15 minuten, iedereen staat Iedereen is welkom, maar alleen team spreekt Ieder teamlid vertelt: Wat heb ik gisteren gedaan? Wat ga ik vandaag doen? Zijn er blokkades? Scrum Scrum board 24 h 1-3 wk backlog sprint backlog sprint software increment 7

Scrum board Scrum board D Scrum board Scrum board D D 8

Scrum board Scrum board D D Scrum board Scrum board D D 9

Scrum board Scrum board D D extreme Programming ls code reviewen goed is, doe het dan altijd ls testen goed is, doe het dan altijd ls ontwerpen goed is, doe het dan altijd ls integreren goed is, doe het dan altijd Pair Programming LLE productiecode (dus niet alleen de moeilijke dingen) wordt door 2 PROGRMMEURS SMEN gemaakt 10

Pair Programming ZZZ SMEN is niet Pair SyntaxProgramming Tests KISS/YGNI SMEN is lgoritme Ontwerp Pair Programming = Kennisdeling Kennisoverdracht (junior/senior) Minder fouten Hogere kwaliteit code Meer plezier! LLE productiecode die stuk kan gaan MOET getest worden 11

Unit testing ontinuous build Test een beetje, codeer een beetje (red->green->refactor) Houdt de tests kort maar bondig (5 minute build) Gebruik een framework: junit, nunit, cppunit, yaffut, Mini case: Stack class [Test] void NewStackHasSize0() Stack<int> stack = new Stack<int>(); ssertequal(0, stack.size); 12

Refactoring public class Stack<T> private int size = 0; public int Size getreturn size;; Intermezzo Verbeteren van de structuur van de code met behoud van functionaliteit en zonder fouten te introduceren Verbeteren van de leesbaarheid van code Verbeteren van de begrijpelijkheid van code Vereenvoudigen van het ontwerp public class Stack<T> private int size = 0; public int Size getreturn size;; [Test] void NewStackHasSize0() Stack<int> stack = new Stack<int>(); ssertequal(0, stack.size); [Test] [ExpectedException(typeof(Exception))] void annotpopfromemptystack() Stack<int> stack = new Stack<int>(); stack.pop(); 13

public class Stack<T> private int size = 0; public int Size getreturn size;; public void Pop() if( size == 0 ) throw new Exception( Empty ); public class Stack<T> private int size = 0; public int Size getreturn size;; public void Pop() if( size == 0 ) throw new Exception( Empty ); [Test] [ExpectedException(typeof(Exception))] void annotpopfromemptystack() Stack<int> stack = new Stack<int>(); stack.pop(); [Test] void PushOntoStackIncreasesSize() Stack<int> stack = new Stack<int>(); stack.push(3); sserttrue(1, stack.size); public class Stack<T> private int size = 0; public int Size getreturn size;; public void Pop() if( size == 0 ) throw new Exception( Empty ); public void Push(T value) ++size; 14

public class Stack<T> private List<T> list = new List<T>(); public int Size get return list.ount; public void Pop() if( Size == 0 ) throw new Exception( Empty ); public void Push(T value) list.dd(t); ode veranderen zonder angst eter ontworpen code egrijpelijkere code YGNI = ollective ode Ownership IEDEREEN kan TE LLEN TIJDE IEDERE regel code aanpassen Wachten hange Request Group Manager hange Owner hange Review Management approval Implementation 15

Wachten Of erger Het hange Request proces kan dagen in beslag nemen hange Requests kunnen verkeerd begrepen worden De verantwoordelijke kan niet (meer) beschikbaar zijn Iemand kan een hange Request voor JOUW code indienen! Own everything!!! Geen wachten of discussies (vooraf) Meer kennis van de code Veiligheid dankzij unit tests!!! ollective code ownership Spreek een coding standard af Ondersteunend versie beheer systeem Geen locks maar mergen (VS, SubVersion, ) 16

ontinuous Integration IEDEREEN dient MEERDERE malen per dag zijn code te INTEGREREN ontinuous Integration Rond een taak af Draai unit tests Integreer ontinuous Integration Hoe langer je wacht met integratie, hoe moeilijker het wordt, dus: odeer Merge / Test / Integreer ommit XP samengevat Iedereen is eigenaar van alle code Regelmatig wisselende pair programmers Eén pair werkt aan één taak Eerst de testen schrijven, dan pas de code Integreer de code Draai de unit tests (100%!!!) ommit 17