Metodologia de dezvoltare agilă

Metodologia de dezvoltare agilă ( în engleză  agile software development , agile development ) este un termen general pentru o serie de abordări și practici bazate pe valorile Manifestului Agile Software Development și pe cele 12 principii care stau la baza acestuia [1] .

Metodologiile agile, în special, includ programarea extremă , DSDM , Scrum , FDD , BDD și altele.

Cele mai multe metodologii agile urmăresc să minimizeze riscul prin reducerea dezvoltării la o serie de cicluri scurte, numite iterații, care durează de obicei două până la trei săptămâni. Fiecare iterație în sine arată ca un proiect software în miniatură și include toate sarcinile necesare pentru a produce o mini-creștere a funcționalității: planificare, analiza cerințelor , proiectare , programare , testare și documentare . Deși o singură iterație nu este în general suficientă pentru a lansa o nouă versiune a unui produs, se presupune că un proiect software agil este gata de lansare la sfârșitul fiecărei iterații. La sfârșitul fiecărei iterații, echipa reevaluează prioritățile de dezvoltare.

Metodele agile pun accent pe comunicarea față în față. Majoritatea echipelor agile sunt situate în același birou, uneori denumite ing.  taurin . Cel puțin, include și „clienți” ( proprietarul de produs englez   - clientul sau reprezentantul său autorizat care stabilește cerințele pentru produs; acest rol poate fi îndeplinit de un manager de proiect, analist de afaceri sau client). Biroul poate include, de asemenea, testeri, designeri de interfețe, scriitori tehnici și manageri.

Principala metrică a metodelor agile este produsul de lucru. Prin prioritizarea comunicării față în față, metodele agile reduc cantitatea de documentație scrisă în comparație cu alte metode. Acest lucru a condus la criticarea acestor metode ca fiind nedisciplinate.

Istorie

În anii 1990, o serie de metode ușoare de dezvoltare a software-ului au evoluat ca răspuns la metodele grele predominante, pe care criticii le-au numit suprareglementate, planificate și microgestionate. Acestea includ: Dezvoltarea rapidă a aplicațiilor (RAD) din 1991 [2] [3] ; proces și metodă unificate de dezvoltare a sistemelor dinamice din 1994; Scrum, din 1995; Crystal Clear și Extreme Programming (XP), ambele din 1996; și dezvoltare orientată spre caracteristici din 1997. Deși toate au apărut înainte de publicarea Manifestului Agile, acum sunt denumite în mod colectiv dezvoltare software agilă.

În februarie 2001, „ Manifestul de dezvoltare a software-ului Agile ” a fost lansat în Utah, SUA . Acesta a oferit o alternativă la practicile de dezvoltare de software „greu” bazate pe documente, cum ar fi „ metoda cascadă ”, care era standardul de aur al dezvoltării la acea vreme. Acest manifest a fost aprobat și semnat de reprezentanți ai următoarelor metodologii: Extreme Programming , Crystal Clear , DSDM , Feature driven development , Scrum , Adaptive software development , Pragmatic Programming . Metodologia de dezvoltare Agile a fost folosită de multe companii chiar înainte de adoptarea manifestului, cu toate acestea, intrarea dezvoltării Agile în masă s-a produs tocmai după acest eveniment.

Principii

Agile este o familie de procese de dezvoltare, nu o singură abordare în dezvoltarea de software și este definită de Agile Manifesto [4] . Agile nu include practici, ci definește valorile și principiile care ghidează echipele.

Manifestul Agile a fost elaborat și adoptat în perioada 11-13 februarie 2001 la stațiunea de schi The Lodge at Snowbird din munții Utah. Agile Manifesto conține 4 idei principale și 12 principii. Este de remarcat faptul că Manifestul Agile nu conține sfaturi practice.

Idei cheie:

Principiile fundamentale ale Manifestului Agile [6] :

Critica

Unul dintre punctele recurente ale criticii: abordarea agilă neglijează adesea crearea unui plan („foaie de parcurs”) pentru dezvoltarea produsului, precum și managementul cerințelor , în procesul căruia se formează o astfel de „hartă”. O abordare flexibilă a managementului cerințelor nu implică planuri de anvergură (de fapt, managementul cerințelor pur și simplu nu există în această metodologie), ci implică capacitatea clientului de a stabili brusc și neașteptat noi cerințe la sfârșitul fiecărei iterații, adesea contrazicând arhitectura unui produs deja creat și livrat. Acest lucru duce, uneori, la „lucrare practică” catastrofală, cu refactorizare masivă și reluare la aproape fiecare iterație următoare.

În plus, se crede că lucrul în mod agil îi motivează pe dezvoltatori să rezolve toate sarcinile primite în cel mai simplu și rapid mod posibil, în timp ce adesea nu acordă atenție corectitudinii codului în ceea ce privește cerințele platformei de bază („lucrările și totul”), fără a ține cont de faptul că codul poate înceta să funcționeze dacă este modificat în continuare. Acest lucru are ca rezultat o calitate redusă a produsului și o acumulare de defecte (vezi „ datoria tehnică ”).

Metodologii

Există metodologii care aderă la valorile și principiile enunțate în Manifestul Agile, unele dintre ele sunt:

Note

  1. Ce este Agile Software Development? . Alianța Agile. - „Dezvoltarea software agilă este un termen umbrelă pentru un set de cadre și practici bazate pe valorile și principiile exprimate în Manifestul pentru dezvoltarea software agilă și cele 12 principii din spatele acestuia”. Preluat la 29 iunie 2019. Arhivat din original la 31 iulie 2018.
  2. Martin, James. Dezvoltare rapidă a aplicațiilor . - Macmillan, 1991. - ISBN 978-0-02-376775-3 .
  3. Kerr, James M.; Hunter, Richard. În interiorul RAD: Cum să construiți un sistem complet funcțional în 90 de zile sau mai puțin . - McGraw-Hil, 1993. - ISBN 978-0-07-034223-1 .
  4. Agile Manifesto Arhivat 23 februarie 2011 la Wayback Machine 
  5. Principiile fundamentale ale Manifestului Agile . agilemanifesto.org. Data accesului: 8 decembrie 2016. Arhivat din original pe 25 decembrie 2014.
  6. Modelare agilă . Data tratamentului: 25 decembrie 2011. Arhivat din original la 31 decembrie 2008.

Literatură