EDAF45 Programvaruutveckling i grupp – Projekt Boris...

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