Hvad er ekstrem programmering?
Ekstrem programmering er en af de nyere metoder til udvikling af software. Det sigter mod at forbedre traditionelle metoder til softwareudvikling ved at understrege forretningsværdi og kvalitet. Denne metode til programmering forsøger at levere komplette og fejlfri stykker software, der imødekommer forretningsbehov, inden for intervaller så korte som uger.
På den traditionelle måde at udvikle software spænder et projekt over mange måneder eller år. Et team af analytikere forsøger at få alle kravene fra brugerne. Derefter skaber et sæt designere systemets brede struktur. Derefter koder programmerere systemet inden for denne struktur. Testere sikrer derefter, at koden er fejlfri og opfylder kravene.
Det største problem, der opstår ved traditionel udvikling, er, at brugerne ikke altid er klare over deres krav, og kravene ændres ofte i løbet af den lange tid, det tager at oprette softwaren. Forskellige mennesker er involveret i forskellige faser, og dokumentation er næsten aldrig fuldstændig, så folk i de senere faser kan ikke finde ud af tankens proces hos folk i de tidligere faser. Dette resulterer i software af lav kvalitet såvel som lav forretningsværdi.
Normalt involverer ekstrem programmering hyppige softwareleverancer i løbet af få uger. Motivationen er at levere fuldt fungerende software, der imødekommer et kritisk forretningsbehov. En ændring i kravene imødekommes ved næste levering.
Ekstrem programmering, eller XP for kort, understreger kvalitet ved at skrive test, inden programmeringen udføres. Når softwaren er skrevet, gennemgås og testes kode mange gange om dagen. Hele softwaren sættes sammen og testes en eller endda flere gange om dagen. Dette gøres for at sikre, at ingen enkelt del af softwaren bringer systemet ned.
Et af de velkendte aspekter ved ekstrem programmering er parprogrammering, hvor to programmerere arbejder sammen på en computer. På grund af denne tilgang kontrolleres tankeprocessen, design og kodning, der går i oprettelse af software, øjeblikkeligt. Ansvaret for at udvikle ethvert stykke software bliver delt.
Med denne udviklingsmetode starter software med et simpelt design og udvikler sig for at tilfredsstille yderligere forretningsbehov. Oprettelse af funktioner undgås, indtil de faktisk får høj prioritet. Vægten ligger på teamarbejde for at skabe komplette systemer, så hvert teammedlem spiller rollen som analytiker, designer, programmerer og tester hver dag. Der er intens kommunikation i programmeringsteamet såvel som mellem programmererne og de brugere, som softwaren leveres til.
I denne programmeringsmetode fremhæves begrebet refactoring stærkt. Refactoring er intern kodeforfining for at give koden en god struktur og gøre det lettere at forstå uden at påvirke output. Alt arbejde, der er involveret i ekstrem programmering, forventes at blive udført i et bæredygtigt tempo uden sene nætter og weekender. Dette øger moral og reducerer sandsynligheden for fejl.
Ekstrem programmering henter sit navn fra tanken om, at de positive aspekter af, hvordan gode programmerere fungerer, udtages til det ekstreme for at drage fordel af fordelene. Denne udviklingsmetode har været ret effektiv i en række softwaresystemer. Da dette stadig er en ny metode, er dens praksis kontinuerligt under udvikling.