Extreme Programming ehk (XP) on Agiilne tarkvaraarenduse meetod, mis keskendub kvaliteetse tarkvara kiirele ja pidevale arendusele läbi tagasiside, koostöö ja kohandumise. XP rõhutab tihedat koostööd arendajate, kliendi ja teiste osapoolte vahel ning toetab kiiret, iteratiivset arendust ja juurutamist.
Ekstreemprogrammeerimise mudelis on välja töötatud mitmeid häid tavasid
- Koodirevüüd: Vigade avastamiseks ja parandamiseks kasutatakse paarisprogrammeerimist, kus kaks programmeerijat vahetavad rolle iga tunni järel.
- Testimine: XP toetab testipõhist arendust (TDD), kus testid kirjutatakse enne koodi, tagades usaldusväärsema tarkvara.
- Järk-järguline arendus: Arendust viiakse ellu väikeste sammudena, võimaldades regulaarset klienditagasisidet ja kiireid kohandusi.
- Lihtsus: Lihtne ja selge kood on kergemini hallatav, testitav ja vigade suhtes vastupidavam.
- Disain: Igapäevane süsteemi kujundamine aitab tagada tarkvara kvaliteeti ja paremat arhitektuuri.
- Integratsioonitestid: XP rõhutab pidevat integratsiooni, kus koodi ühendatakse ja testitakse mitu korda päevas, et avastada võimalikke vigu varakult.
Ekstreemprogrammeerimise põhiväärtused
- Suhtlus: Meeskonnaliikmete vahel toimuv avatud ja sagedane suhtlus tagab süsteemi nõuete ja eesmärkide ühtse mõistmise.
- Lihtsus: Lihtsuse hoidmine vähendab keerukust ning muudab koodi arusaadavamaks ja hooldatavamaks.
- Tagasiside: Pidevad tagasisidesilmused testimise ja kliendi kaasamise kaudu aitavad probleeme varakult avastada.
- Julgus: Meeskonnaliikmeid julgustatakse riske võtma, probleemidest rääkima ja muutustega kohanema.
- Austus: Iga liikme panust hinnatakse, mis edendab ühistööd ja toetavat töökeskkonda.
Ekstreemprogrammeerimise eelised on järgmised
- Hilinenud ajakavad: Paindlikud arendustsüklid tagavad õigeaegse tarnimise.
- Äri- ja domeenialased arusaamatused: Kliendi pidev kaasamine väldib vääritimõistmisi.
- Projektide katkestamine: Avatud suhtlus kliendiga aitab probleeme kiirelt lahendada.
- Töötajate voolavus: Tihe koostöö ja meeskonnavaim loovad motiveeriva töökeskkonna.
- Muutustega kaasnevad kulud: Pidev testimine tagab süsteemi töökindluse ka muudatuste korral.
- Ärimuudatused: Muutusi aktsepteeritakse igal ajahetkel kui loomulikku osa protsessist.
- ootmis- ja järelhooldusvead: Üksustestid aitavad vigu kiiresti leida ja parandada.
Ekstreemse programmeerimise elutsükkel koosneb viiest faasist