2016-01-19

advertisement
2016-01-19
En agil systemutvecklingsprocess
Vattenfallsmodellen
Annika Silvervarg
•
•
•
•
•
•
•
•
Manifesto for
Agile Software Development
Agila modellen
Sprint 0
Strategic intake & research
(Strategic intake & research)
(Product statement)
(Design koncept)
Technical solution outline
Practical agreements
Setting up the ”room”
Definition of done
Start on Product backlog
• Market and end-user
– Competition?
– Market?
– End-users?
• Brand
– Defined brand?
– ”tone-of-voice”?
– Corporate visual identity?
1
2016-01-19
Product statement
• Template: For (target customer) who (statement of
need or opportunity) the (product name) is a
(product category) that (key benefit, compelling
reason to buy)
Design koncept
• Graphic profile
• Conceptual design
• Example: trakz.nl is a trustworthy online music store,
we are personal and passionate about music!
Technical solution outline
• Can include
– legacy system limitations
– CMS characteristics
Practical agreement
•
•
•
•
•
•
When do you work?
Where do you work?
Contact information, e-mail, phonenumbers….
When do you have stand-up meetings (and how)?
When do you demo (test) and with whom?
When and how do you do the retrospective?
Setting up the ”room”
•
•
•
•
Hardware
The room
Supplies
Software
– Dropbox?
– GIT, SVN,…
• Scrumboard
• Trello, wiki, excel, google docs,…
Definition of Done
• Technical requirements
–
–
–
–
Devices?
Browsers?
Documentation?
How tested?
• User experience
– How does it feel?
– Tests with external people?
• Customer acceptance
– Who decides when done is done?
2
2016-01-19
Start on product backlog
• The backlog is a prioritized features list, containing
short descriptions of all functionality desired in the
product, typically in the form of
• User stories, which are short, simple descriptions of
the desired functionality told from perspective of the
user
User story template
• Title (one line describing the story)
• As a [role]
I want [user need]
So that/because [resulting ability] OR
• As a [role]
I can [do/view something]
– "As a shopper, I can review the items in my shopping cart
before checking out so that I can see what I've already
selected."
User story examples
A good user story – INVEST
•
•
•
•
Independent, of other stories
Negotiable, not a contract
Valuable, to customer or end user
Estimable, enough information and reasonable
scope
• Small, coded and tested within half a day to two
weeks
• Testable, clear definition of ”done”
Sprint 1-6
Release planning
• Release plan
• Iteration plan
– Velocity
– Time estimates – Planning poker
– Prioritise
•
•
•
•
Scrum board and Burn down chart
Daily scrums
Demo and Acceptance testing
Retrospective
3
2016-01-19
Release planning –
Step 1: Writing user stories
Release Planning
• Customer presents the desired features to the
programmers as user stories
• Programmers estimate their difficulty
• Customer lays out a plan for the project
• Initial release plans are necessarily imprecise.
However, even the first release plan is accurate
enough for decision making and teams revise the
release plan regularly
•
Release planning –
Step 2: Time esitmation
•
Developers estimate how long the stories might
take to implement
– Each story will get a 1, 2 or 3 days estimate in ideal
development time
– Longer than 3 days means that the customer need to
break the story down further and less than 1 day that it is
at too detailed a level, combine some stories
– Stories can be assigned technical risk: low, medium,
high
Iteration planning
• During Iteration planning, the Customer presents the
features desired for the next iteration
• The programmers break them down into tasks, and
estimate their cost (at a finer level of detail than in
Release Planning)
• Based on the amount of work accomplished in the
previous iteration, the team signs up for what will be
undertaken in the current iteration
Customers write user stories
– Stories can be assigned business value: essential, highly
valuable or good idea (or a more fine grained scale, eg.
1 to 10)
– Developers can suggest stories but the customer has
always final say
– Stories can always be added, changed or deleted
Release planning –
Step 3: Prioritising stories
•
Together developers and customers move the
cards around on a large table to create a set of
stories to be implemented as the first/next release
– A useable, testable system that makes good business
sense delivered early is desired
– You may plan by time or by scope
•
•
either how many stories can be implemented before a
given date (time), or
how long a set of stories will take to finish (scope)
Iteration planning –
Step 1: Project velocity and scope
• Project velocity is calculated based on previous
iterations (initial velocity often set to 50%)
– Velocity = completed stories divided by actual hours
59/84h = 70%
– Time for next iteration = velocity * time * number of pairs
70% * 28h * 3 = 59 h (ideal time)
• Customer choose prioritised stories from release
plan
• Failed stories/tasks from the previous iteration to be
fixed are also selected
4
2016-01-19
Iteration planning –
Step 2: Creating tasks
• The user stories and failed tests are broken down
into the programming tasks that will support them by
the developers
– Tasks are written down on index cards like user stories
– While user stories are in the customer's language, tasks
are in the developer's language
– Duplicate tasks can be removed
– Each story has a corresponding task card for writing an
acceptance test together with the customer
Planning poker
Iteration planning –
Step 3: Time estimation
• Estimates are made by the team and tasks divided
at the end of the session, or put in a stack where
developers choose tasks one at a time
– Each task should be estimated as 1, 2, or 3 ideal
programming hours in duration
– Tasks which are shorter than 1 hour can be grouped
together and tasks which are longer than 3 hours should
be broken down farther
• or developers sign up to do the tasks and then
estimate how long their own tasks will take to
complete
Planning poker
• Alla i teamet estimerar en story/task
– Väljer ett kort/skriver en siffra
• Alla visar upp sitt val samtidigt
• Den som valt minst tid och den som valt mest tid
diskuterar och enas om en estimering
• Finns flera varianter…
• Finns appar att använda istället för kortlek
SCRUM Board
Burn down chart
5
2016-01-19
Demo and Acceptance tests
Acceptance test
• Short presentation of the process of the sprint
(preconditions, constraints, impediments, etc.)
• Short ”walk through” of the product, explaining
decisions made (focus on what, not how)
• Customer (stakeholders) sit down individually and
go through users stories using the system and
judge if acceptance tests pass or fail
• Acceptance tests are created from user stories
• During an iteration the user stories selected will be
translated into acceptance tests by the customer
• A story can have one or many acceptance tests,
each acceptance test represents some expected
result from the system
• Customers are responsible for verifying the
correctness of the acceptance tests and decide
which failed tests are of highest priority to fix in the
next iteration
– Failed acceptance tests are collected for next iteration
• Scrum master have closing discussion with
customers and bring the most important bits back to
the team
Acceptance test template
• Scenario 1: Title
• Narrative:
Given [context] (And [some more context]...)
When [event]
Then [outcome] (And [another outcome]...)
Retrospective
Acceptance test examples
User story
test
Criteria for acceptance
Retrospective
• ”Inspect and adapt”
• Draw a timeline of the sprint on a whiteboard
• Sit down individually (5 min)
– Write positive things on green post its
– Write negative things on pink post its
• Place the post its on the timeline (2 min)
• Look at the board and discuss what you wrote to
identify patterns or clusters (5 min)
• Choose max 3 things you want to improve (5 min)
6
2016-01-19
Sprint 0
•
•
•
•
•
•
•
•
Sprint 0 – Att Göra
• 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
Sprint 1-6
• Release plan
• Iteration plan
– Velocity
– Time estimates – Planning poker
– Prioritise
•
•
•
•
Scrum board and Burn down chart
Daily scrums
Demo and Acceptance testing
Retrospective
(Strategic intake & research)
(Product statement)
(Design koncept)
Technical solution outline
Practical agreements
Setting up the ”room”
Definition of done
Start on Product backlog
Sprint 0 – Att Göra
• Kund: Delta i möte med projektgruppen och gör en översiktlig
beskrivning av det planerade systemet (inklusive 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).
Sprint 1-6 – Att Göra
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, postits, 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.
7
2016-01-19
Sprint 1-6 – Att Göra
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 tasklappar.
• 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).
Sprint 1-6 – Att Göra
• 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.
Sprint 1-6 – Att Göra
• Grupp: Tidsestimera alla tasks med Planning poker.
Skriv den överenskomna 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.
Sprint 1-6 – Att Göra
Under sprinten - Scrum-möten i början av varje ”arbetsdag”
• 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.
Sprint 1-6 – Att Göra
Sprint 1-6 – Att Göra
• 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
• Scrum master: 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.
8
2016-01-19
Sprint 1-6 – Att Göra
• Scrum master: 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.
Sprint 1-6 – Att Göra
• 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.
Sprint 1-6 – Att Göra
• 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).
• Scrum master: Fyller i sprintformuläret och lämnar in till
läraren.
9
Download