eXtreme Programming Teknik i Media BITS Peter Antman CTO
Extreme Programming Komplexitet
Traditional Cost of Change
Hur hantera? Abstraktion
Disciplin
Conceptual integrity
Olika modeller Olika modeller Vattenfall
Iterationer
RUP Men i grunden de samma Prioriterar design (intellekt över materia).
Olika modeller Jag har pratat mycket om det. Typiska ord: Ta höjd
Generallisera
Tänka igenom
Planera
Olika modeller Men jobbar vi verkligen så?
Extreme Programming XP
Extreme Programming Vill ta fasta på hur utveckling verkligen sker? Vänder på själva grundförutsättningen. Eftersom mjukvara är så komplext skall man bara göra det man verkligen behöver.
Extreme Programming Om programmering är så komplext och dessutom sker i en starkt föränderlig omvärld vet vi att föränding kommer att ske. Den gamla modellen går ut på att motverka förändringen genom att försöka förutse den. Men om det inte går?
Extreme Programming XP menar att man skall se det tvärtom. Eftersom förändring (osäker kunskap om framtiden) är en essentiell del av utveckling bör denna göras till grunden för utvecklingsprocessen.
Extreme Programming Genom att bygga in möjligheten till förändring kan man förändra kostnaden för förändring.
XP – Cost of Change
XP – de tolv satserna Vad går XP ut på mer precis? Är det bara att hacka i väg? I själva verket en starkt styrd process. Kan sammanfattas i tolv satser.
XP – de tolv satserna Kan delas in i tre grupper av aktiviteter Kodningsaktiviteter
Utvecklingsaktiviteter
Affärsaktiviteter
XP – Kodning 1. Koda och designa enkelt Mål: Att skapa mjukvara som är enkel att förändra 2. Refaktorera hänsynslöst Mål: Att hitta den optimala designen 3. Utveckla kodstandarder Mål: Att tydligt kommunicera ideer  via  koden 3. Utveckla en gemensam vokabulär Mål:Att tydligt kommunicera ideer  om  koden
XP – Utveckling 1. Använd testdriven programmering Mål: Att bevisa att koden verkligen fingerar 2. Praktiser parprogrammering Mål: Att sprida kunskap, erfarenhet och ideer 3. Set till att koden ägs kollektivt Mål: Att sprida ansvaret för koden genom hela organisationen 4. Integrera kontinuerligt Mål: att minska effekten av nya features
XP – Affärer 1. Lägg till en Kund till teamet Mål: Att ta tag i kundönskemål direkt och korrekt 2. Spela “planeringsspelet” Mål: Att schemalägga det viktigaste arbetet 3. Släpp releaser regelbundet Mål: Låta kunden få tillbaka sin investering ofta 4. Arbeta i ett uthålligt tempo Mål: Att gå hem trött, men inte utmattad
XP – Händelser Ha en kund Spela planeringsspelet Skriv en historia (Story Card) om varje feature Skriv features för historierna – uppskatta tid Med kunden väljs en eller flera Storys ut som: Är viktiga
Går att skapa på 3-4 veckor Börja med en feature Skriv tester för den Implementera den så enkelt som möjligt
XP – Händelser Se till att den finns i CVS Se till att den testas/integreras regelbundet Gör direkt återkoppling om det drar ut på tiden. Skapa en release Installera hos kund. Börja om med nya Stories.
XP – Processen XP är en komplett process. Förespråkarna hävdar att allt måste vara med – annars är det inte XP. Det ligger mycket i det – men det finns några saker som är mer grundläggande än andra.
XP – Processen Utgå från Kodandet. Många säger idag att de kodar XP Finns det ingen riskt att “koda XP” bara blir ett sätt att täcka upp för att man kodar “slarvigt”? JO!
XP – Processen Grundpelarna i kodningen (som fått starkt genomslag) Bygg bara det du vet att du skall ha (“ta inte höjd”)
Skapa små system som växer inkrementellt
Ta aldrig med något du inte vet att behöver
Gör det enklaste som överhuvud taget funkar
Faktorerar om hela tiden (har du gjort något förut, kolla hur du kan återanvända det)
XP – Processen De flesta saker vi bygger blir ganska stora tillslut. XP för med sig att ett system kommer genomgå radikala förändringar under sin utvecklingstid Systemet i konstant flux.
XP – Processen Jag har sett massor av system byggas just så (under Internet time). I princip inget har varit XP. Varför?
XP – Processen INGA TESTER!
XP – Processen Grunden i XP är tester. Tester av kod, funktioner och integration. Utan detta är det inte XP. För det är testerna som gör att förändringen blir kontrollerbar.
XP – Processen Ännu hårdare: Man använder bara XP om man FÖRST skriver tester och sedan implementationen.
XP – Processen Tester blir nästan aldrig (ordentligt) skrivna om de görs förs i efterhand. Implementationerna innehåller nästan alltid “för mycket” om man inte skriver testen först.
XP – Processen Grunden i XP (enligt Antman) Det du inte orkar/kan/förstår hur du skall skriva en test för går under “You aren't gonna need it”.
XP – Processen Att koda “XP-stil” utan tester är som att köra “One night stand utan skydd” Vi har alla höra/eller själva kört med ursäkterna:
XP – Processen Den övermodiga: - “Jag vet vad jag gör, det händer inte mig” Den slarviga: - “Det gick så snabbt, jag hade inte tid” Den osäkra: - “Jag vågade inte säga ifrån”
XP – Processen Vi har alla hört precis samma ursäkter under utvecklingsarbete – eller hur!
XP – Processen Men om vi inte kör XP och ändå vill ha kvalitet. Då återstår faktiskt i grunden bara den gamla modellen! Den är dyr, krävande och fast den funnits som modell i 30-år tycks ingen hantera den.
XP – Processen Därför XP - seriöst.

eXtreme Programming

  • 1.
    eXtreme Programming Tekniki Media BITS Peter Antman CTO
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
    Olika modeller Olikamodeller Vattenfall
  • 8.
  • 9.
    RUP Men igrunden de samma Prioriterar design (intellekt över materia).
  • 10.
    Olika modeller Jaghar pratat mycket om det. Typiska ord: Ta höjd
  • 11.
  • 12.
  • 13.
  • 14.
    Olika modeller Menjobbar vi verkligen så?
  • 15.
  • 16.
    Extreme Programming Villta fasta på hur utveckling verkligen sker? Vänder på själva grundförutsättningen. Eftersom mjukvara är så komplext skall man bara göra det man verkligen behöver.
  • 17.
    Extreme Programming Omprogrammering är så komplext och dessutom sker i en starkt föränderlig omvärld vet vi att föränding kommer att ske. Den gamla modellen går ut på att motverka förändringen genom att försöka förutse den. Men om det inte går?
  • 18.
    Extreme Programming XPmenar att man skall se det tvärtom. Eftersom förändring (osäker kunskap om framtiden) är en essentiell del av utveckling bör denna göras till grunden för utvecklingsprocessen.
  • 19.
    Extreme Programming Genomatt bygga in möjligheten till förändring kan man förändra kostnaden för förändring.
  • 20.
    XP – Costof Change
  • 21.
    XP – detolv satserna Vad går XP ut på mer precis? Är det bara att hacka i väg? I själva verket en starkt styrd process. Kan sammanfattas i tolv satser.
  • 22.
    XP – detolv satserna Kan delas in i tre grupper av aktiviteter Kodningsaktiviteter
  • 23.
  • 24.
  • 25.
    XP – Kodning1. Koda och designa enkelt Mål: Att skapa mjukvara som är enkel att förändra 2. Refaktorera hänsynslöst Mål: Att hitta den optimala designen 3. Utveckla kodstandarder Mål: Att tydligt kommunicera ideer via koden 3. Utveckla en gemensam vokabulär Mål:Att tydligt kommunicera ideer om koden
  • 26.
    XP – Utveckling1. Använd testdriven programmering Mål: Att bevisa att koden verkligen fingerar 2. Praktiser parprogrammering Mål: Att sprida kunskap, erfarenhet och ideer 3. Set till att koden ägs kollektivt Mål: Att sprida ansvaret för koden genom hela organisationen 4. Integrera kontinuerligt Mål: att minska effekten av nya features
  • 27.
    XP – Affärer1. Lägg till en Kund till teamet Mål: Att ta tag i kundönskemål direkt och korrekt 2. Spela “planeringsspelet” Mål: Att schemalägga det viktigaste arbetet 3. Släpp releaser regelbundet Mål: Låta kunden få tillbaka sin investering ofta 4. Arbeta i ett uthålligt tempo Mål: Att gå hem trött, men inte utmattad
  • 28.
    XP – HändelserHa en kund Spela planeringsspelet Skriv en historia (Story Card) om varje feature Skriv features för historierna – uppskatta tid Med kunden väljs en eller flera Storys ut som: Är viktiga
  • 29.
    Går att skapapå 3-4 veckor Börja med en feature Skriv tester för den Implementera den så enkelt som möjligt
  • 30.
    XP – HändelserSe till att den finns i CVS Se till att den testas/integreras regelbundet Gör direkt återkoppling om det drar ut på tiden. Skapa en release Installera hos kund. Börja om med nya Stories.
  • 31.
    XP – ProcessenXP är en komplett process. Förespråkarna hävdar att allt måste vara med – annars är det inte XP. Det ligger mycket i det – men det finns några saker som är mer grundläggande än andra.
  • 32.
    XP – ProcessenUtgå från Kodandet. Många säger idag att de kodar XP Finns det ingen riskt att “koda XP” bara blir ett sätt att täcka upp för att man kodar “slarvigt”? JO!
  • 33.
    XP – ProcessenGrundpelarna i kodningen (som fått starkt genomslag) Bygg bara det du vet att du skall ha (“ta inte höjd”)
  • 34.
    Skapa små systemsom växer inkrementellt
  • 35.
    Ta aldrig mednågot du inte vet att behöver
  • 36.
    Gör det enklastesom överhuvud taget funkar
  • 37.
    Faktorerar om helatiden (har du gjort något förut, kolla hur du kan återanvända det)
  • 38.
    XP – ProcessenDe flesta saker vi bygger blir ganska stora tillslut. XP för med sig att ett system kommer genomgå radikala förändringar under sin utvecklingstid Systemet i konstant flux.
  • 39.
    XP – ProcessenJag har sett massor av system byggas just så (under Internet time). I princip inget har varit XP. Varför?
  • 40.
    XP – ProcessenINGA TESTER!
  • 41.
    XP – ProcessenGrunden i XP är tester. Tester av kod, funktioner och integration. Utan detta är det inte XP. För det är testerna som gör att förändringen blir kontrollerbar.
  • 42.
    XP – ProcessenÄnnu hårdare: Man använder bara XP om man FÖRST skriver tester och sedan implementationen.
  • 43.
    XP – ProcessenTester blir nästan aldrig (ordentligt) skrivna om de görs förs i efterhand. Implementationerna innehåller nästan alltid “för mycket” om man inte skriver testen först.
  • 44.
    XP – ProcessenGrunden i XP (enligt Antman) Det du inte orkar/kan/förstår hur du skall skriva en test för går under “You aren't gonna need it”.
  • 45.
    XP – ProcessenAtt koda “XP-stil” utan tester är som att köra “One night stand utan skydd” Vi har alla höra/eller själva kört med ursäkterna:
  • 46.
    XP – ProcessenDen övermodiga: - “Jag vet vad jag gör, det händer inte mig” Den slarviga: - “Det gick så snabbt, jag hade inte tid” Den osäkra: - “Jag vågade inte säga ifrån”
  • 47.
    XP – ProcessenVi har alla hört precis samma ursäkter under utvecklingsarbete – eller hur!
  • 48.
    XP – ProcessenMen om vi inte kör XP och ändå vill ha kvalitet. Då återstår faktiskt i grunden bara den gamla modellen! Den är dyr, krävande och fast den funnits som modell i 30-år tycks ingen hantera den.
  • 49.
    XP – ProcessenDärför XP - seriöst.