Diferența dintre programarea extremă și SCRUM

Diferența dintre programarea extremă și SCRUM
Diferența dintre programarea extremă și SCRUM

Video: Diferența dintre programarea extremă și SCRUM

Video: Diferența dintre programarea extremă și SCRUM
Video: Conexiune între Mixer,amplificator și egalizator 2024, Noiembrie
Anonim

Programare extremă vs SCRUM | XP vs SCRUM

Au existat o serie de metodologii diferite de dezvoltare software utilizate în industria software de-a lungul anilor, cum ar fi metoda de dezvoltare Waterfall, V-Model, RUP și câteva alte metode liniare, iterative și combinate liniar-iterative. Modelul Agile (sau mai corect, un grup de metodologii) este un model de dezvoltare software mai recent introdus de manifestul Agile pentru a rezolva deficiențele găsite în acele metodologii tradiționale de dezvoltare a software-ului.

Metodele Agile se bazează pe dezvoltarea iterativă și folosesc feedback-ul de la utilizatori ca principal mecanism de control. Agile poate fi numită o abordare centrată pe oameni decât metodele tradiționale. Modelul Agile oferă o versiune funcțională a produsului foarte devreme, defalcând sistemul în subpărți foarte mici și ușor de gestionat, astfel încât clientul să poată realiza din timp unele dintre beneficii. Durata ciclului de testare a Agile este relativ scurt în comparație cu metodele tradiționale, deoarece testarea se face în paralel cu dezvoltarea. Din cauza tuturor acestor avantaje, metodele Agile sunt preferate metodologiilor tradiționale în acest moment. Programarea Scrum și Extreme sunt două dintre cele mai populare variante ale metodelor Agile.

Ce este SCRUM?

Așa cum am menționat mai sus, SCRUM este un proces de management de proiect incremental și iterativ, care aparține familiei de metode Agile. SCRUM se bazează pe acordarea unei priorități ridicate participării clienților la începutul ciclului de dezvoltare. Acesta recomandă includerea testării de către client cât mai devreme și cât mai des posibil. Testarea se face în fiecare moment când devine disponibilă o versiune stabilă. Fundamentul SCRUM se bazează pe începerea testării de la începutul proiectului și continuarea 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 defalcarea software-ului în părți mai mici gestionabile și livrarea acestora către client foarte rapid. Livrarea unui produs funcțional este de maximă importanță. Apoi, echipa continuă să îmbunătățească software-ul și să livreze continuu la fiecare pas major. Acest lucru se realizează prin cicluri de lansare foarte scurte (numite sprinturi) și primirea 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. Aceștia sunt Product owner (care reprezintă clientul și menține backlog-ul produsului), Scrum Master (care acționează ca organizator și coordonator al echipei prin desfășurarea de întâlniri Scrum, menținerea sprint backlog și burn down charts) și alți membri ai echipei. O echipă poate consta din roluri tradiționale, dar în mare parte sunt echipe care se auto-gestionează. Principalele artefacte Scrum sunt întârzieri de produs/întârziere de lansare (lista de dorințe), întârzieri de Sprint/întârzieri cu defecte (sarcini în fiecare iterație), diagrame de ardere (lucrare rămasă față de dată). Principalele ceremonii SCRUM sunt întâlnirea de produse restante, întâlnirea Sprint și întâlnirea Retrospect.

Ce este programarea extremă?

Extreme Programming (abreviat XP) este o metodologie de dezvoltare software care aparține modelului Agile. Programarea extremă realizează faze în pași continui foarte mici (comparativ 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 codarea. Accentul se pune pe programarea în perechi. Odată ce toate testele trec, codarea este considerată completă. Următoarea fază este proiectarea și arhitectura, care se ocupă cu refactorizarea codului de către același set de programatori. La sfârșitul acestei faze, un produs incomplet (dar funcțional) este prezentat părților interesate. Imediat după aceasta, începe următoarea fază (care se concentrează pe următorul set de funcții importante).

Care este diferența dintre Extreme Programming și SCRUM?

Programarea extremă și SCRUM sunt, de înțeles, metodologii foarte asemănătoare și aliniate. Cu toate acestea, există diferențe subtile, dar importante între aceste două metode. Sprinturile SCRUM durează 2-4 săptămâni, în timp ce iterațiile XP tipice sunt mai scurte (ultimele 1-2 săptămâni). De obicei, echipele SCRUM nu permit modificări la sprinturi, dar echipele XP sunt puțin mai flexibile la schimbările din cadrul iterațiilor. De exemplu, după planificarea sprintului, setul de elemente ale acelui sprint rămâne neschimbat, dar o caracteristică la care nu a început să lucreze poate fi oricând schimbată cu o altă caracteristică în XP. O altă diferență între XP și SCRUM este că, ordinea caracteristicilor dezvoltate în XP este una strict prioritizată de către client, în timp ce echipa SCRUM decide ordinea articolelor (după ce stocul de produse este prioritizat de către proprietarul produsului SCRUM).

Spre deosebire de XP, SCRUM nu prevede nicio practică de inginerie. De exemplu, XP este condus de practici precum dezvoltarea testată (TDD), programarea perechilor, refactorizarea, etc. Cu toate acestea, unii cred că impunerea unui set de practici asupra echipelor de auto-organizare ar putea avea un impact negativ, iar acest lucru poate fi luat în considerare. un dezavantaj al XP. Un alt dezavantaj al programării Extreme este că echipele fără experiență pot avea tendința de a refactoriza fără teste automate sau TDD (sau pur și simplu hacking). Prin urmare, unii sugerează că SCRUM este mai bine pentru a privi (deoarece aduce îmbunătățiri mari pur și simplu prin iterații concentrate în timebox) și XP este potrivit pentru echipele puțin mature care au descoperit valoarea practicilor menționate mai sus (mai degrabă decât să le folosească pentru că au fost solicitate). pentru a face acest lucru).

Recomandat: