XP – Extreme Programming


XP metoden är en metod som byggs på enkelhet, kommunikation, synpunkter, mod och respekt.        

  • Enkelhet –  Att hålla koden enkel så blir även designen enkel,  ta bort komplexitet från koden kontunuerligt när de upptäcks, Clean and simple.
  • Kommunikation – Håll en bra kommunication mellan teamet och ”kunden” för att hålla sig informerad om ändringar.
  • Synpunkter (feedback) – Ta till sig synpunkterna man får utav testerna, ser till att eventuellt förbättrar om de går. Genom detta kan man ha ett mer diciplinerat och organiserat team. Och vilket framför allt leder till en              mer kvalitativ och produktiv process/produkt.
  • Mod – Att kunna komma med idér och förbättringar och våga säga sitt inom teamet på möten och andra cemenarier.
  • Respekt – Att ha respekt mot sina teammedlemmar och för varandras uppgifter. I grund och botten är alla fortfarande ett lag och ska därmed fungera som ett lag.

Det finns tolv ”tillämpningar” inom XP:

  • Planeringsspelet – Funktionalitet i nästa leverans bestäms genom prioriterade verksamhetsberättelser och tekniska bedömningar.
  • Små leveranser – Systemet levereras i små versioner.
  • Metafor – En enkel beskrivning av hur systemet ska fungera.
  • Enkel design – Genom att hålla koden enkel blir även designen enkel. Ta bort onödiga detaljer från koden löpande när den upptäcks. Detta för att projektet/koden ska vara lättöverskådlig.
  • Testning –  Programmerare skriver tester som testar och validerar koden.
  • Omstrukturering av kod – Ta kontinuerligt bort identiska (dubbletter) och komplexa kodbitar för att underlätta arbetet (och göra det lättöverskådligt). Ingen har användning för onödig kod. Hör till konceptet med enkel design.
  • Parprogrammering – Man arbetar tillsammans i par, där programmeringen sker parvis. Ett gemensamt granskande sparar tid i slutändan (mindre buggar).
  • Gemensamt ägarskap – Alla har möjlighet att förändra koden, för att det ska vara lättillgängligt att ändra. Man följer ett mönster, en viss policy med andra ord.
  • Kontinuerlig integration – Så fort en kod är färdig så kommer den att integreras i systemet, dels för att spara tid och dels för att  se att det fungerar korrekt meddetsamma.
  • 40-timmars arbetsvecka – Hindrar utbrändhet, programmerare jobbar bättre utvilade. Händer inte detta så förekommer termen “trashing” vilket inte är effektivt arbete. Arbetet blir snarare kvantitativt än kvalitativt.
  • Kund på plats – Kunden arbetar med utvecklarna på heltid för att kunna svara på frågor, definiera systemet och skriva tester. Viktigt med ständiga statusuppdatering, så att allt går som planerat.
  • Kodstandard – Konsistent kodstandard som alla programmerare följer. Eftersom programmerare kan hoppa från olika delar av koder varje dag, och med olika partners, är det viktigt att det finns en standard som är lättförståelig för alla i teamet. Kräver dock att alla i teamet accepterar att det finns en standard.

Metodens koncept grundar sig på enkelhet och klara riktlinjer. En viss standardisering, som självklart är hög – men även det är någorlunda mer “traditionellt” än Scrum. Går att applicera på arbetsmetoder som nödvändigtvis inte är lika agila av sitt slag.

Varje tillägg som utvecklas betatestas omedelbart och parprogrammeringens upplägg är effektivt i sin granskande natur. En 40-timmars arbetsvecka förhindrar utbrändhet med avseende att programmerare arbetar mer effektivt utvilade. Koderna i sin enkelhet, är lätta för övriga programmerare att förstå, vilket underlättare vidare expansioner i koden.

Små versioner levereras kontinuerligt till kunden, på grund av statusuppdatering.

Kunden är ständigt närvarande för att besvara diverse frågor. I regel tar man bort dubletter och komplexa kodbitar, för att underlätta granskningen. Alla har rätt att korrigera koden, och grundar sig i ett slags gemensamt ägarskap. Koden ska hela tiden integreras med systemet, och således vara kontinuerlig integration. Man prioriterar uppgifternas ordning enligt “planeringsspelet” (som bestäms av verksamhetsberättelser och tekniska bedömningar). Metafor är en enkel beskrivning på hur systemet fungerar.
Källor:
http://sv.wikipedia.org/wiki/Extrem_programmering

Klicka för att komma åt xp-intro.pdf

Beck, Kent (1999): Extreme Programming Explained: Embrace Change
Succi, Giancarlo, Marchesi, Michele (2001): Extreme Programming Examined
Wake, William C. (2000): Extreme Programming Explored

Lämna en kommentar