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

Relevanta dokument
XP-projekt: En fördjupning

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

Agil programutveckling

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

12 principer of agile practice (rörlig)

Agile-metoder, XP och ACSD

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

Linköpings universitet 1

Användarcentrerad systemdesign

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

Kritik av Extrem Programmering

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

Användarcentrerad systemdesign

Användning av Erasmus+ deltagarrapporter för uppföljning

Modern utvecklingsmetodik. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag

Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt

Psykosocial enkät. 191 svar av 354 möjliga: 54% 2014: 172 av 333 = 52% 2011: 68%

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

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

extreme Programming refactored - recension och analys av Kent Becks senaste definition av XP

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


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

Provlektion Just Stuff B Textbook Just Stuff B Workbook

2203$ ) UHOlVQLQJ. Varför fungerar XP Några motiveringar till varje regel efter Beck. Innehåll. Planeringsspelet

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Stad + Data = Makt. Kart/GIS-dag SamGIS Skåne 6 december 2017

Andy Griffiths Age: 57 Family: Wife Jill, 1 kid Pets: Cats With 1 million SEK he would: Donate to charity and buy ice cream

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive

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

Några grundläggande begrepp

To Lauren Beukes Tune: Top of the World Written by Marianna Leikomaa

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Projektuppgift.

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

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018

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

Read Texterna består av enkla dialoger mellan två personer A och B. Pedagogen bör presentera texten så att uttalet finns med under bearbetningen.

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

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

BESKRIVNING AV PROCESSMETODEN SCRUM

Planeringsspelets mysterier, del 1

BOENDEFORMENS BETYDELSE FÖR ASYLSÖKANDES INTEGRATION Lina Sandström

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Teknikprogrammet Klass TE14A, Norrköping. Jacob Almrot. Självstyrda bilar. Datum:

Avoid Over Planning Your Next Trip: Why Less Planning is the Best Plan

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

Politikerdag 2013 Från GIS till Geografisk förståelse. Lars Backhans

Agil projektmetodik Varför och vad är det?

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05

Focus on English 9. PROVLEKTION: Starta läsåret! Följande provlektion är ett utdrag ur Focus on English 9 Textbook. Lektionen består av:

Teenage Brain Development

TDP023 Projekt: Agil systemutveckling

Extreme Programming En bra metod?

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban

Utvärdering SFI, ht -13

Writing with context. Att skriva med sammanhang

Kvalitativ design. Jenny Ericson Medicine doktor och barnsjuksköterska Centrum för klinisk forskning Dalarna

samhälle Susanna Öhman

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

Hur leder vi transformationer?

Uppgift v1: Teststrategi i sammanhang Terese Berger. Teststrategi. Projekt CiviCRM. Version 0.9. Sida 1(7)

CREATING VALUE BY SHARING KNOWLEDGE

F4 Testning och Parprogrammering i XP EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH

Beijer Electronics AB 2000, MA00336A,

CONNECT- Ett engagerande nätverk! Paula Lembke Tf VD Connect Östra Sverige

Ingenjörsmässig Problemlösning -TOOLKIT-

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

Att stödja starka elever genom kreativ matte.

Förskola i Bromma- Examensarbete. Henrik Westling. Supervisor. Examiner

Lars Lindmark 28 juni Designstuga. ett designlabb för hållbar utveckling. Beskrivning designstuga, sida 1

F6 Arkitektur, Planering

Adding active and blended learning to an introductory mechanics course

Protokoll Föreningsutskottet

Engelska åk 5 höstterminen 2013

App analytics TDP028

EFFEKTIVA PROJEKT MED WEBBASERAD PROJEKTLEDNING

Kravsammanställning. Förstudie verksamhetsstödjande. Drift & Förvaltning. Affärs-/ processutveckling. Analys & Design. Konstruktion Test Införande

Du fulländar mig! Om synergierna mellan agila metoder och UX. Joakim Holm Adaptiv AB. Erik Hammarström Antrop AB

Användbarhet i sitt sammanhang

Projektarbete DAVC20

agil projektledning CE E86C7B9BE4BB2FD43E7A902 Agil Projektledning 1 / 6

Styrteknik: Binära tal, talsystem och koder D3:1

Kvalitativ design. Jenny Ericson Doktorand och barnsjuksköterska Uppsala universitet Centrum för klinisk forskning Dalarna

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum:

Service och bemötande. Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC

Design för användbarhet Designexempel, hur tänkte man vid designen?

Scrum + XP samt konsekvensanalys

Utveckla samarbete inom avdelningen. Utveckla samarbetet. mini workshop! i butikens ledningsgrupp. Grid International AB. Grid International AB

SCRATCH är ett nytt programmeringsspråk som gör att du kan skapa dina egna interaktiv historier, animationer, spel, musik och konst.

Mina målsättningar för 2015

Agil testning i SCRUM

Join the Quest 3. Fortsätt glänsa i engelska. Be a Star Reader!

F4 Testning och Parprogrammering i XP. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH

DevOps i Verkligheten

Obemannade flygplan. Namn: Hampus Hägg. Datum: Klass: TE14B. Gruppmedlemmar: Gustav, Emilia, Henric och Didrik

Resa Logi. Logi - Hitta boende. Logi - Boka. Fråga om vägen till olika former av boenden. ... ett rum att hyra?... a room to rent?

Resa Logi. Logi - Hitta boende. Logi - Boka. Fråga om vägen till olika former av boenden. ... a room to rent?... ett rum att hyra?

Transkript:

Embrace Change! Note to programmers Extreme programming Even programmers can be whole people in the real world. Extreme Programming is an opportunity to test yourself, to be yourself, to realize that maybe you ve been fine all along and just hanging with the wrong crowd. - Kent Beck Martin Karlsson marka@itn.liu.se K7522 011 36 34 63 07-03-19 Martin Karlsson - XP 2 Vad är Extreme Programming XP är ett påhitt av Kent Beck m.fl., men det är Beck som brukar få beröm eller bära fårahuvudet. XP är en iterativ lättviktsmetod för små till mellanstora projektteam som utvecklar mjuk-vara som antingen är vagt specificerad eller där förutsättningarna kan ändras utan förvarning XP är sunt förnuft Varför heter det då extrem programmering? Extreme Programming? XP tar det sunda förnuftet och drar det till sin spets. XP lovar två saker Att programmerarna varje dag ska få hålla på med något de anser vara meningsfullt. Att de ska slippa bemöta otäcka situationer ensamma och att de får ta besluten som de kan ta bäst själva. Att kunden och ledningen får ut mesta möjliga värde ur varje programmeringsvecka. Att kunden och ledningen får se resultat under utvecklingens gång och att de ska kunna ändra projektets riktning när det behövs. 07-03-19 Martin Karlsson - XP 3 07-03-19 Martin Karlsson - XP 4 Fyra basaktiviteter 12 Practices / sedvanor Designa Testa Koda Lyssna Om kodinspektion är bra, låt oss kodinspektera hela tiden. (Parprogrammering) Om testning är bra, låt oss testa hela tiden (enhetstestning, acceptanstestning med kund) Om designstrategier är bra, låt oss göra det på daglig bas (omfaktorisering) Om enkelhet är bra, låt oss göra den enklaste design som går (enkel design) Om arkitektur är viktigt, låt alla tillsammans definiera och omarbeta arkitekturen (systemmetafor, kollektivt kodägande, kodstandard) Om integrationstest är bra, låt oss integrera och testa varje dag (kontinuerlig integration) Om korta iterationer är bra, så gör vi dem rejält korta (Planeringsspelet, kort releasecykel). Om team-motivation är bra, låt oss skapa det (40-timmarsvecka) 07-03-19 Martin Karlsson - XP 5 07-03-19 Martin Karlsson - XP 6 1

Extreme Programming? Vad är då nytt med XP? XP tar alla dessa sedvanor under sitt paraply, och utelämnar ingen XP ser till att sedvanorna används till sin spets XP ser till att sedvanorna stöder varandra Extreme Programming? XP skiljer sig från andra metoder för Dess tidiga, konkreta och kontinuerliga feedback från korta cykler Dess inkrementella, iterativa approach som snabbt kommer upp med en grundläggande utvecklingsplan Dess förmåga att flexibelt schemalägga funktionalitetsimplementation som motsvarar kundens behov. 07-03-19 Martin Karlsson - XP 7 07-03-19 Martin Karlsson - XP 8 Extreme Programming? Cost of Change Dess tillit till automatiska test skrivna av programmerare och kunder för att övervaka projektets framsteg. Dess tillit till oral kommunikation, test och källkod för att kommunicera projektets mål. Dess tillit till det nära samarbetet mellan vanliga programmerare. Dess tillit till vanliga sedvanor inom systemutveckling Dessa förhållanden bidrar till att vi kan platta till en exponentiella tillväxten på förändringskostnaden. Cost Time Cost Time 07-03-19 Martin Karlsson - XP 9 07-03-19 Martin Karlsson - XP 10 Risker Det grundläggande problemet inom mjukvaruutveckling är risker. Exempel på risker: Försening Nedläggning Bäst-före-datum passeras Buggar Missförstådd kund Ändrad marknad Feature-false Hat från utvecklarna De fyra variablerna De kontrollvariabler, resurser, som finns i ett utvecklingsprojekt är följande: Kostnad Tid Kvalitet Omfattning 07-03-19 Martin Karlsson - XP 11 07-03-19 Martin Karlsson - XP 12 2

De fyra (fem) värdena Kommunikation A little Consideration, a little Thought for Others, makes all the difference. - Eeyore Enkelhet Pooh hasn't much Brain, but he never comes to any harm. He does silly things and they turn out right. - Piglet Feedback Well, either a tail is or isn't there. You can't make a mistake about it. And yours isn't there! - Pooh Mod It is hard to be brave, when you're only a Very Small Animal. - Piglet R e s p e k t Grundläggande principer Konkret och snabb feedback Förutsätt enkelhet Stegvis förändring Satsa på kvalitet Anamma förändring (Embrace change!) 07-03-19 Martin Karlsson - XP 13 07-03-19 Martin Karlsson - XP 14 Arbetsmiljön 12 Practices / sedvanor Om man inte har en trevlig arbetsplats, så har man inte ett trevligt arbete Om man inte har ett trevligt arbete, så blir inte arbetet man utför bra Mod att förändra sin arbetsplats! Planeringsspelet Kort releasecykel Systemmetafor Enkel design Tester Omfaktorisering Parprogrammering Kollektivt kodägande Kontinuerlig integration Fyrtiotimmarsvecka Kund på plats Kodstandard 07-03-19 Martin Karlsson - XP 15 07-03-19 Martin Karlsson - XP 16 Planeringsspelet Varken affärsfrågor eller teknikfrågor ska få ta överhanden Affärsfolkets bekymmer: Omfattning Prioriteringar Sammansättningen av en release Releasedatum Utvecklarnas bekymmer: Estimeringar Följder Processen Detaljerad schemaläggning Spikes Korta releasecykler Så små releaser som möjligt Så mycket affärsvärde som möjligt Releasen ska vara fullständig, dvs. man kan inte släppa ett program med ofullständig funktionalitet, bara med begränsad funktionalitet. Det är bättre att planera en månad eller två i taget, istället för ett halvår. 07-03-19 Martin Karlsson - XP 17 07-03-19 Martin Karlsson - XP 18 3

Metafor Hitta en bra metafor för projketet Kommunicerar pudelns kärna till alla inblandande parter, beställare såväl som utvecklare Manifesterar en samsyn på vad som ska göras Styr allas aktiviteter mot målet Metafor istället för arkitekturplan En 10 000-metersvy av systemet En sammanhängande story av systemet Enkel design Den rätta designen för ett system vid vilken tidpunkt som helst är att: Alla tester går igenom Det inte har någon kod dubblerad (redundans) Once and Only Once Det fastlår viktiga avsikter för programmerarna Det har det minsta möjliga antalet klasser och metoder Put in what you need, when you need it Systemet ska via kod och tester kommunicera allt du vill att det ska kommunicera 07-03-19 Martin Karlsson - XP 19 07-03-19 Martin Karlsson - XP 20 Tester Ingen programfunktionalitet utan test finns. Programmerare skriver enhetstest för att de själva ska känna sig trygga. Kunden skriver funktionstest så att deras tilltro till systemet och programmerarna ska öka Man behöver inte skriva tester för varje metod, bara för alla metoder som är produktions-specifika. Omfaktorisering Vårstäda vid behov Under skrivandets gång kommer problemet att ändra karaktär, förenkla alltid där du kan! Förenkla där du kan, även om det är någon annan som skrivit ursprungskoden! Om en programmerare ser ett fult sätt att få ett test att gå igenom på 1 minut, men även ett sätt som tar 10 minuter men ger enklare design, så är det andra alternativet som är det givna. 07-03-19 Martin Karlsson - XP 21 07-03-19 Martin Karlsson - XP 22 Parprogrammering Föraren tänker på det bästa sättet att implementera den aktuella metoden Observatören tänker strategiskt: Kommer det här att fungera i det stora hela? Finns det några testfall vi inte har kommit på? Finns det något sätt att förenkla systemet så att behovet av denna metoden försvinner? Kollektivt kodägande Vem som helst som ser en möjlighet att förenkla en design får göra så när som helst. Alla tar ansvar för alla delar i ett system. Ingen vet allt, men alla vet något om alla delar av systemet. 07-03-19 Martin Karlsson - XP 23 07-03-19 Martin Karlsson - XP 24 4

Kontinuerlig integration Kod integreras och testas fullständigt efter ett par timmar, upp till en dag som mest. Ett enkelt sätt att lösa detta är att ha en dator som är dedikerad för integration. Alla test måste fungera till 100% för att en integration ska godkännas. Fyrtiotimmarsvecka Work less, work smarter... Övertid är tid som spenderas på kontoret när du inte vill vara där. Då mår man dåligt, vilket innebär att övertid är dåligt. En andra vecka med övertid är fel. Prioritera om! Sustainable pace Så pass hög fart på utvecklingen så att det är lätt att styra (tillräcklig planering), men utan att skada sig om man trillar (jobba över, stress) 07-03-19 Martin Karlsson - XP 25 07-03-19 Martin Karlsson - XP 26 Kund på plats En "riktig kund" måste sitta med teamet, tillgänglig för att besvara frågor, lösa dispyter och sätta småskaliga prioriteter. Utan en kund på plats måste kraven vara väldigt mycket mer detaljerade och missförstånd kan lätt uppstå. Whole team Kund, beställare, ledning, användare, programmerare... alla ingår i teamet Det är aldrig vi mot dem Kodstandard Om du kommer att ha alla dessa programmerare hoppandes från den ena delen av systemet till den andra, bytandes partner ett par gånger per dag och konstant omarbeta varandras kod så har du helt enkelt inte råd att ha skilda kodvanor. Med lite övning så borde det bli omöjligt att säga vem i teamet som skrev vilken kod. Standarden bör sättas så att det blir minsta möjliga ansträngning. Standarden borde framhäva kommunikation. Slutligen, standarden måste antas frivilligt av hela teamet. 07-03-19 Martin Karlsson - XP 27 07-03-19 Martin Karlsson - XP 28 The practices support each other XP value stories Too much to do, too little time Säg: Jag har inte tid Säg: Jag har för mycket att göra Stand-up meetings The theory of constraints 45 90 60+ 15 Alltid minst en begränsning Fasister (sic!) 07-03-19 Martin Karlsson - XP 29 07-03-19 Martin Karlsson - XP 30 5

När XP inte fungerar Aktiviteter Kulturkrockar När ledningen vill styra allt För smarta programmerare Storleken har betydelse Fel fysisk miljö Kunden vill inte ta beslut på grundnivå När organisationen är emot 07-03-19 Martin Karlsson - XP 31 07-03-19 Martin Karlsson - XP 32 Aktiviteter Aktiviteter Release En helhet Acceptanstest Customers approval leder till Release 07-03-19 Martin Karlsson - XP 33 07-03-19 Martin Karlsson - XP 34 6