Artikel: Introduktion til Extreme Programming
Introduktion til Extreme Programming
En artikel der i korte træk beskriver XP's oprindelse, samt en kort introduktion til XP.
Det første XP projekt
Extreme Programming blev grundlagt, i midten af 90’erne, under arbejdet på det såkaldte C3* projektet i den amerikanske virksomhed Chrysler.
Efter at Kent Beck
blev projektleder på C3 projektet i 1996, begyndte han at redefinere systemudviklingsmetoden der blev anvendt, og benyttede lejligheden at tilføje nogle af de praksisser Ward Cunningham
og han tidligere havde diskuteret. Senere inviterede Kent Beck også Ron Jeffries
til C3 projektet, og disse 3 herrer anses i dag for at være skaberne af systemudviklingsmetoden XP.
I oktober 1999 skrev Kent Beck bogen, Extreme Programming Explained
.
Introduktion til XP
XP er en letvægtsmetode beregnet til små og mellemstore udviklingsgrupper, som udvikler mod uklare og hyppigt skiftende krav. Ligesom de fleste andre agile udviklingsmetoder lægger XP mere vægt på tilpasning end forudsigelse. I XP har man accepteret at kravene til ethvert system altid vil ændre sig over tid, og derfor er XP indrettet således at man nemt og hurtigt kan håndtere ændringer i kravene til systemet. XP beskriver således et sæt dag-til-dag praksisser, hvis primære formål er at efterleve og overholde nogle grundlæggende værdier og principper.
En af grundlæggerne af XP, Kent Beck, har selv beskrevet XP som en enkel, effektiv, sikker, fleksibel, videnskabelig og sjov måde at udvikle software på. Men man kommer ikke udenom, at XP også er en disciplin indenfor software udvikling. Man kan ikke praktisere XP, hvis man ikke er ekstrem. Og det ekstreme aspekt i XP er, at man trækker den sunde fornuft ud i det ekstreme. Det er eksempelvis ikke valgfrit, om man vil anvende tests i udviklingen. Tests af både koden og kunderne er nyttig og derfor skal du gøre brug af den hele tiden, ellers er du ikke ”ekstrem”.
Roller i Extreme Programming
For at et XP hold skal kunne fungere, foreskriver XP at nogle særlige roller skal være udfyldt. Det er mindre vigtigt hvem der udfylder de fleste roller, og det behøver ikke nødvendigvis at være den samme person hele tiden, faktisk vil det i de fleste tilfælde være en fordel at nogle af rollerne skifter person, da man derved opnår et større fællesansvar.
Nogle af rollerne, så som Programmer, Customer og Coach er meget vigtige, og der bør ikke være nogen tvivl om disse rollers indehavere. Men en Programmer og en Coach vil i de fleste tilfælde være en og samme person, og sådan skal det også være. De øvrige roller, som også bliver nævnt i XP sammenhæng, er Tester, Tracker, Consultant og Big Boss. Men her bør man være opmærksom på, at nogle af disse roller meget ofte vil være besat af en og samme person. Eksempelvis indgår både Tracker, Big Boss og Coach i ledelsen af et XP projekt.
Læs mere om Roller i XP her: Roller i Extreme Programming 
Værdier i Extreme Programming
Værdierne er de mest grundlæggende og centrale dele af XP, og danner derved grundlaget for et succesfuldt udviklingsforløb. I den første version af XP var der kun 4 værdier, men i den næste version var der tilføjet en 5. værdi (Respekt).
De 5 værdier i XP er Communication, Feedback, Simplicity, Courage og Respect.
Læs mere om Værdier i XP her: Værdier i Extreme Programming 
Praksisser i Extreme Programming
I XP eksisterer praksisserne som en integreret måde at overholde principperne og værdierne i XP på.
Eksempelvis kan man med hjælp af praksissen Pair Programming opnå simplicitet og kvalitet på et højere niveau end hvis én enkelt programmør sidder og nørder med en indviklet klasse, som ingen anden umiddelbart kan forstå formålet med.
I anden udgave af XP er der fjernet 2 af de 14 ligestillede praksisser fra første version. Men tilgengæld er der nu hele 24 praksisser i anden version, 13 primære og 11 udledte.
De 24 praksisser i XP er: Sit Together - Whole Team - Information Workspace - Energized Work - Pair Programming – Stories - Weekly Cycle - Quarterly Cycle – Slack - Ten-minute Build - Continuous Integration - Test-First Programming - Incremental Design - Real Customer Involvement - Incremental Deployment - Team Continuity - Shrinking Teams - Root-Cause Analysis - Shared Code - Code and Test - Single Code Base - Daily Deployment - Negotiated Scope Contract - Pay-Per-Use
Læs mere om Praksisser i XP her: Praksisser i Extreme Programming 
Flere artikler om Extreme Programming:
- Fra 1. version til 2. version af XP

- Roller i Extreme Programming

- Værdier i Extreme Programming

- Praksisser i Extreme Programming

Relevante Links:
- Kent Becks hjemmeside

- Ward and Kent

- Ron Jeffries Hjemmeside (Xprogramming.com)

- Kent Becks Wiki

- Ward Cunninghams Wiki

- Ron Jeffries Wiki

- Wikipedia om Extreme Programming

- Extreme Programming:
A gentle introduction
- Agile Alliance

- Manifesto for Agile Software Development

- Martin Fowler - The New Methodology

C3*)
Chrysler Comprehensive Compensation System (C3) er et stort software projekt, som havde til formåls at sammenlægge flere lønningssystemer hos Chrysler i USA. Der henvises tit til C3 projektet i XP litteratur, da både Kent Beck og Ron Jeffries deltog i dette projekt.
