Par-programmering og Extreme Programming i praksis

Extreme Programming (XP)

Agil metode

Extreme Programming er en agil udviklingsmetode, der fokuserer paa teknisk ekspertise, hyppige releases og taet kundesamarbejde.

Principper

  • Kommunikation - ansigt-til-ansigt dialog mellem team og kunde
  • Enkelhed - byg kun det, der er noedvendigt lige nu
  • Feedback - hurtige feedback-loops paa alle niveauer
  • Mod - turde lave store aendringer og droppe kode der ikke virker
  • Respekt - respekter hinandens bidrag og ekspertise

Extreme Programming (XP) blev skabt af Kent Beck i slutningen af 1990'erne og er en af de oprindelige agile metoder. XP fokuserer primaert paa softwareudviklingens tekniske praksisser og har som maal at producere software af hojere kvalitet med kortere feedback-loops.

XP's kernepraksisser inkluderer parprogrammering, testdrevet udvikling (TDD), kontinuerlig integration, refactoring, kollektivt kodeejerskab og korte iterationer. Disse praksisser er designet til at arbejde sammen og forstaerke hinanden.

Parprogrammering betyder, at to udviklere arbejder sammen ved en computer. En skriver kode (driver), mens den anden gennemgaar hver linje (navigator). Rollerne skiftes regelmaessigt. Denne praksis fanger fejl tidligt, spreder viden i teamet og producerer generelt kode af hoejere kvalitet.

Testdrevet udvikling (TDD) kraever, at udviklere skriver automatiserede tests foer de skriver produktionskode. Cyklussen er: skriv en fejlende test, skriv den minimale kode der faar testen til at bestaa, og refaktorer derefter. TDD sikrer hoej testdaekning og driver et simpelt, modulaert design.

Kontinuerlig integration betyder, at kode integreres i det faelles repository flere gange dagligt. Hver integration udloeser automatiske builds og tests, saa fejl opdages inden for minutter. Dette eliminerer de smertefulde "integrationsperioder", der praeger traditionel udvikling.

XP anbefaler korte iterationer paa en til to uger med hyppige releases. Kunden (eller en kunderepraesentant) er ideelt set til stede paa daglig basis for at besvare spoergsmaal og prioritere arbejde. Denne taette feedback-loop sikrer, at teamet altid bygger det rigtige.

Mange af XP's praksisser er i dag bredt adopteret i softwarebranchen, selv af teams der ikke formelt foelger XP. TDD, CI/CD og parprogrammering er blevet standardpraksis i mange organisationer, uafhaengigt af deres valgte agile framework.