Programarea extremă este una dintre cele mai recente metode de dezvoltare a software-ului. Acesta își propune să îmbunătățească metodele tradiționale de dezvoltare a software-ului punând accent pe valoarea și calitatea afacerii. Această metodă de programare încearcă să ofere piese de software complete și fără erori, care să răspundă nevoilor afacerii, în intervale de câteva săptămâni.
În modul tradițional de dezvoltare a software-ului, un proiect se întinde pe mai multe luni sau ani. O echipă de analiști încearcă să obțină toate cerințele de la utilizatori. Apoi, un set de designeri creează structura largă a sistemului. După aceea, programatorii codifică sistemul în cadrul acelei structuri. Testerii se asigură apoi că codul nu conține erori și că îndeplinește cerințele.
Principala problemă întâlnită în dezvoltarea tradițională este că utilizatorii înșiși nu sunt întotdeauna clari cu privire la cerințele lor, iar cerințele se schimbă adesea în timpul prelungit necesar pentru a crea software-ul. Diferiți oameni sunt implicați în diferite etape, iar documentarea este aproape niciodată completă, astfel încât oamenii din etapele ulterioare nu pot înțelege procesul de gândire al oamenilor din etapele anterioare. Acest lucru are ca rezultat software de calitate scăzută, precum și o valoare comercială scăzută.
În mod obișnuit, programarea extremă implică livrări frecvente de software în intervale de câteva săptămâni. Motivația este de a oferi un software complet funcțional, care să răspundă unor nevoi critice de afaceri. O modificare a cerințelor este prevenită la următoarea livrare.
Programarea extremă, sau XP pe scurt, subliniază calitatea prin scrierea de teste înainte de a efectua programarea. Pe măsură ce software-ul este scris, codul este revizuit și testat de multe ori pe zi. Întregul software este pus împreună și testat o dată sau chiar de mai multe ori pe zi. Acest lucru se face pentru a se asigura că nicio singură parte a software-ului nu dă sistemul.
Unul dintre aspectele binecunoscute ale programării extreme este programarea în pereche, în care doi programatori lucrează împreună la un singur computer. Datorită acestei abordări, procesul de gândire, proiectarea și codarea care intră în crearea software-ului sunt verificate imediat. Responsabilitatea dezvoltării oricărei piese de software este împărtășită.
Cu această metodă de dezvoltare, software-ul începe cu un design simplu și evoluează pentru a satisface nevoi suplimentare de afaceri. Crearea de caracteristici este evitată până când acestea devin efectiv prioritare. Accentul se pune pe munca în echipă pentru a crea sisteme complete, astfel încât fiecare membru al echipei joacă rolul de analist, proiectant, programator și tester în fiecare zi. Există o comunicare intensă în cadrul echipei de programare, precum și între programatori și utilizatorii cărora le este livrat software-ul.
În această metodă de programare, conceptul de refactorizare este foarte accentuat. Refactorizarea este o rafinare internă a codului pentru a oferi codului o structură bună și pentru a-l face mai ușor de înțeles fără a afecta rezultatul. Se așteaptă ca toată munca implicată în programarea extremă să fie realizată într-un ritm sustenabil, fără nopți târzii și weekenduri. Acest lucru crește moralul și reduce probabilitatea erorilor.
Programarea extremă își ia numele de la ideea că aspectele pozitive ale modului în care lucrează programatorii buni sunt duse la extrem pentru a valorifica beneficiile. Această metodă de dezvoltare a fost destul de eficientă într-un număr de sisteme software. Deoarece aceasta este încă o metodologie nouă, practicile sale evoluează continuu.