XP-projekt: En fördjupning Extreme Programming Martin Karlsson marka@itn.liu.se K7522 011 36 34 63
Fem värden Kommunikation Var öppna Var ärliga Ta konflikter Diskutera Tag beslut Tag ansvar Kräver feedback, enkelhet, mod och respekt 07-03-23 Martin Karlsson - XP 2
Fem värden Feedback Ge återkoppling När det behövs Inte för sent Lös konflikter Diskutera Tag beslut Tag ansvar Kräver kommunikation, enkelhet, mod och respekt 07-03-23 Martin Karlsson - XP 3
Fem värden Enkelhet Komplicera inget Inte koden Inte språket Inte situationen Lägg fram konflikter enkelt Diskutera Tag beslut (snabbt och enkelt) Tag ansvar Kräver kommunikation, feedback, mod och respekt 07-03-23 Martin Karlsson - XP 4
Fem värden Mod Våga ta konflikter Koden Tidsplanen Gruppen Våga diskutera Våga ta beslut Våga ta ansvar Kräver kommunikation, feedback, enkelhet och respekt 07-03-23 Martin Karlsson - XP 5
Fem värden Respekt Respektera varandras förmågor Respektera varandras åsikter Respektera varandras känslor Respektera varandras behov Lär er att kompromissa Lär er att uppfylla varandras önskningar Teamkänsla Kräver kommunikation, feedback, enkelhet och mod 07-03-23 Martin Karlsson - XP 6
En programmerares vardag Skapa par - Kort designsession Stand-up meeting 08.00 Skriv test Kommunicera med kund Koda Omfaktorisera Integrera eller kasta Gå hem 17.00 07-03-23 Martin Karlsson - XP 7
En programmerares vardag Stand-up meeting 10-minutersmöte i början på dagen Identifiera problem och vilka som ska lösa dem, men försök inte lösa dem under mötet Fixera denna starttid varje dag (ex. 08.00) Testa - koda - omfaktorisera - integrera Utgå alltid från en story Få support från kollegor och kund True Pairing story 07-03-23 Martin Karlsson - XP 8
Testdriven utveckling Skriv enbart kod för att få testfall att gå igenom Fråga kompilatorn/testerna Mindre portioner funktionalitet i taget Ensam är stark Få beroenden mellan klasser Testa bara det som behöver testas Vad är pudelns kärna? Avslöja buggen innan du fixar den Testa förväntade fel The Bowling Game Kata 07-03-23 Martin Karlsson - XP 9
Planering revisited Planer kan inte användas för att kontrollera händelser Man kan inte kontrollera händelser, man kan endast kontrollera reaktioner För att få projektet att gå hyggligt, så behöver vi styra, kontinuerligt, hela tiden Planeringsspelet, kund-på-plats, stå-uppmöten, yesterday s weather Ge feedback på hur det går Synliggör resultat 07-03-23 Martin Karlsson - XP 10
Arkitekturplanering Något som kan verka förvirrande med XP är att arkitekturen inte är lika synlig som i annan systemutvecklingsmetodik XP säger embrace change Arkitektur-driven utveckling säger Plan upfront first, build a skeleton XP adresserar dock arkitektur via Spikes, metaforer, första iterationen, små releaser, omfaktorisering och design up-front (testdriven utveckling / parprogrammering) 07-03-23 Martin Karlsson - XP 11
Arkitekturplanering Baserat på spikes och stories så bestäms en ansats till systemet struktur Prestanda, storlek, grundbehov, domän Metaforen används som en guide fram till lösningen Är tänkt att identifiera nyckelobjekt och deras interaktioner Ger en gemensam vokabulär Metaforen får dock ändras över tiden, allt eftersom man lär sig mer om systemet 07-03-23 Martin Karlsson - XP 12
Exempel på metaforer Mail: Brev, kuvert, frimärke, adressbok, brevlåda, Posten Distribuerade tjänster: Rör, rörmokeri, filter, bryggor, adaptrar, lego, pussel Processer: Walkthrough, drive-through, slideshow, auktioner, registreringar, kokbok, sopsortering 07-03-23 Martin Karlsson - XP 13
Första iterationen Första iterationen måste bli ett fungerade skelett för hela systemet, så mycket som man känner till vid tillfället Stories som ger en helhet, en release väljs här Be skinny - inga features behövs, bara ramen Strunta i funktionalitet, iterationen ska inte vara användbar, bara installerbar Konfigurera så att systemet fungerar på plattformen Skapa ett gränssnitt som gör allt på en gång one-button interface GÖR ALLT 07-03-23 Martin Karlsson - XP 14
Releaseplanering Små, men frekventa releaser förespråkas i XP Ett XP-teams första uppgift är att lära sig saker, och att få kontinuerlig feedback från kund och användare uppfyller detta En release ska vara liten, men måste vara vettig Fullständiga och sammanhängande stories En release kan vara mindre än du tror Ziffer - Zero Feature Release 07-03-23 Martin Karlsson - XP 15
Projektstruktur Veckans arbetstider planeras i förväg Varje gul dag innehåller arbete i kursen (om dagen är full, så blir det kvällstid) Omfattningen baseras på Antal programmerare * längden på iterationen (veckans arbetstider) * hastigheten Hastigheten sätts ursprungligen till 1/3 och räknas om varje vecka (av spåraren) Om ett par (eller flera) inte kan medverka räknas deras ideala ingenjörstimmar bort 07-03-23 Martin Karlsson - XP 16
Det sista Indelning av roller Planering av tider (obs: för iterationen) 3 poäng = 120 timmar över 5 veckor Spåraren redovisar för examinator Annat? 07-03-23 Martin Karlsson - XP 17