F7 Agila metoder EDAF45 Programvaruutveckling 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: XP motsvarighet - Utvecklingsteam - Team 5-10 personer, självorganiserande - Produktägare - Kund Styr över prioritering, ofta -del Användare av företaget, ibland en kund. Ekonomiskt ansvar. - Scrum master - Coach Coach, projektledare, skyddar teamet. 12
Sprint 2-4 veckor utvecklingsarbete, timebox - följer en utvald attgöra lista - planeringsfas då dessa väljs ut. - under själva Sprint ändrar man inte listan XP motsvarighet - Iteration - Story - Prioritering - Embrace change! 13
Lista över att-göra. Backlog Hanteras av Produktägaren - Skapas initialt, inkl alla - Skapas efter önskemål. hand - Delas i delar som skapar värde. - Kan förändras över tid - Prioriteras, urval av de mest prioriterade inför nästa Sprint. XP motsvarighet - De Stories vi har - Prioritering 14
Daily Scrum Typiskt morgonmöte - Synkronisera utvecklingen - Identifiera och lösa problem XP motsvarighet - Stand up meeting - 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
Backlog grooming XP motsvarighet Underhåll av backloggen Involverar hela teamet - Planeringsmöte - Estimera tidsåtgång - Bryta ner att göra i minder delar som passar i en Sprint. Görs regelbundet - Görs hela tiden 16
Sprint review XP motsvarighet Sprint avslutas med demo av resultatet - Release för: - Produktägare, Kunder, företagsledning - Acceptanstester etc. Retrospective - som förberedelse för nästa Sprint - Planning game 17
Burndown chart XP motsvarighet - Kvarvarande stories tar aldrig slut. 18
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? 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 25
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 Supporting roles - Domain Manager - Release Manager - Language Guru - Build Engineer - Toolsmith - System Administrator - Tester - Deployer - Technical Writer 28
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? Features Delar 1 Overall Object Model 2 Feature List 3 Planning Feature Krav Krav Design Design Impl 4 Design by Feature 5 Build by Feature Impl Test Test Krav Design Impl Test Krav Design Impl Test Krav Design Impl Test Tid
Roller i FDD FDD-team består av: - Experter - Stort antal fixerade roller XP motsvarighet - Team - Självorganiserande - Domän expert - Expertroller delas mellan Featureteams - konsult - Kund - Användare - Coach 35
Object Model i FDD Object Model - Förstå Domänen - Viktiga klasser XP motsvarighet - Metaphor - Initial arkitektur - Zero feature release Färdig Model - Hur underhålls den? - Simple design - Refactor 36
Feature List i FDD Features Funktionen - Identifiera features Business expert XP motsvarighet - Identifiera Stories iterationer användare Produktföretag Extern beställare, - kända användare 37
Planning by Feature i FDD Vilken ordning - Chief programmer Feature XP motsvarighet - Planning game kund/användare - Iteration (om man vill) Releaseplan Frequent Releases User feed-back 38
Design by Feature i FDD Feature selection - Chief programmer Design decisions - Chief programmer XP motsvarighet - Stand up meeting Simple design Refactor 39
Building by F i FDD Programmering - Class owners i varje featureteam? - Koordination? Hur uppdateras gemensam arch? XP motsvarighet - Stories, - Detaljplanering - Collective ownership Simple Design Refactor Iterationer Releaser 40
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 detaljer 42
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/featuredriven-development/ 44