kort introduksjon til scrum

35
Kort Introduksjon til Scrum Amund Tveit Høst 2010

Upload: amund-tveit

Post on 14-Jul-2015

83 views

Category:

Leadership & Management


0 download

TRANSCRIPT

Page 1: Kort introduksjon til Scrum

Kort Introduksjon til Scrum

Amund Tveit Høst 2010

Page 2: Kort introduksjon til Scrum

Innhold

• Scrum oversikt • Produkteier/Produktbacklog/User stories • Sprintplanlegging og estimering • Sprint/Progresjon ➔ Dere utfører en Scrum simulering • Litt mer om scrum ➔ Diskutere Scrum-utfordringer hos dere

Page 3: Kort introduksjon til Scrum

Motivasjon: Scrum gjør deg smartere!

• http://www.psychologicalscience.org/media/releases/2008/smith.cfm • http://jeffsutherland.com/scrum/2008/05/scrum-makes-you-smarter.html

Page 4: Kort introduksjon til Scrum

Programvareutvikling

Vannfallsmodell ➔ Scrum

Lange Planer ➔ Korte Iterasjoner

Page 5: Kort introduksjon til Scrum

Scrum bakgrunn

• Toyota (lean production) – Arbeidere følte seg produktive 80% av tida vs

20% hos amerikanske bilprodusenter • Kjerneverdier (agile manifesto)

1. Individer og interaksjon >> prosesser & verktøy 2. Fungerende produkter >> omfattende

dokumentasjon. 3. Kundesamarbeid >> kontraktsforhandling 4. Respondere til endring >> følge en (fastlagt)

plan

Page 6: Kort introduksjon til Scrum

Scrum Analogy – PID regulator

Page 7: Kort introduksjon til Scrum

Scrum Prosessen?

Page 8: Kort introduksjon til Scrum

Scrum har mange nivå av iterasjoner

Page 9: Kort introduksjon til Scrum

Rolle: Produkteier

• PO er en Bruker-Proxy – Utviklingsleder – Salgsfolk – Domene eksperter – Marketing group – Tidligere brukere – Kunden selv (bestiller) – Support/kursholdere – Biz/system Analyst

Anbefaling ➔ velg en med reell inflytelse

Page 10: Kort introduksjon til Scrum

Product Backlog

Page 11: Kort introduksjon til Scrum

Product Backlog ~ En (levende) plan

• Visdomsord om planer å ha i mente – Planlegging er alt. Planer er ingenting. – Ingen plan overlever kontakt med fienden

• Feltmarskalk Helmuth G. Von Moltke (Preussian, 18xy)

• Om programvareprosjekter – Feature-creep – 64% av egenskaper inkludert i

produkter er aldri/sjelden brukt (2002) – Overskridelser – gjennomsnittlige prosjekter

overskrider tidsbruken med 100% (dobling!)

Page 12: Kort introduksjon til Scrum

Problemer med planlegging – 1/2

1. Planlegginer på aktivitetsnivå istedet for levert egenskap

2. Aktiviteter slutter ikke tidlig (Parkinsons lov) 3. Treghet smitter nedover planen (asymmetri) 4. Aktiviteter er ikke uavhengige 5. Multitasking fører til forsinkelser

1. Produktivitet faller fra 80% til 40% ved 5 tasks 6. Egenskaper ikke utviklet i prioritert

rekkefølge 1. ”alt er viktig” syndromet

Page 13: Kort introduksjon til Scrum

Problemer med planlegging – 2/2

7. Estimater blir tolket som forpliktelser – Er i praksis tupler av (estimat,

sannsynlighet)

Page 14: Kort introduksjon til Scrum

Product Backlog (PB)

En User Story per rad, og i hver kolonne: • Beskrivelse • Kostnad (kompleksitet) • Verdi • Avhengigheter (helst ikke)

Page 15: Kort introduksjon til Scrum

User Stories for PB

Ønskede egenskaper: 1. Uavhengige 2. Forhandlbare 3. Verdifulle for bruker eller produkteier 4. Estimerbare 5. Små 6. Testbare 7. Koplet til en brukerrolle

Page 16: Kort introduksjon til Scrum

Hvordan få inn user stories?

• Intervjue brukere • Spørreskjema til brukere – Indirekte spørring ved eksperimentering

• Observere brukere – Automatisk innhenting

• Workshops/spikes

Page 17: Kort introduksjon til Scrum

Akseptansetesting av user stories

• PO skriver krav (på baksiden av user story) • Test-Drevet Utvikling • Automatisk: – FIT/FitNesse – Selenium (web)

Page 18: Kort introduksjon til Scrum

Estimering av user stories

• Produkteiermøte • Hvem er med • Type estimering (poker planning) og

håndtering av ”uteliggere” • Estimering i tid eller story points • Skalaer • Nedbryting av stories

Page 19: Kort introduksjon til Scrum

Sprint Backlog

Page 20: Kort introduksjon til Scrum

Sprint Planning på vegg

Page 21: Kort introduksjon til Scrum

Sprint planlegging

• Beregn hvor mange ressurser man har tilgj.

• (evt. Historisk velocity) • Ulike praksiser: – Man velger tasks etterhvert – Man pre-committer til tasks

Page 22: Kort introduksjon til Scrum

User Story ➔ Sprint oppgaver

Hvorfor bryte ned User Stories? 1. Parallelisering av utvikling av en story – F.eks. for utviklere med ulik spesialitet

2. Får fram ikke-selvfølgelige oppgaver – En endring kan kreve endringer andre steder

(f.eks. i installasjonsprogram)

3. Får koplet story til tidlig arkitektur

Page 23: Kort introduksjon til Scrum

Daglig Sprint-møte

Page 24: Kort introduksjon til Scrum

Daglig sprint-møte

• Hva har du gjort siden forrige møte? • Hva skal du gjøre til neste gang? • Har du noen problemer? • Oppdatere Scrumboard (på rundgang)

Page 25: Kort introduksjon til Scrum

Progresjonsmåling/varsling – 1

• Burndown – mest vanlig – Hvor mye av StoryPoints får

man gjort – Skal gå nedover

• Burnup – mindre vanlig – Akkumulert estimert

• Hvilken kurve? Psykologi ☺

Page 26: Kort introduksjon til Scrum

Sprint

Page 27: Kort introduksjon til Scrum

Scrumboard med burndown

Page 28: Kort introduksjon til Scrum

➔ Sprint Simulering

• 60 minutter, simulere 6-dagers sprint • Product Backlog – implementere

algoritmer: – Søk i tabell – Sortering av tabell – Innsetting og søk i binært tre – Innsetting og finne korteste vei i en graf

• Form team

Page 29: Kort introduksjon til Scrum

LITT MER OM SCRUM

Page 30: Kort introduksjon til Scrum

Scrum – Dataflyt

• Typisk arbeidsflyt – Product backlog i regneark – Sprint backlog på whiteboard (og oppdatering i

regneark) – Kode i versjonskontroll – Tester kjøres på å cont.build boks – Systemet kjøres i produksjon

• ”Perfekt” arbeidsflyt – Alt integrert, kopling mellom kode og user stories ➔ produkteier mer integrert del av team og mulighet

til mer læring (har alle data samlet for analyse)

Page 31: Kort introduksjon til Scrum

Problemer med User Stories

• For små • Avhengighet mellom de • Sukkerpåstrøing • For mange detaljer • UI-detaljer for tidlig • For lang tidshorisont • For mye splitting av

stories

• Kunden har problemer med prioritere

• Kunden vil ikke (forplikte) seg til å skrive og prioritere historien

Page 32: Kort introduksjon til Scrum

Håndtere ikke-funksjonelle Krav

• Ytelse • Nøyaktighet/presisjon • Portabilitet • Gjenbrukbarhet • Vedlikeholdbarhet • Interoperabilitet • Tilgjengelighet

• Brukbarhet • Sikkerhet • Kapasitet

Page 33: Kort introduksjon til Scrum

Scrum ting å tenke på..

• Skalering – flere team – Meta-scrum, avhengigheter

• Automatisering – Deployment – Live eksperimentering

• Versjonskontroll-type og code review gjør stor forskjell – Google-erfaring

Page 34: Kort introduksjon til Scrum

Scrum til hjemmebruk..

Page 35: Kort introduksjon til Scrum

➔ Scrum hos dere?

• Diskusjon.