Kvalitetssikring og agile udvikling Gæsteforelæsning for dsoftark-e10 på Århus Universitet
Dagsorden Hvem er jeg og hvad er min baggrund i test og agile? Hvad kan I forvente? Agile og scrum Kvalitetssikring i praksis Hvad skal I huske efter i dag? 2
Hvem er jeg? Gitte Klitgaard Hansen D R Ø N Advisory IT Specialist gkh@dk.ibm.com Datalog (og erhvervsøkonom) Har været tester, kvalitetsansvarlig, tilbudsskriver, proceshaj, analytiker, scrummaster osv i IBM s division for sundheds-it. Agile coach hos Danske Bank Vild med: Film, min nevø, bøger, scrum, få flere unge indenfor IT, film, hygge, venner og film 3
Hvad er min baggrund i test og agile? Test Tester 2003-2009 ISEB Certified Test Foundation 2003 ISEB Certified Test Practitioner 2005 Delvis fagpakke under softwarekonstruktion xx Agile Projekter om XP på Aalborg universitet 2001-2002 Scrum 2006 Certified scrummaster 2007 Scrummaster 2007-2009 Certified Productowner 2009 Agile Coach 2010 4
Hvad kan I forvente? Kort intro til agile, scrum og til kvalitetssikring i praksis Krydret med min erfaring Ikke dybdegående oplæg om agile, scrum, kvalitetssikring og test Tre ting, som jeg gerne vil have, at I skal huske, når I går herfra 5
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. 2001 6 6 www.agilemanifesto.org
Agile Framework Agile is a conceptual framework for undertaking software engineering projects Extreme Programm ing (XP) Unified Process SCRUM Unified Process Crystal Adaptive Dynamic Systems Development Method (DSDM) Feature Driven Dev. Feature Driven Development Iterations at their heart Agile Techniques: The above methods involve a range of techniques including: Test-driven development Continuous integration Static Analysis Planning game Design improvement Coding standard Pair Programming Small releases Sustainable pace Refactoring 7 7 Simple design Whole team
Sprint/iterationer gør at vi kan tilpasse undervejs Zone of success Planlagt mål Planlagt sti Start Reel sti Efterhånden som vi får mere viden, bruger PO sprint til at guide projektet fremad mod det reele mål 8 Reelt mål
Scrum in one minute Three Roles Three Ceremonies Three Artifacts 1. Product owner 1. Sprint planning 1. Product backlog 2. Scrum master 2. Daily scrum meeting 2. Sprint backlog 3. Development team 3. Sprint demo 3. Burndown chart
Kendetegn ved scrum Styringsværktøj empirisk procesmodel Disciplin Systematik Samarbejde kollektiv hjernekapacitet ;-) Timeboxing Læring (inspect and adapt) Done done i hvert sprint 10
Hvorfor er det vigtigt at have fokus på kvalitet? Bliver ofte glemt som fokusområde Fleksibilitet kræver kvalitet Ting gøres færdig i inkrementer/iterationer Ting skal gøres helt færdig Kvalitet er vigtgi Det kan lade sig gøre 11
Hvorfor er det vigtigt at have fokus på kvalitet? Jo tidligere fejlen findes jo bedre 12
Hvad er vitalt for agile testing? Tidlig test Testbar kode Test first Gøre ting helt færdig Pragmatiske processer Multiple specialer Tidlig test 13
Hvad er de tre vigtigste ting, som I skal huske? Det er vigtigt at sikre kvaliteten fra starten Husk at stoppe op og reflektere Det kræver disciplin 14
Spørgsmål?? 15
Referencer www.controlchaos.com www.agilealliance.org www.scrum-master.com www.danube.com www.scrumalliance.org www.softhouse.se scrumwiki.org Kontakt gkh@dk.ibm.com for diverse PDF-filer, slides m.v. 16
Scrum basalt 17
PO 3 roller Product owner Scrummaster Team Product owner Repræsenterer kunden Ejer product backlog Estimerer ikke opgaver Prioriterer Beslutter teamets retning 3 værktøjer Product backlog Sprint backlog Sprint burndown 3 aktiviteter Sprint planning Daily scrum Sprint review Ikke hvordan de når frem til målet Ikke deres hastighed Definerer produktets scope / vision / roadmap 18 18
SM Scrummaster Hjælper, støtter og coacher fremfor at styre & kontrollere Fjerner teamets forhindringer 3 aktiviteter Sprint planning Daily scrum Sprint review Serviceorgan for teamet Typisk en del af teamet Impediment backlog Langsomme workstations Forstyrrelser fra sales For få Testmiljøer Manglende kundekontakt Kontoret er for lille 19 3 værktøjer Product backlog Sprint backlog Sprint burndown Sikrer, at reglerne i scrum følges 3 roller Product owner Scrummaster Team Er scrum master et fuldtidsjob? Lille team Stort team Få problemer 10% 50% Mange problemer 50% 100%
SM 3 roller Product owner Scrum master Team Team 3 værktøjer Product backlog Sprint backlog Sprint burndown 5 9 full-time personer 3 aktiviteter Sprint planning Daily scrum Sprint review Cross-functional Selvorganiserende Sidder fysisk sammen Deler ansvaret Estimerer Et Scrumteam er IT-branchens svar på en jamsession 20
3 roller Product owner Scrum master Team Product backlog Klar til at sprinte Kræver klargøring Acceptkriterier (hvornår er vi færdige?) Demo (hvordan viser vi, at vi er færdige?) Noter (er der nogle detaljer, som vi bør huske på?) Estimat (hvor lang tid tror teamet det vil tage? ) Ideer og visioner 21 3 værktøjer Product backlog Sprint backlog Sprint burndown 3 aktiviteter Sprint planning Daily scrum Sprint review
3 roller Product owner Scrum master Team Sprint backlog 3 værktøjer Product backlog Sprint backlog Sprint burndown 3 aktiviteter Sprint planning Daily scrum Sprint review 22
3 roller Product owner Scrum master Team Sprint burndown 3 værktøjer Product backlog Sprint backlog Sprint burndown Giver svar på det vigtigste spørgsmål: når vi i mål? 3 aktiviteter Sprint planning Daily scrum Sprint review Giver pejling i hverdagen Giver optimal synlighed også for stakeholders Alternativ til traditionel afrapportering Teamet drøfter udviklingen på daily scrum 23
3 roller Product owner Scrum master Team Sprint planning 3 værktøjer Product backlog Sprint backlog Sprint burndown 3 aktiviteter Sprint planning Daily scrum Sprint review Sprintbeskrivelse Product Backlog 24 Sprint 15 Backlog
3 roller Product owner Scrum master Team Daily scrum 3 værktøjer Product backlog Sprint backlog Sprint burndown 15 minutes - Hvad lavede jeg i går? - Hvad vil jeg lave i dag? - Er der noget, som forhindrer mig? 25 3 aktiviteter Sprint planning Daily scrum Sprint review
Retrospective Sprint review Løbende evaluering af projektet. Fokus på at forbedre og optimere processen Få eventuelle problemer out in the Sprint demo open Teamet demonstrerer working Feedback indarbejdes i product code for kunden/product owner backlog og stakeholders. Kun 100% afsluttede (done done) opgaver demonstreres. Delvist afsluttede opgaver demonstreres ikke! Direkte feedback fra stakeholders Feedback indarbejdes i product backlog 26 3 roller Product owner Scrum master Team 3 værktøjer Product backlog Sprint backlog Sprint burndown 3 aktiviteter Sprint planning Daily scrum Sprint review