44
F7 Agila metoder EDAF45 Programvaruutveckling i grupp – Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH 1

EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

F7 Agila metoder

EDAF45Programvaruutveckling i grupp – Projekt

Boris Magnusson, Ulf Asklund Datavetenskap, LTH

1

Page 2: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 3: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

Scrum - översikt• Scrum 4 nyckelbegrepp:

- Sprints- Backlog- Daily ”scrum” - Backlog grooming- Sprint review

3

Page 4: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 5: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 6: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 7: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 8: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 9: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 10: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

Burndown chart

10

Page 11: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

11

Page 12: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 13: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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!

Page 14: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 15: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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-

Page 16: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 17: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 18: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

Burndown chart

18

• XP motsvarighet- Kvarvarande

stories tar aldrig slut.

Page 19: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

Feedback - Scrum-XP

19

Page 20: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

Scrum vs XP

Page 21: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 22: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

Gemensam överblick

22

Page 23: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 24: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 25: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 26: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 27: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 28: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 29: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 30: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 31: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 32: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 33: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 34: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 35: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 36: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 37: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 38: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 39: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

Design by Feature i FDD• Feature selection

- Chief programmer• Design decisions

- Chief programmer

39

• XP motsvarighet- Stand up meeting‣ Simple design‣ Refactor

Page 40: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 41: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

FDD vs XP

Page 42: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 43: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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

Page 44: EDAF45 Programvaruutveckling i grupp – Projekt Boris ...fileadmin.cs.lth.se/cs/Education/EDAF45/2017/lectures/F07-2017.pdf · Feature Driven Design • FDD kan uppfattas/tolkas/användas

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