SlideShare a Scribd company logo
1 of 49
eXtreme Programming Teknik i Media BITS Peter Antman CTO
Extreme Programming Komplexitet
Traditional Cost of Change
Hur hantera? ,[object Object]
Disciplin
Conceptual integrity
Olika modeller Olika modeller ,[object Object]
Iterationer
RUP Men i grunden de samma Prioriterar design (intellekt över materia).
Olika modeller Jag har pratat mycket om det. Typiska ord: ,[object Object]
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 ,[object Object]
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: ,[object Object]
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) ,[object Object]
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.

More Related Content

Similar to eXtreme Programming

HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringAnton Tibblin
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingAnton Tibblin
 
Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.ADDQ
 
Revitalisering av legacy - är det möjligt - Joakim Lindbom
Revitalisering av legacy - är det möjligt - Joakim LindbomRevitalisering av legacy - är det möjligt - Joakim Lindbom
Revitalisering av legacy - är det möjligt - Joakim LindbomJoakim Lindbom
 
HT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerHT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerAnton Tibblin
 
HT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerHT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerAnton Tibblin
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningJohan Holmberg
 
Från planerande till agil företagskultur
Från planerande till agil företagskulturFrån planerande till agil företagskultur
Från planerande till agil företagskulturADDQ
 
HT18 - DA354A - Functions
HT18 - DA354A - FunctionsHT18 - DA354A - Functions
HT18 - DA354A - FunctionsAnton Tibblin
 
Hur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-serverHur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-serverMichael Boman
 
HT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerHT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerAnton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingAnton Tibblin
 
Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...
Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...
Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...Johan Holmberg
 
Kravställning i EPiServer 7
Kravställning i EPiServer 7Kravställning i EPiServer 7
Kravställning i EPiServer 77minds AB
 
HT15, DA354A - Funkioner
HT15, DA354A - FunkionerHT15, DA354A - Funkioner
HT15, DA354A - FunkionerAnton Tibblin
 
Säker utveckling med SDL
Säker utveckling med SDLSäker utveckling med SDL
Säker utveckling med SDLJohan Lindfors
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptAnton Tibblin
 

Similar to eXtreme Programming (20)

HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till Programmering
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programming
 
Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.Testare i continuousvärlden - vad gör jag om dagarna.
Testare i continuousvärlden - vad gör jag om dagarna.
 
Revitalisering av legacy - är det möjligt - Joakim Lindbom
Revitalisering av legacy - är det möjligt - Joakim LindbomRevitalisering av legacy - är det möjligt - Joakim Lindbom
Revitalisering av legacy - är det möjligt - Joakim Lindbom
 
HT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerHT19 - DA354A - Funktioner
HT19 - DA354A - Funktioner
 
HT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerHT22 - DA354A - Funktioner
HT22 - DA354A - Funktioner
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
 
Från planerande till agil företagskultur
Från planerande till agil företagskulturFrån planerande till agil företagskultur
Från planerande till agil företagskultur
 
HT18 - DA354A - Functions
HT18 - DA354A - FunctionsHT18 - DA354A - Functions
HT18 - DA354A - Functions
 
Hur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-serverHur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-server
 
HT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerHT16 - DA354A - Funktioner
HT16 - DA354A - Funktioner
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...
Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...
Introduktionsföreläsning i kursen Objektorienterad programmering och modeller...
 
TypeScript DevSum 2013
TypeScript DevSum 2013TypeScript DevSum 2013
TypeScript DevSum 2013
 
Kravställning i EPiServer 7
Kravställning i EPiServer 7Kravställning i EPiServer 7
Kravställning i EPiServer 7
 
HT15, DA354A - Funkioner
HT15, DA354A - FunkionerHT15, DA354A - Funkioner
HT15, DA354A - Funkioner
 
Säker utveckling med SDL
Säker utveckling med SDLSäker utveckling med SDL
Säker utveckling med SDL
 
Clean code
Clean codeClean code
Clean code
 
Test av mobila applikationer
Test av mobila applikationerTest av mobila applikationer
Test av mobila applikationer
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
 

More from Peter Antman

Core Protocols - A workshop
Core Protocols - A workshopCore Protocols - A workshop
Core Protocols - A workshopPeter Antman
 
Growing up with agile - how the Spotify 'model' has evolved
Growing up with agile - how the Spotify 'model' has evolved Growing up with agile - how the Spotify 'model' has evolved
Growing up with agile - how the Spotify 'model' has evolved Peter Antman
 
Fluent at agile - agile sverige 2014
Fluent at agile - agile sverige 2014Fluent at agile - agile sverige 2014
Fluent at agile - agile sverige 2014Peter Antman
 
Pirateship - growing a great crew: workshop facilitation guide
Pirateship - growing a great crew: workshop facilitation guidePirateship - growing a great crew: workshop facilitation guide
Pirateship - growing a great crew: workshop facilitation guidePeter Antman
 
Facilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exerciseFacilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exercisePeter Antman
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story WorkshopPeter Antman
 
Lean Canvas - a hypotheses board
Lean Canvas - a hypotheses boardLean Canvas - a hypotheses board
Lean Canvas - a hypotheses boardPeter Antman
 
Strong decisions with consensus, Agila Sverige 2014
Strong decisions with consensus, Agila Sverige 2014Strong decisions with consensus, Agila Sverige 2014
Strong decisions with consensus, Agila Sverige 2014Peter Antman
 
Stop the line @spotify
Stop the line @spotifyStop the line @spotify
Stop the line @spotifyPeter Antman
 
Tear Down the Pyramid Again - Agile Management from the trenches
Tear Down the Pyramid Again - Agile Management from the trenchesTear Down the Pyramid Again - Agile Management from the trenches
Tear Down the Pyramid Again - Agile Management from the trenchesPeter Antman
 
The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)Peter Antman
 
Java 1.5 - whats new and modern patterns (2007)
Java 1.5 - whats new and modern patterns (2007)Java 1.5 - whats new and modern patterns (2007)
Java 1.5 - whats new and modern patterns (2007)Peter Antman
 
Java Server Faces 1.2 presented (2007)
Java Server Faces 1.2 presented (2007)Java Server Faces 1.2 presented (2007)
Java Server Faces 1.2 presented (2007)Peter Antman
 
EJB 3.0 Walkthrough (2006)
EJB 3.0 Walkthrough (2006)EJB 3.0 Walkthrough (2006)
EJB 3.0 Walkthrough (2006)Peter Antman
 
Så funkar det (del 3) - webben
Så funkar det (del 3) -  webbenSå funkar det (del 3) -  webben
Så funkar det (del 3) - webbenPeter Antman
 
Så funkar det (del 2) - mail
Så funkar det (del 2) - mailSå funkar det (del 2) - mail
Så funkar det (del 2) - mailPeter Antman
 
Så funkar det (del 1) - word
Så funkar det (del 1) - wordSå funkar det (del 1) - word
Så funkar det (del 1) - wordPeter Antman
 
SCRUM at Polopoly - or building a lean culture
SCRUM at Polopoly - or building a lean cultureSCRUM at Polopoly - or building a lean culture
SCRUM at Polopoly - or building a lean culturePeter Antman
 

More from Peter Antman (20)

Core Protocols - A workshop
Core Protocols - A workshopCore Protocols - A workshop
Core Protocols - A workshop
 
Growing up with agile - how the Spotify 'model' has evolved
Growing up with agile - how the Spotify 'model' has evolved Growing up with agile - how the Spotify 'model' has evolved
Growing up with agile - how the Spotify 'model' has evolved
 
Fluent at agile - agile sverige 2014
Fluent at agile - agile sverige 2014Fluent at agile - agile sverige 2014
Fluent at agile - agile sverige 2014
 
Pirateship - growing a great crew: workshop facilitation guide
Pirateship - growing a great crew: workshop facilitation guidePirateship - growing a great crew: workshop facilitation guide
Pirateship - growing a great crew: workshop facilitation guide
 
Facilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exerciseFacilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exercise
 
User Story Workshop
User Story WorkshopUser Story Workshop
User Story Workshop
 
Lean Canvas - a hypotheses board
Lean Canvas - a hypotheses boardLean Canvas - a hypotheses board
Lean Canvas - a hypotheses board
 
Strong decisions with consensus, Agila Sverige 2014
Strong decisions with consensus, Agila Sverige 2014Strong decisions with consensus, Agila Sverige 2014
Strong decisions with consensus, Agila Sverige 2014
 
Lean Dot Game
Lean Dot Game Lean Dot Game
Lean Dot Game
 
Stop the line @spotify
Stop the line @spotifyStop the line @spotify
Stop the line @spotify
 
Tear Down the Pyramid Again - Agile Management from the trenches
Tear Down the Pyramid Again - Agile Management from the trenchesTear Down the Pyramid Again - Agile Management from the trenches
Tear Down the Pyramid Again - Agile Management from the trenches
 
Piemonte vin
Piemonte vinPiemonte vin
Piemonte vin
 
The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)
 
Java 1.5 - whats new and modern patterns (2007)
Java 1.5 - whats new and modern patterns (2007)Java 1.5 - whats new and modern patterns (2007)
Java 1.5 - whats new and modern patterns (2007)
 
Java Server Faces 1.2 presented (2007)
Java Server Faces 1.2 presented (2007)Java Server Faces 1.2 presented (2007)
Java Server Faces 1.2 presented (2007)
 
EJB 3.0 Walkthrough (2006)
EJB 3.0 Walkthrough (2006)EJB 3.0 Walkthrough (2006)
EJB 3.0 Walkthrough (2006)
 
Så funkar det (del 3) - webben
Så funkar det (del 3) -  webbenSå funkar det (del 3) -  webben
Så funkar det (del 3) - webben
 
Så funkar det (del 2) - mail
Så funkar det (del 2) - mailSå funkar det (del 2) - mail
Så funkar det (del 2) - mail
 
Så funkar det (del 1) - word
Så funkar det (del 1) - wordSå funkar det (del 1) - word
Så funkar det (del 1) - word
 
SCRUM at Polopoly - or building a lean culture
SCRUM at Polopoly - or building a lean cultureSCRUM at Polopoly - or building a lean culture
SCRUM at Polopoly - or building a lean culture
 

eXtreme Programming

  • 1. eXtreme Programming Teknik i Media BITS Peter Antman CTO
  • 4.
  • 7.
  • 9. RUP Men i grunden de samma Prioriterar design (intellekt över materia).
  • 10.
  • 14. Olika modeller Men jobbar vi verkligen så?
  • 16. 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.
  • 17. 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?
  • 18. 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.
  • 19. Extreme Programming Genom att bygga in möjligheten till förändring kan man förändra kostnaden för förändring.
  • 20. XP – Cost of Change
  • 21. 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.
  • 22.
  • 25. 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
  • 26. 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
  • 27. 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
  • 28.
  • 29. 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
  • 30. 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.
  • 31. 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.
  • 32. 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!
  • 33.
  • 34. Skapa små system som växer inkrementellt
  • 35. Ta aldrig med något du inte vet att behöver
  • 36. Gör det enklaste som överhuvud taget funkar
  • 37. Faktorerar om hela tiden (har du gjort något förut, kolla hur du kan återanvända det)
  • 38. 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.
  • 39. XP – Processen Jag har sett massor av system byggas just så (under Internet time). I princip inget har varit XP. Varför?
  • 40. XP – Processen INGA TESTER!
  • 41. 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.
  • 42. XP – Processen Ännu hårdare: Man använder bara XP om man FÖRST skriver tester och sedan implementationen.
  • 43. 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.
  • 44. 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”.
  • 45. 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:
  • 46. 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”
  • 47. XP – Processen Vi har alla hört precis samma ursäkter under utvecklingsarbete – eller hur!
  • 48. 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.
  • 49. XP – Processen Därför XP - seriöst.
  • 50.
  • 51. CVS
  • 53. XP – Processen Bacon Skapar en gemensam standard för hur projekt ser ut En massa viktiga targets redan färdiga. Anpassad för Tim BigBrother Eller skall vi byta till Maven?
  • 54. XP – Processen Bacon mkdir myproj cd myproj bacon -p [pra@pra myproj]$ ls bin doc lib local.properties properties src build.xml jars libexec project.xml resources
  • 55. XP – Processen Bacon – att bygga cd bin ./build.sh compile ./build.sh javadocs ./build.sh jar ./build.sh test
  • 56. XP – Processen Bacon – att skriva tester Inbyggt test-target. Bara att skriva JUnit baserade tester. Vilka klasser som identifieras som tester styrs i project.xml av: <property name=&quot;test.include&quot; value=&quot;**/test/*Test.java&quot;/> <property name=&quot;test.exclude&quot; value=&quot;&quot;/>
  • 57. XP – Processen Bacon – att skriva tester Enkelt att skriva tester. Klass som är identifierbar via namnet, t.ex MyClassTest.java
  • 58. XP – Processen Bacon – att skriva tester Importera Junit: import junit.framework.TestCase; import junit.framework.TestSuite; import junit.framework.Assert;
  • 59. XP – Processen Bacon – att skriva tester Utöka TestCase: public class MyClassTest extends TestCase{ public MyClassTest (String name){ super(name); } }
  • 60. XP – Processen Bacon – att skriva tester Varje metod som börjar med test, inte returnerar något och inte tar några argument kommer köras. Klassen instantieras på nytt för varje testmetod som körs.
  • 61. XP – Processen Bacon – att skriva tester Behöver man göra något innan testen körs implementerar man protected void setUp() throws Exception { } Och om något måste göra efter: protected void tearDown() throws Exception { }
  • 62. XP – Processen Bacon – att skriva tester Skriv en test för varje feature som den klass som testas skall ha. Använd assertions.
  • 63. XP – Processen Bacon – att skriva tester public void testSomething() trows Exception { MyClassToTest test = new MyClassToTest(); String returned = test.methodToTest(); Assert.assertEquals(“Did not work”, “expected”,returned); }
  • 64. XP – Processen Checka in i CVS - TIDIGT
  • 65. XP – Processen Använd Tim-BigBrother Är dokumenterad