Planering. Planning. Hur planerar vi? Hur planerar vi? XP Bill of Rights. XP Bill of Rights

Relevanta dokument
XP-projekt: En fördjupning

Note to programmers. Embrace Change! Extreme Programming? Fyra basaktiviteter. 12 Practices / sedvanor. Vad är Extreme Programming

12 principer of agile practice (rörlig)

Planeringsspelets mysterier, del 1

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

F6 Arkitektur, Planering. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

Användningscentrering i agila utvecklingsprojekt. johanna.sarna@valtech.com Valtech

Agil projektmetodik Varför och vad är det?

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

Scrum + XP samt konsekvensanalys

Djupstudie Collective Documentation Ownerhip - Wiki. Jakob Nilsson-Ehle

Agil programutveckling

F6 Arkitektur, Planering

Kritik av Extrem Programmering

Agile-metoder, XP och ACSD

Användarcentrerad systemdesign

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg

Planning Poker som estimeringsteknik

Proj-Iteration 3. Grov plan för releaser

Scrum + XP = sant. Kristian Björk D06, Lunds Tekniska Högskola dt05kb1@student.lth.se. Frederik Blauenfeldt Jeppsson. dt06fb8@student.lth.

Förståelse förståelse önskvärda resultat LEDARE

SCRUM och agil utveckling

CREATING VALUE BY SHARING KNOWLEDGE

Användarcentrerad systemdesign

samhälle Susanna Öhman

2. Genom att klicka på actionknappen kommer du in till en meny:

Cult of Code Quality

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Planlegging for en bedre vedlikeholdshverdag og Økt OEE.

Refaktorisering i ett XP-projekt

* Guld! Uppdatering: gällande Karatbars. Hej!

Väderklockan. Sebastian Buks (Ursäkta alla Keynoteanimationer, det var så roligt bara...) Monday, November 15, 2010

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

SCRUM och mycket mer

TDP023 Projekt: Agil systemutveckling

Hur hanterar vi risk? Vad är TKO? Skillnad på agil och trad? Agil/Lean: Defer Commitment, Build knowledge, Fail fast

SCRUM vs. XP en jämförelse mellan två lättviktsmetodiker

Användbarhet i sitt sammanhang

Inledning SÅ HÄR GÅR ÖVNINGEN TILL:

Projektarbete DAVC20

Dr. Gustav Taxén MDI-Gruppen, CSC / VIC-Sthlm gustavt@kth.se

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Engelska åk 5 höstterminen 2013

Djupstudie Code smells / Refaktorisering. Martin Larsson dt08ml5 Stefan Johansson, dt08sj7

LETTER OF NET CHANGES RELEASE 6.2. Beställning E-post: FACKTA Point of Sale V6R2

5. Gör det samma med böcker som du tror nyblivna föräldrar kan komma att låna.

Utbildningsmaterial Personec Förhandling

Kvalitetsarbete I Landstinget i Kalmar län. 24 oktober 2007 Eva Arvidsson

Översikt. Fö: Projekt: Interaktivt system. Projekt. Mål. Coachning. Praktiker att använda

Resor med Skatteverket och Pensionsmyndigheten

Djupstudie - Datorbaserade system för tracking

Integrerat ingenjörsprojekt

FANTASIA FANATIC XXIX INFORMATIONSHÄFTE

7 steg till ett riktigt Gott Nytt 2015

Linköpings universitet 1

SCRUM på Riksarkivet. Magnus Welander /

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski

AFFÄRSPLAN [SÄTT IN FÖRETAGSNAMN]

Tillväxt diskussionsfrågor

Proj-Iteration1. Arkitektur alt. 1

Pavel Denisov D01, Lunds Tekniska Högskola 21:e februari 2006

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.

1. Bekräftelsebehov eller självacceptans

A brief exploration of the XP planning process The planning game

Kanban. Marcus Hammarberg. torsdag den 15 september 2011 (v.)

LETTER OF NET CHANGES RELEASE 5.4. Beställning E-post: FACKTA Point of Sale V5R04

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Scrums användning i Extreme Programming projekt. Lunds Tekniska Högskola D07 Lars-Olof Rydgren EDA

Scrum. på fem minuter

Inspel till dagens diskussioner

Här kan du checka in. Check in here with a good conscience

Upptäck 7 trick som förvandlar ditt nyhetsbrev till en kassako

Writing with context. Att skriva med sammanhang

Big Data i spelbranchen

Digitalguiden Platstjänster

Aktivitet ett: Kommunicera! Aktiviteter i praktiken. Parprogrammering. Aktiviteter. Parprogrammeringens sju myter. Parprogrammeringens sju myter

Dessa tre fönster kan enbart visas i datavyn, inte i layoutvyn. Det är också möjligt att ha flera fönster öppna samtidigt.

F2 XP Extremprogrammering översikt

- A Scrum Planning Tool Case Study to Evaluate the The Rich AJAX Platform

Proj-Iteration 5B. Plan för återstående iterationer

AI OCH VIKTEN AV ETT KUND- OCH DESIGNDRIVET PERSPEKTIV TOMMY JARNEMARK TELIA SVERIGE

Tomas Borg, konsult, SAS Institute Elin Rydell, konsult, SAS Institute Copyright 2003, SAS Institute Inc. All rights reserved.

Att stödja starka elever genom kreativ matte.

Framtidens Team AB. utvecklingsprogram för unga/nya chefer/ledare. utbildning i kommunikologi, grundnivå: intensiv träning i nya paradigmets ledarskap

Studie av estimeringstekniker för Extreme Programming. F. Stål D08, Lunds Tekniska Högskola

ATT LEDA FÖRÄNDRING. Ingen förändring utan ledarskap. Dessa övningar ger dig som ledare nyttiga saker att göra och prata om när du leder förändring.

ADITRO OUR FOCUS BENEFITS YOURS ÖKA DIN KOMMUNS EFFEKTIVITET OCH ANPASSNINGSFÖRMÅGA COPYRIGHT ADITRO. ALL RIGHTS RESERVED.

STADSTRENDER. Framtidens städer INTRO TRENDS THE CITY OF DESIRE DIVERSITY COLLABORATION THE CITY SOUL SUMMARY SHORT STORIES FROM BIG CITIES

Nyanskaffning av nätverksutrustning - Finansiering Ärende 5 KS 2018/200

Agil mjukvaruutveckling. 1DV404, Jesper Andersson

En studie om parprogrammering i praktiken

Projektmetodik. Johan Nilsson. Institutionen för Biomedicinsk Teknik LTH, Lunds Universitet

2. Genom att klicka på actionknappen kommer du in till en meny:

Dagbok Mikael Lyck

TDDD26 Individuell projektrapport

7 steg till ett riktigt Gott Nytt 2017

Transkript:

Planning Extreme programming Planering In preparing for battle I have always found that plans are useless, but planning is indispensable - Eisenhower Vi planerar för att försäkra oss om att vi alltid gör det som är viktigast att vi kommunicerar effektivt med andra att vi kan reagera snabb på oförutsedda händelser (se de två ovanstående punkterna) Martin Karlsson marka@itn.liu.se K7522 011 36 34 63 07-03-21 Martin Karlsson - XP 2 Hur planerar vi? För det första behöver vi ha koll på hur långt fram i tiden det är vettigt att planera Därav är det bra med tydliga milstolpar Att planera för detaljerat för långt fram innebär att det kommer bli dyrt om en förändring krävs Därav planerar vi noga i den närstående framtiden och översiktligt längre fram Planering påverkar många människor Därmed behöver vår kommunikation vara effektiv och enkel Hur planerar vi? Planer kan inte användas för att kontrollera händelser Man kan inte kontrollera händelser, man kan endast kontrollera reaktioner Planer måste vara ärliga, och inkludera all information som finns till dags dato Om planer går åt skogen så är det vanligt att planeraren försöker dölja detta Detta görs på grund av rädsla Vi känner oss säkra i ett samhälle med fungerande lagar och rättsystem Därför behöver vi det även för mjukvaruutveckling 07-03-21 Martin Karlsson - XP 3 07-03-21 Martin Karlsson - XP 4 XP Bill of Rights Kundens rättigheter Kunden har rätt att planera kostnader och alternativ över hela projektet Kunden har rätt att bestämma veckoliga utvecklingsprioriteter Kunden har rätt att se hur långt systemet har kommit i form av ett fungerande system i slutet på första veckan, och att se mer funktionalitet varje vecka Kunden har rätt till bra och dåliga uppdateringar av planeringen, så fort som informationen är tillgänglig Kunden har rätt att ändra sig utan att betala orimligt mycket mer XP Bill of Rights Programmerarens rättigheter Programmeraren har rätt att skatta arbetstid och få de uppskattningarna respekterade av alla deltagande Programmeraren har rätt att ärligt rapportera fortgång Programmeraren har rätt att producera högkvalitativt arbete hela tiden Programmeraren har rätt att veta vad som är viktigaste att jobba med härnäst. Programmeraren har rätt att ställa affärsmässiga frågor närhelst de dyker upp 07-03-21 Martin Karlsson - XP 5 07-03-21 Martin Karlsson - XP 6 1

XP Bill of Rights Chefens rättigheter Chefen har rätt till en total uppskattning av kostnader och resultat, medgett att verkligheten kommer att se annorlunda ut Chefen har rätt att flytta folk mellan projekt utan orimliga kostnader Chefen har rätt att se månatliga uppdateringar av utvecklingen, och hjälpa kunden med att prioritera Chefen har rätt att lägga ned projektet och ändå erhålla ett system som fungerar enligt investeringen fram till det datumet Det projekt som inte följer dessa rättigheter är inte ett Extreme Programming-projekt 07-03-21 Martin Karlsson - XP 7 De fyra variablerna Kostnad Att lägga in mer pengar brukar innebära att hyra in mer folk i projektet Då kan man dock få kommunikationsproblem Och det blir en introduktionsfas för de nyanställda Lägga pengar på verktyg Ger också en försening, på grund av inlärningskurvor Men kan öka motivationen (en ny dator är alltid trevligt, särskilt om den är vit) Att lägga pengar på övertid Brukar göra utvecklarna omotiverade 07-03-21 Martin Karlsson - XP 8 De fyra variablerna Kvalitet Intern kvalitet Hur bra är mjukvaruarkitekturen. hur väldesignade är testen, m.m. Tiden ökar omedelbums vid dålig intern kvalitet Extern kvalitet Upplevd kvalitet ur kundens synvinkel Omfattningen ökar vid dålig extern kvalitet Så försök skapa stories i omfattningen som tar hand om bra sådan här extern kvalitet (ex. användbarhetsmål och andra icke-funktionella krav) De fyra variablerna Tid och omfattning De två enklaste variablerna att justera Men resultaten av justeringarna är mycket svåra att se Så vi måste synliggöra dessa Då kostnad och kvalitet kommer att påverkas direkt av justeringar av tid och omfattning, fokusera planeringsspelet på de två senare variablerna 07-03-21 Martin Karlsson - XP 9 07-03-21 Martin Karlsson - XP 10 The Driving Metaphor Mjukvaruutveckling är en process Som kan gå bra Som kan gå dåligt För att få det att gå hyggligt, så behöver vi styra, kontinuerligt, hela tiden - "Driving is not about getting the car pointed in the right direction." I was ready to listen now. "Driving is about constant adjustment. A little this way, a little that way, forever. You always pay attention. You are always prepared to change things. Kent Beck citerar sin mor Målet Målet är att maximera värdet av systemet som produceras. Strategin Strategin är att investera så lite som möjligt för att sätta den viktigaste funktionaliteten i produktion så fort som möjligt. Verktyget Små lappar CRC cards / story cards. Spelarna Affärsfolket och utvecklingsteamet, samt användarna 07-03-21 Martin Karlsson - XP 11 07-03-21 Martin Karlsson - XP 12 2

Stories Kravet på en Story är att den är oberoende, testbar och att den tillför ett tydligt värde. Stories skall göras så pass små och lättbegripliga att ett flertal kan utvecklas och testas inom varje iteration. Stories Stories måste vara lätta att förstå för kunden Stories är bara en överenskommelse mellan kund och utvecklare att de ska diskutera en feature tillsammans Varje story måste ge värde för kunden Stories får inte vara större än att man kan bygga några stycken under en iteration Stories ska vara fristående ifrån varandra Varje story måste vara mätbar/testbar 07-03-21 Martin Karlsson - XP 13 07-03-21 Martin Karlsson - XP 14 Exempelstory (CRC-card) Ansvarsområden Affärsfolket bestämmer Tider Omfattning Prioritet Utvecklarna bestämmer Hur lång tid saker tar Tillsammans bestämmer man Hastigheten Antal Stories man kan uppfylla under en iteration 07-03-21 Martin Karlsson - XP 15 07-03-21 Martin Karlsson - XP 16 Estimeringar Yesterday s weather Ett visst lands meteorologiska institut köpte en spå-vädermaskin för en gazillion pengar. Den förutspådde väder med 70% korrekthet. De som betalade notan var imponerade. Sedan kom någon på att man får samma korrekthet om man förutsätter att morgondagens väder är samma som idag. Som bas för planeringen, förutsätt att du gör lika mycket denna veckan som du gjorde förra veckan Basera din estimering på liknande stories Keep it simple, silly! Om du säger ja till för mycket, för lång tid framöver, så kommer utvecklingen vara dolt i en dimma Estimeringar Det är vanligt att en story inte går att estimera Det ska vara enkelt för en användare att diagnosticera symptom Vi behöver fråga beställaren/användaren vad som menas för att göra ett korrekt estimat enkelt = enkelt att starta diagnosprocessen Användaren kanske ser typiska ikoner på skärmen att klicka på snabbt och enkelt? Utvecklare behöver inte jättedetaljerade stories, bara möjligheten att få en del stories förtydligade Använd spikes för att lättare estimera 07-03-21 Martin Karlsson - XP 17 07-03-21 Martin Karlsson - XP 18 3

Spelets gång Spelet har tre faser: Exploration, Commitment, Steering Exploration Skriv en story (Affärsfolk) Estimera den (Utvecklingsteamet) Dela upp den i delar om det behövs (Tillsammans) Commitment Sortera på affärsvärde (Affärsfolk) Sortering i tre högar. (1) De som gör att systemet fungerar. (2) De som inte är livsnödvändiga. (3) De som skulle vara trevliga att ha. Sortera på risk (Utveckling) Sortering i tre högar. (1) De som är lätta att estimera. (2) De som är lite svårare att estimera. (3) De som inte går att estimera. Sätt hastigheten (Tillsammans) Hur snabbt kan vi bygga systemet? Bestäm omfattning (Affärsfolk) Ett antal kort väljs ut för första releasen. 07-03-21 Martin Karlsson - XP 19 07-03-21 Martin Karlsson - XP 20 Steering Iteration (1-3 veckor) Affärsfolket väljer en mängd värdefulla stories som fyller en iteration. De måste garantera att systemet kan köras end-toend. Recovery b Om Utvecklingsteamet inser att de har överskattat hastigheten, kan en omvärdering ske med Affärsfolket. New story Affärsfolket kan lägga till en ny story, men måste då plocka bort en som har lika stort estimat. Reestimate Om Utvecklingsteamet känner att tidsplanen inte håller, kan en omestimering ske tillsammans med Affärsfolket. 07-03-21 Martin Karlsson - XP 21 Shopping for Stories Hur skulle det se ut om planering av mjukvaruutveckling såg likadan ut som om man planerar för att handla matvaror? Stories = Matvaror Estimeringar = Priser Hastighet = Budget Vi kan se följande analogier Rabatter - Hallå mjukvaruhandlare, nu får ni två stories för en! Inflation - På grund av omständigheter utanför vår kontroll så är nu priset på snygg grafik det dubbla! Veckohandlande - Iterationsplanering 07-03-21 Martin Karlsson - XP 22 Den första planen Den första planen har ingen historik att stödja sig på Två huvudproblem Storleken på varje story Teamets hastighet Mät hastigheten när ni skriver stories från början, låt story-skrivarna estimera hur lång tid de tror att det tar och använd den relationen i hastighetsplaneringen Iterationsplanering Iterationsplaneringen ägs av utvecklingsgruppen, dock i samförstånd med kunden naturligtvis Iterationsplaneringen synkas till programmeringsrytmen Någon vecka är tillräckligt för att Utveckla lite ny funktionalitet Göra en rejäl refaktorisering Prova lite nya och avancerade saker (spikes) Återhämta projektet från smärre misslyckanden 07-03-21 Martin Karlsson - XP 23 07-03-21 Martin Karlsson - XP 24 4

Iterationsplanering Vanliga programmeringsuppgifter tar ungefär tre ideala dagar Uppgifterna består av nedbrutna stories Görs eftersom det är enklare att mäta uppgifter än hela stories En person håller reda på hur mycket som har gjorts, hur mycket som är kvar och eventuella problem som kan uppstå (Spåraren) Det viktigaste inom planering för extreme programming är att deadlines är hårda, och att det är omfattningen man ändrar på Iterationsplanering Hitta billigaste resan Olika resesätt - MK 2 Olika datum - MK 3 Specialerbjudanden - SG 3 Alternativa resvägar - SG 3 Boka hotell Interface för hotellbokning - SG 2 Adapter för Best Western - NR 2 Adapter för Holiday Inn - NR 2... 07-03-21 Martin Karlsson - XP 25 07-03-21 Martin Karlsson - XP 26 Tracking Trackern / Spåraren frågar programmerarna hur de ligger till ungefär två gånger i veckan Trackern besöker varje programmerare enskilt, inga gruppmöten, inga rapporter! Två frågor ställs Hur många ideala dagar har du arbetat på det här? Hur många fler ideala dagar behöver du tills du är klar? Be aldrig om ett procentuellt svar. Det ger ingenting. Jämför med antal kalenderdagar kvar och se om iterationen behöver planeras om Tracking En en-veckas iteration slutar när en vecka har gått Stories som är klara, är klara Stories som inte är klara, planeras om på nästa iterationsplaneringsmöte En story är klar när dess funktionalitet har visats för kunden och kunden har gett tumme upp till att funktionaliteten fyller det som efterfrågades 07-03-21 Martin Karlsson - XP 27 07-03-21 Martin Karlsson - XP 28 Tracking Uppgift Vem Klart Kvar Olika resesätt MK 2 0 Olika datum MK 2 0 Specialerbjudanden SG 2 1 Alternativa resvägar SG 3 0 Interface för hotellbokning SG 1 1 Adapter för Best Western NR 2 0 Adapter för Holiday Inn NR 0.5 1.5 Totalt för teamet 12.5 3.5 Synlighet Använd inte föregående tracking som bevis på att ni mäter och visa upp hur det går för enskilda medlemmar Visa grafer tydligt på väggen i utvecklingsrummet eller liknande Visa exempelvis följande grafer Sammanlagt fullföljda stories per dag Antal integrationer per vecka Antal större test per vecka Antal buggar (den här är trevlig att se!) Antal optimala parprogrammeringstimmar 07-03-21 Martin Karlsson - XP 29 07-03-21 Martin Karlsson - XP 30 5

Synlighet Aktiviteter 07-03-21 Martin Karlsson - XP 31 07-03-21 Martin Karlsson - XP 32 Aktiviteter 07-03-21 Martin Karlsson - XP 33 6