Göm menyn

TDP023 Projekt: Agil systemutveckling

Utvecklingsprocess


Roller

  • Kund. Extern person som beställer arbetet. I denna kurs agerar kunden i princip som en product owner (i mån av tid).
    • Ser till att user stories finns i backlog (framförallt inför sprint start)
    • Prioriterar user stories inför sprint start
    • Deltar i demo vid sprint end och avgör vilka stories som får godkänt
  • Scrum master. Är också utvecklare. Denna roll kan roteras inom gruppen.
    • Ansvarar för kontakten med kund
    • Ser till att burn-down-chart upprättas
    • Ansvarar för scrum-möten och att de blir till, samt uppdatering av burn-down-chart och tabellen med tasks och stories
    • Håller i sprint start
    • Håller i sprint end (demo + retrospective)
    • Fyller i sprintformuläret efter varje sprint
  • Utvecklare.
    • Deltar aktivt i sprint start & sprint end
    • Deltar aktivt i scrum-möten
    • Utvecklar och testar valda tasks
    • Kommer i tid till planerade möten och utvecklingstider

Sprint 0

  • Grupp: Utse en scrum master.
  • Grupp: Gå igenom scheman och gör en detaljerad planering för vilka tider gruppen ska jobba. Bestäm ett lämpligt straff för sen ankomst (t.ex. bjuda gruppen på fika).
  • Scrum master: Välj en lämplig yta på en stor whiteboard och rita upp en scrum board (se nedan).
  • Grupp: Se till att ett möte med kunden äger rum. Utbyt kontaktuppgifter och kom överens med kunden om hur kommunikationen under projektet ska fungera.
  • Kund: Delta i möte med projektgruppen och gör en översiktlig beskrivning av det planerade systemet (inlkusive syfte, vision, etc). Eventuella sekretessavtal skrivs lämpligtvis under vid detta möte.
  • Kund: Förbered user stories och förmedla till projektgruppen.
  • Grupp: Genomför en tekniköversikt och riskanalys gällande val av teknikplattformar (utvecklingsverktyg, programspråk, databashanterar, etc).

Före sprint start

  • Scrum master: Uppdatera backlog (justera och lägg tillbaka stories som fått fail).
  • Scrum master: Se till att material finns på plats (pennor, post-its, etc).
  • Kund: Förbered nya user stories (vid behov) och lägg dem i Backlog. Gör en prioritering av alla user stories i Backlog.
  • Grupp: Tidsestimera alla user stories i Backlog i prioritetsordning.

Sprint start

  • Grupp: Välj ut en mängd user stories (i prioriteringsordning) så att den uppskattade summan av tider stämmer ungefär överens med den tillgängliga tiden för user stories denna sprint (ta hänsyn till förra sprints velocity vid beräkning av tillgänglig tid).
  • Grupp: Bryt ner valda user stories till tasks och skriv task-lappar.
  • Kund: Det är bra om kunden finns tillhands och kan svara på frågor då stories bryts ner till tasks (antingen på plats eller via telefon/chat).
  • Grupp: Tidsestimera alla tasks med Planning poker. Skriv den övernskomna tiden på respektive task-lapp. Om summan av tiden för alla tasks som ingår i en story är mycket större än den uppskattade tiden för storyn, kontakt kunden för en diskussion. Ska en annan story släppas från denna sprint? Ska storyns omfång (scope) definieras om? Ska prioriteringen av stories ändras? Allt är möjligt.
  • Scrum master: Placera lapparna för alla valda stories på tavlan. Alla stories och deras tillhörande tasks placeras i kolumnen Not Started och sorteras i prioriteringsordning med högst prioritet överst.
  • Grupp: Kör ett kort scrum-möte för att avgöra vem som börjar med vad. Varje gruppmedlem (eller par om man kör parprogrammering) väljer en task, och skriver sitt namn på lappen och flyttar den till kolumnen Started.
  • Scrum master: Ritar upp ny burn-down chart: x-axeln speglar antal arbetsdagar som ingår i denna sprint. Y-axeln speglar summan av tidsuppskattningarna för alla tasks som hör till utvalda stories.
  • Grupp: Utvecklingsarbetet börjar.

Dagligt scrum-möte

Mötet äger rum i början av varje planerad utvecklingsdag.
  • Scrum master leder mötet och fördelar ordet.
  • Grupp: Varje gruppmedlem besvarar kortfattat tre frågor: 1) Vad har jag gjort sedan förra mötet? 2) Vad åtar jag mig att göra till nästa planerad scrum möte? 3) Finns det något som hindrar mig i mitt åtagande (behöver jag hjälp med något)?
  • Grupp: Alla gruppmedlemmar uppdaterar tidsuppskattningarna av de tasks de jobbar med. Om en task är färdig flyttas den till kolumnen Done. Om alla tasks för en user story är klara flyttas lappen med storyn till kolumnen Ready for Review.
  • Scrum master: Uppdaterar burn-down chart så att den stämmer med de nya återstående tiderna.
  • Scrum master: Om aktuell status i burn-down chart avviker väsentligt från ideallinjen, ska kunden kontaktas och informeras om läget. Tänkbara resultat från denna kontakt kan t.ex. vara att en eller flera user stories tas bort från denna sprint (eller läggs till om utvecklingen gått bättre än förväntat). Om så är fallet ska burn-down chart uppdateras så att den speglar det nya läget.

Sprint end

Demo
Allokera en timme för demon. Schemalägg med kunden i god tid.
  • Grupp: Dema systemet för kunden, och gå igenom alla user stories som gjorts under sprinten.
  • Kund: Avgör om det blir pass/fail för varje user story. User stories som fått fail skrivs om och läggs tillbaka i backlog.
Retrospective
Allokera en timme för retrospective. Äger rum efter demon (kunden deltar ej).
  • Scrum master: Gå igenom sprinten som ägt rum och påminn om bra och dåliga saker som inträffat.
  • Grupp: Varje gruppmedlem (inklusive scrum master) skriver (under tystnad) post-its med Plus (saker som gått riktigt bra under sprinten) och Delta (saker som inte fungerat under sprinten).
  • Scrum master: Be varje medlem komma fram och sätta upp sina post-its på tavlan och kortfattat förklara vad som menas. Ingen diskussion.
  • Scrum master: gå igenom alla positiva post-its på tavlan, summera och be om eventuella kompletterande kommentarer.
  • Scrum master: gå igenom alla Delta post-its på tavlan, summera och diskutera igenom det hela med gruppen. Vad kan vi som grupp göra för att undvika dessa Delta?
  • Grupp: Rösta om vilka Deltan som gruppen ska jobba med att förbättra under nästa sprint (tre röster per gruppmedlem). Tre Deltan väljs ut. Lapparna för dessa Deltan placeras på gruppens whiteboard. Dessa tas också upp för diskussion vid nästa Retrospective. Gick det bättre nu?
  • Scrum master: Behåll lapparna för uppföljning.
  • Scrum master: Efter retrospective rensar scrum master upp scrum board för att göra plats för nästa sprint, och beräknar den aktuella sprintens hastighet (velocity). Hastigheten beräknas som: velocity = (tillgänglig tid för sprint, ej inräknat velocity / summan av uppskattad tid för godkända user stories under sprinten). Denna hastighet används för att avgöra den maximala totaltiden för user stories som gruppen tar sig an vid nästa sprint. Scrum master fyller också i sprintformuläret och lämnar in till läraren.

Scrum board

  • En scrum board ritas upp på en whiteboard och består av en burn-down chart och en progresstabell för user stories och tasks.
  • Burn down chart uppdateras av scrum master efter varje scrum-möte. Diagrammet ska i varje tidpunkt spegla den totala uppskattade tiden för alla tasks som ännu ej flyttats till kolumnen Done. Burn-down chart uppdateras efter varje scrum möte.
  • Progresstabellens kolumner är: Not started, Started, Ready for Review, Done. Det finns en rad per user story. Lappar med User stories står kvar i kolumnen Not Started som rubrik för tillhörande lappar med tasks, och flyttas sedan till Ready for Review och sedan till Done. Lappar med tasks förflyttas mellan Not Started till Started till Done. Rader och kolumner i tabellen kan t.ex markeras med tejp.

Sidansvarig: Johan Åberg
Senast uppdaterad: 2014-01-22