Agile i praktiken 2013-10-07 Magnus Grimsell
Vad är Agile, Scrum och Lean? Hur kan jag ha nytta av Agile som beställare?
Vad är Agile? Vad är Agile?
Agile Manifesto 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.
Lean Lean
Lean Software Development Toyota Production System 1930 Lean Production - The Machine That Changed the World 1990 Lean Software Development Toyota Product Development System 7 principles
Lean Software Development Eliminate waste Identifiera vilka aktiviteter som inte skapar affärsvärde Amplify learning Kunskap inom teamet Kunskap om kundens behov Decide as late as possible Vi lär oss hela tiden Belsut ska baseras på så mycket kunskap som möjligt Deliver as fast as possible ROI För att få mer kunskap
Lean Software Development Empower the team “Find good people and let them do their own job” Undvik micro management Build Quality in Åtgärda orsaken inte symptomen Buggar är waste See the whole Optimera helheten
Scrum Scrum
Scrum 1995, Ken Schwaber, Jeff Sutherland, OOPSLA ’95 2001 ”Agile Software Development with Scrum” “An iterative software development framework for managing software projects and product development”
Daily Scrum Retrospective Product Owner Sprint Backlog Release Dev Team Scrum Master Product Backlog Demo Stakeholders Default Definition of Done
Roller Produktägare Scrum Master Utvecklingsteam Stakeholders Produktvision Skapar produktbackloggen Scrum Master Undanröjer hinder Skyddar teamet från störningar Ser till att processen följs Utvecklingsteam 3-9 Självorganiserande Cross functional – undvika köer Stakeholders Kunder, säljare, marknadsförare osv
Daily Scrum Retrospective Product Owner Sprint Backlog Release Dev Team Scrum Master Product Backlog Demo Stakeholders Default Definition of Done
Product backlog Produktvision Prioriterad lista av User stories User Story As a <role>, I want <goal/desire> so that <benefit> Användarcentrerad Fokus på affärsvärde Som en handläggare vill jag själv kunna välja kolumner i att-göra-listan så att jag bättre kan planera mitt arbete
Tidsuppskattning Varför? Story Points För att kunna prioritera och planera Story Points Tidsuppskattning är svårt. Jättesvårt. Traditionellt Utvecklare uppskattar i timmar För vem? Medelresursen? Den bäst lämpade? Utan störande moment? Vad ingår? Test? Merge? Release? Dokumentation? x=y*1,8+8+2 Förenkla genom att bara uppskatta storlek Jämför med tidigare user stories i en så kallad Golden List Mät hastighet för att avgöra vad som är klart när
Default Definition of Done Daily Scrum Retrospective Product Owner Sprint Backlog Release Dev Team Scrum Master Product Backlog Demo Sprint Planning Meeting Ta en bit av produkt backloggen Commita till att göra den kommande sprint Normalt sett tidsuppskattning i timmar Sprint startar Sprint backloggen är teamets gemensamma mål Stories tas från toppen Default definition of done En story är klar när man utfört DDD DDD bör innefatta så mycket som möjligt för att minimera risk Om DDD frångås så beslutas det per story vid sprintplaneringsmötet Daily Scrum Kort dagligt möte Stående för att hållas kort Vad gjorde jag igår? Vad ska jag göra idag? Är det något som hindrar mig? Hur många dagar är det kvar? Sprintavslut Demo Feedback till stakeholders Retrospektiv Vad har fungerat bra? Var kan vi bli bättre? Vad ska vi ändra i nästa sprint? Stakeholders Default Definition of Done
Sprintstart Sprint Planning Meeting Planering i detalj Commitment! Vad ska vi göra kommande sprint? Planering i detalj User Stories bryts ner till Tasks Tidsuppskattning i timmar Finns det några hinder? Commitment!
Sprinten Sprint backlog Teamets gemensamma mål Fokuserat arbete mot ett gemensamt mål under en kort begränsad tid Stories tas från toppen av backloggen och färdigställs innan man tar nästa Färdig?
Default Definition of Done En story anses vara klar enligt DDD DDD bör innefatta så mycket som möjligt för att minimera risk Commitad Ingen ökad teknisk skuld Gått igenom automatiska tester Testad av annan i teamet Uppgraderingsskript Dokumenterad Demad för PO
Daily Scrum Vad gjorde jag igår? Vad ska jag göra idag? Vilka problem ser jag? (Hur mycket är det kvar?) Kommunicera teamets status och progress Bidrar till fokus Löser problem
Sprint burndown chart Uppdateras dagligen Synlig för alla, även stakeholders Release burndown chart
Task Board Tydligt vad som pågår Synlig för alla, även stakeholders Fokus på det som är viktigt
Sprintavslut Demo Retrospektiv Release Direkt feedback från stakeholders Retrospektiv Strukturerat förbättringsarbete Vad har fungerat bra? Vad har fungerat sämre? Vilka förändringar gör vi till nästa sprint? Release Något typ av resultat Helst så färdigt att vi får avkastning på vår investering
Daily Scrum Retrospective Product Owner Sprint Backlog Release Dev Team Scrum Master Product Backlog Demo Stakeholders Default Definition of Done
Det handlar inte om Scrum Masters, Story Points och Sprintar
Fokus Kvalité Effektivitet Transparens Förbättringsfokus Sprint commitment Amplify learning Fokus Sprint Backlog Kvalité Självorganiserande team Eliminate waste Effektivitet Decide as late as possible Stakeholder Demo Task Board Cross Functional Default Definition of Done Daily Scrum Burn Down Chart Build quality in Transparens Empower the team Deliver as fast as possible Förbättringsfokus Time-to-market Retrospektiv See the whole Iterativt
Hur kan jag ha nytta av Agile som beställare?
Skapa en produktbacklogg Lär och justera Var delaktig i hela processen Inför en produktägare Budgetansvar och domänkunskap i en och samma person En person som slutgiltigt prioriterar Skapa en produktbacklogg Prioriterad för att maximera ROI Uttryck User Stories för fokus på användaren Lär och justera Titta på demos kontinuerligt Justera krav och prioritet Var delaktig i hela processen Burndown på sprint och hela projektet Fokus på funktion, inte bara timmar
Frågor?