View
11
Download
0
Category
Preview:
Citation preview
F7 Agila metoder
EDAF45Programvaruutveckling i grupp – Projekt
Boris Magnusson, Ulf Asklund Datavetenskap, LTH
1
XP - Scrum - Kanban - FDD• Agila metoder:• Vad innehåller SCRUM• Hur skiljer sig XP och SCRUM?• KANBAN - whiteboard! Lättviktig planering• Vad innehåller Feature Driven Development• Hur kompletterar FDD XP ?
2
Scrum - översikt• Scrum 4 nyckelbegrepp:
- Sprints- Backlog- Daily ”scrum” - Backlog grooming- Sprint review
3
Roller i Scrum• Scrumteam består av:
- Utvecklingsteam‣ 5-10 personer, självorganiserande
- Produktägare‣ Styr över prioritering, ofta del av företaget,
ibland en kund. Ekonomiskt ansvar.- Scrum master‣ Coach, projektledare, skyddar teamet.
4
Sprint• 2-4 veckor utvecklingsarbete, ”timebox”
- följer en utvald ”att-göra” lista- planeringsfas då dessa väljs ut.- under själva Sprint ändrar man inte listan
5
Backlog• Lista över ”att-göra”. • Hanteras av Produktägaren
- Skapas initialt, inkl alla önskemål.- Delas i delar som ”skapar värde”.- Kan förändras över tid- Prioriteras, urval av de mest prioriterade
inför nästa Sprint.
6
Daily Scrum• Typiskt morgonmöte
- Synkronisera utvecklingen- Identifiera och lösa problem- tre frågor som alla svarar på:‣ Vad har du gjort sedan förra mötet?‣ Vad tänker du göra inför nästa möte?‣ Är det något som hindrar dig från det?
7
Backlog grooming• ”Underhåll” av backloggen• Involverar hela teamet
- Estimera tidsåtgång- Bryta ner ”att göra” i minder delar som
passar i en Sprint.• Görs regelbundet
8
Sprint review• Sprint avslutas med demo av resultatet för:
- Produktägare, Kunder, Företagsledning etc.• Retrospective
- som förberedelse för nästa Sprint
9
Burndown chart
10
11
Roller i Scrum• Scrumteam består av:
- Utvecklingsteam‣ 5-10 personer, självorganiserande
- Produktägare‣ Styr över prioritering, ofta del av företaget,
ibland en kund. Ekonomiskt ansvar.- Scrum master‣ Coach, projektledare, skyddar teamet.
12
• XP motsvarighet- Team
- Kund- Användare
- Coach
Sprint• 2-4 veckor
utvecklingsarbete, ”timebox”- följer en utvald ”att-
göra” lista- planeringsfas då dessa
väljs ut.- under själva Sprint
ändrar man inte listan
13
• XP motsvarighet- Iteration
- Story- Prioritering
- Embrace change!
Backlog• Lista över ”att-göra”. • Hanteras av Produktägaren
- Skapas initialt, inkl alla önskemål.
- Delas i delar som ”skapar värde”.- Kan förändras över tid- Prioriteras, urval av de mest
prioriterade inför nästa Sprint.
14
• XP motsvarighet- De Stories vi har
- Skapas efter hand
- Prioritering
Daily Scrum• Typiskt morgonmöte
- Synkronisera utvecklingen- Identifiera och lösa problem- tre frågor som alla svarar på:‣ Vad har du gjort sedan förra mötet?‣ Vad tänker du göra inför nästa möte?‣ Är det något som hindrar dig från det?
15
• XP motsvarighet- Stand up meeting-
Backlog grooming• ”Underhåll” av backloggen• Involverar hela teamet
- Estimera tidsåtgång- Bryta ner ”att göra” i minder delar som
passar i en Sprint.• Görs regelbundet
16
• XP motsvarighet- Planeringsmöte
- Görs hela tiden
Sprint review• Sprint avslutas med demo av resultatet för:
- Produktägare, Kunder, företagsledning etc.• Retrospective
- som förberedelse för nästa Sprint
17
• XP motsvarighet- Release- Acceptanstester
- Planning game
Burndown chart
18
• XP motsvarighet- Kvarvarande
stories tar aldrig slut.
Feedback - Scrum-XP
19
Scrum vs XP
KANBAN • Generell metod för att hantera arbetsflöden• Begränsa parallella uppgifter• Fokusera• Identifiera flaskhalsar• Mät och utvecklas• Fokusera på att avsluta saker.• Förbättra löpande• På enklast möjliga sätt.
21
Gemensam överblick
22
I ett projekt• Begränsa backloggen
- annars tar prioriteringen för mycket energi• Lägg till fler steg:
- utveckling, test, integration, acceptanstester• Förbättra löpande• Det finns naturligtvis digitala varianter, men
enkelhet och direkt kommunikation har också ett värde!
23
Feature Driven Design• FDD kan uppfattas/tolkas/användas på olika sätt:• Här presenteras som en metod för hantera lite större
projekt:- Flera Team av XP-programmerar som arbetar på
samma ”produkt”.- Kan också uppfattas som komplement till XP, passar
väl samman, mer explicit OO fokus.• Rötter i tidigt arbete i OO metodik, t ex:
- P. Coad & Ed. Yourdon: Object Oriented Design, 1991 - P Coad, E Lefebvre, and Jeff De Luca: Java modelling in
Color with UML, 1999
24
Feature - Produktbeskrivning?
25
What are product features?Product features are characteristics of your product that describe its appearance, components, and capabilities. A product feature is a slice of business functionality that has a corresponding benefit or set of benefits for that product's end user.To offer maximum value, product features must be prioritized effectively. Features should be added based on quantifiable ways that they will add value for the product’s end users. Product features should also be prioritized based on how well they achieve business objectives.
www.aha.io
FDD - Översikt• 5 ”Processer” (faser efter varandra)
- Overall object model- Feature list- Planning by feature- Designing by feature- Building by feature
• ”Feature” - vad kan det vara ?
26
Feature in FDD• Har någon relation med Story i (XP)
- User value - capture functionality• Feature betyder oftast något större än en Story
- kan ge upphov till ett antal relaterade stories• Före Smart-phone fanns - ”Feature-phone”
- T ex en mobil man kunde fotografera med- Kamera-feature - ett antal stories:‣ ta bild, bläddra bilder, ladda upp bilder …
27
Roller i FDD• FDD defines a collection of main roles, including:
- Project Manager, - Chief Architect, - Development Manager, - Chief Programmer, - Class Owner, and - Domain Expert
28
Supporting roles- Domain Manager- Release Manager- Language Guru- Build Engineer- Toolsmith- System Administrator- Tester- Deployer- Technical Writer
1 Overall Object Model• Modellera domänen som objekt (Klasser).• Gemensam aktivitet:
- utvecklare, kunder, domänexperter.• Olika grupper kan modellera olika delar av
domänen• Jämkas ihop, alternativ väljs, till en gemensam
modell
29
2 Compile Feature List• Arbetet med att ta fram objektmodellen resulterar
också i förståelse för vad ”produkten” skall erbjuda.• Bryts ner i en lista av features
- Ge värde till kunden- Typiskt 2-3 veckors impl-arbete — dela upp- Ofta uttryckt som en lista med aktiviter
användaren kan göra.• Beskrivs som att allt görs i början, men kan också
göras löpande, nya Features efter hand.
30
3 Planning by Feature• Överordnad planering• I vilken ordning skall Features förverkligas• Vem skall göra vad
- Fördela på team- (Fördela på utvecklare)
• Uppskatta arbetsinsatser, fördela, risker om saker fallerar etc.
31
4. Designing by Feature• Passar väl med ett utvecklingsteam• Vilken feature är viktigast
- Dela upp i Stories - Backlog (Att Göra)• Chief programmer - driver design• Domän-expert - hjälper till med förståelse,
Analys
32
5. Building by Feature• Äntligen kan man börja skriva kod!• Utgå från Features (en i taget)• FDD har inte synpunkter hur man gör här• Många XP tekniker passar bra in
- Unittester- Användartester- Bryta ner i Stories
33
FDD - iterativt/agilt?Fe
atur
esDelar
Tid
Kra
v
Des
ign
Impl
Test
Kra
v
Des
ign
Impl
Test
Kra
v
Des
ign
Impl
Test
Kra
v
Des
ign
Impl
Test
Kra
v
Des
ign
Impl
Test
1 O
vera
ll O
bjec
t Mod
el
2 Fe
atur
e Li
st
3 Pl
anni
ng F
eatu
re
4 Design by Feature 5 Build by Feature
Roller i FDD• FDD-team består av:
- ”Experter” - Stort antal fixerade roller
- Domän expert
- Expertroller delas mellan Featureteams - ”konsult”
35
• XP motsvarighet- Team- Självorganiserande
- Kund- Användare
- Coach
Object Model i FDD• Object Model
- Förstå Domänen- Viktiga klasser
• Färdig Model• - Hur underhålls den?
36
• XP motsvarighet- Metaphor- Initial arkitektur- Zero feature release
- Simple design- Refactor
Feature List i FDD• Features Funktionen
- Identifiera features‣ Business expert
• Produktföretag
37
• XP motsvarighet- Identifiera Stories‣ iterationer‣ användare
• Extern beställare, - kända användare
Planning by Feature i FDD• Vilken ordning
- Chief programmer
• Feature
• Releaseplan
38
• XP motsvarighet- Planning game‣ kund/användare
- Iteration (om man vill)
• Frequent Releases• User feed-back
Design by Feature i FDD• Feature selection
- Chief programmer• Design decisions
- Chief programmer
39
• XP motsvarighet- Stand up meeting‣ Simple design‣ Refactor
Building by F i FDD• Programmering
- Class owners‣ i varje featureteam?
- Koordination?‣ Hur uppdateras
gemensam arch?
40
• XP motsvarighet- Stories, - Detaljplanering- Collective ownership
• Simple Design• Refactor• Iterationer• Releaser
FDD vs XP
FDD vs XP• Viktiga skillnader:• Initial design och arkitektur - Simple, Refactor• Fixerade roller, experter - Självorganiserande • Class owner - Collective ownership• Mindre uttalat samspel med kund/användare• Feed-back som metod saknas• Större sammanhang, tolkar som:
- Stora linjer fastlagda, inte alla detaljer42
Sammanfattning• Scrum och XP överlappar runt planering
- även om saker heter lite olika• XP erbjuder mycket mer struktur för det
praktiska programmeringsarbete• FDD mer fokus på OO, överordnad planering
- kompletterande tekniker för större projekt.• KANBAN och dess enkla tavelteknik används
ofta i Agila projekt för att skapa överblick.
43
Läsanvisningar • http://www.scrumguides.org/docs/scrumguide/
v2016/2016-Scrum-Guide-US.pdf#zoom=100• SCRUM på fem minuter, www.softhouse.se• KANBAN in five minutes, www.softhouse.se• FDD https://apiumhub.com/tech-blog-barcelona/feature-
driven-development/
44
Recommended