Ekstreemprogrammeerimine (XP) on agiilne tarkvaraarenduse metoodika, mis keskendub
kvaliteetse tarkvara pakkumisele sagedase ja pideva tagasiside, koostöö ja kohandamise kaudu.
XP rõhutab tihedat töösuhet arendusmeeskonna, kliendi ja sidusrühmade vahel,
rõhuasetusega kiirel iteratiivsel arendusel ja kasutuselevõtul.
| Head | Halvad |
|---|---|
| Pidev testimine ja ümbertöötamine aitavad luua stabiilseid hästitoimivaid süsteeme minimaalse silumisega | Paljudel juhtudel pole kliendil lõpptulemusest selget pilti, mistõttu on ulatuse, kulude ja aja täpse hinnangu andmine peaaegu ebareaalne |
| Lihtsuse väärtus: selge, kokkuvõtliku koodi loomine, mida on lihtne lugeda ja vajaduse korral tulevikus muuta |
Regulaarsed kohtumised klientidega võtavad sageli palju aega, mille võiks kulutada hoopis tegelikule koodi kirjutamisele |
| Minimalistlik iteratiivne lähenemine arendusele tagab, et toimivad tulemused on saavutatud väga kiiresti ja ehitatakse ainult vajalikud funktsioonid |
Dokumentatsioon võib olla napp ning neil puuduvad selged nõuded ja spetsifikatsioonid, mis võib viia projekti ulatuse vähenemiseni |
| Dokumentatsioon väheneb, kuna mahukad nõuete dokumendid asendatakse kasutajalugudega | Kiire üleminek traditsioonilistelt tarkvaraarenduse meetoditelt ekstreemprogrammeerimisele nõuab olulisi kultuurilisi ja struktuurilisi muutusi |
| Ületunde ei tehta või tehakse seda väga vähe | Paarisprogrammeerimine võtab rohkem aega ja ei tööta alati õigesti inimfaktori ja iseloomu mittesobivuse tõttu |
| Pidev suhtlus tagab kõrge nähtavuse ja vastutuse ning võimaldab kõigil meeskonnaliikmetel projekti edenemisega sammu pidada |
XP töötab kõige paremini koos paiknevate meeskondade ja isiklikult kohal olevate klientidega, et pidada silmast silma kohtumisi, piirates selle kasutamist hajutatud meeskondadega |
| Paarprogrammeerimine: selle tulemuseks on kõrgema kvaliteediga tooted, millel on vähem vigu ja nauditakse sellist koostööd rohkem ning tunnetakse end oma töös kindlamalt |
Mõnikord pole klientidel tootearenduses osalemiseks ei soovi, aega ega teadmisi. Arvestades kitsaid tähtaegu, võib see muutuda stressiallikaks, kuna kas ei anta väärtuslikku tagasisidet või mittetehniline esindaja püüab juhtida tehnikaspetsialiste, kellel on protsessist vähe või puuduvad teadmised |
| Kliendi kaasamine tagab nende rahulolu, kuna nende osalemine arendus- ja testimisprotsessis võib tulemust otseselt mõjutada, saades neile täpselt selle, mida nad soovisid | Mõned autorid mainivad ka liigset keskendumist koodile disaini asemel, kvaliteedi tagamise puudumist, koodi dubleerimist ja kogenematute arendajate halbu tulemusi |