Extreme Programming vs SCRUM XP vs SCRUM
Au existat numeroase metodologii diferite de dezvoltare a software-ului utilizate în industria de software de-a lungul anilor, cum ar fi metoda Waterfall de dezvoltare, V-Model, RUP și câteva alte metode liniare, iterative și combinate liniar-iterative. Modelul model (sau mai corect, un grup de metodologii) este un model de dezvoltare software mai recent introdus de manifestul Agile pentru a aborda deficiențele constatate în metodologiile tradiționale de dezvoltare software.
Metodele agile se bazează pe dezvoltarea iterativă și utilizează feedback-ul de la utilizatori ca mecanism principal de control. Agilul poate fi numit o abordare centrat pe oameni decât metodele tradiționale. Modelul Agile oferă o versiune de lucru a produsului foarte devreme prin descompunerea sistemului în subpărți foarte mici și ușor de gestionat, astfel încât clientul să poată realiza unele beneficii de timpuriu. Timpul de testare al ciclului Agile este relativ scurt comparativ cu metodele tradiționale, deoarece testarea se face paralel cu dezvoltarea. Datorită tuturor acestor avantaje, metodele Agile sunt preferate în prezent față de metodologiile tradiționale. Scrum și programarea Extreme sunt două dintre cele mai populare variante ale metodelor Agile.
Ce este SCRUM?
După cum sa menționat mai sus, SCRUM este un proces incremental și iterativ de management al proiectelor, care aparține familiei metodelor Agile. SCRUM se bazează pe acordarea unei priorități deosebite participării clienților la începutul ciclului de dezvoltare. Acesta recomandă includerea testelor de către client devreme și de cele mai multe ori posibil. Testarea se face la fiecare punct atunci când o versiune stabilă devine disponibilă. Fundația SCRUM se bazează pe pornirea testelor de la începutul proiectului și continuarea acestuia până la sfârșitul proiectului.
Valoarea cheie a SCRUM este "calitatea este responsabilitatea echipei", care subliniază că calitatea software-ului este responsabilitatea întregii echipe (nu doar a echipei de testare). Un alt aspect important al SCRUM este ruperea software-ului în părți mai ușor de gestionat și livrarea acestora către client foarte repede. Furnizarea unui produs de lucru este extrem de importantă. Apoi echipa continuă să îmbunătățească software-ul și să livreze continuu la fiecare pas major. Acest lucru se realizează prin intermediul unor cicluri foarte scurte de eliberare (numite sprinte) și obținerii de feedback pentru îmbunătățire la sfârșitul fiecărui ciclu.
SCRUM definește mai multe roluri cheie pentru buna funcționare a unei echipe de dezvoltare. Ei sunt proprietarul Produsului (care reprezintă clientul și menține restanțele produsului), Scrum master (care acționează ca organizator și coordonator al echipei prin desfășurarea întâlnirilor de scrum, menținerea backlog-urilor de sprint și arde graficele) și alți membri ai echipei. O echipă poate fi formată din roluri tradiționale, dar în cea mai mare parte sunt echipe de auto-gestionare. Principalele artefacte Scrum sunt backlog-ul produsului / backlog-ul de eliberare (lista de dorințe), backlog-urile Sprint / backlog-urile defectuoase (sarcini în fiecare iterație), diagramele de ardere (locul de muncă rămas vs data). Principalele ceremonii SCRUM sunt Întâlnirea restante a Produsului, reuniunea Sprint și reuniunea Retrospect.
Ce este Extreme Programming?
Extreme Programming (abreviat XP) este o metodologie de dezvoltare software care face parte din modelul Agile. Programarea extremă realizează faze în pași foarte mici (în comparație cu metodele tradiționale). Prima trecere, care durează doar o zi sau o săptămână, este intenționat incompletă. Pentru a oferi obiective concrete pentru dezvoltarea software-ului, testele automate sunt scrise la început. Apoi dezvoltatorii fac codificarea. Se pune accentul pe a face programarea ca perechi. După trecerea tuturor testelor, codificarea este considerată completă. Următoarea fază este designul și arhitectura, care se ocupă cu refacularea codului de către același set de programatori. La sfârșitul acestei etape, produsul incomplet (dar funcțional) este prezentat părților interesate. Imediat după aceasta, începe faza următoare (care se axează pe următorul set de caracteristici cele mai importante).
Care este diferența dintre Programarea Extremă și SCRUM?
Extreme Programming și SCRUM sunt în mod evident foarte asemănătoare și aliniate metodologii. Cu toate acestea, există diferențe subtile, dar importante între aceste două metode. Șuruburile SCRUM durează 2-4 săptămâni, în timp ce iterațiile tipice ale XP sunt mai scurte (ultimele 1-2 săptămâni). De obicei, echipele SCRUM nu permit schimbări în sprint, dar echipele XP sunt puțin mai flexibile la schimbările din cadrul iterațiilor. De exemplu, după planificarea sprintului, setul de elemente din acel sprint rămâne neschimbat, dar o caracteristică care nu a început să funcționeze poate oricând să fie schimbată cu o altă caracteristică în XP. O altă diferență între XP și SCRUM este faptul că ordinea caracteristicilor dezvoltate în XP este una strict prioritizată de către client, în timp ce echipa SCRUM decide ordinea articolelor (după ce restanța produsului este prioritizată de proprietarul produsului SCRUM).
Spre deosebire de XP, SCRUM nu stabilește nicio practică tehnică. De exemplu, XP este condus de practici precum dezvoltarea bazată pe test (TDD), programarea perechilor, refactorizarea etc. Cu toate acestea, unii cred că impunerea unui set de practici asupra echipelor care se autoorganizează ar putea avea un impact negativ și acest lucru poate fi considerat un neajuns al lui XP. Un alt neajuns al programării Extreme este că echipele neexperimentate pot tenta să refacă fără teste automate sau TDD (sau pur și simplu hacking). Prin urmare, unii sugerează că SCRUM este mai bine pentru a observa (deoarece aduce îmbunătățiri mari doar prin iterații focalizate în timp) și XP este potrivit pentru echipe ușor mature care au descoperit valoarea practicilor menționate mai sus (mai degrabă decât să le folosească pentru că au fost întrebate pentru a face acest lucru).