Istoria Agile își are rădăcinile în publicarea „Manifestului pentru dezvoltarea software-ului Agile”, care constă din 12 principii fundamentale în 2001. Neîndoielnic, anumite setări ale abordării Agile apăruseră înainte de aceasta, dar doar acest document le‑a sistematizat și le‑a prezentat într‑o măsură suficientă pentru utilizare. An de an, noi firme, specialiști IT și manageri de proiect adera la Manifest. Noi metode și versiuni ale sistemului de dezvoltare Agile apar.
Ce este metodologia Agile (flexibilă)?
Agile este un model de dezvoltare interactiv în care software-ul este creat incremental începând cu începutul unui proiect, spre deosebire de modelele în cascade unde codul este livrat la sfârșitul ciclului de muncă.
Metodologia flexibilă se bazează pe descompunerea proiectelor în mici piese operaționale numite povești ale utilizatorilor. În funcție de priorități, sarcinile sunt soluționate în intervale scurte de două săptămâni (iterații).
Cele 12 principii care constituie Metodologia Agile pot fi reduse la 4 idei fundamentale:
- Prioritatea oamenilor și comunicării în fața instrumentelor și proceselor;
- Prioritatea unui produs funcțional în fața documentației abundente;
- Prioritatea colaborării cu clienții în fața confirmării contractului;
- Prioritatea disponibilității la schimbări în fața respectării planului inițial.
Metodele în cadrul Agile:
Scrum
Termenul Scrum a fost împrumutat din rugby, unde acest cuvânt înseamnă metoda de joc în echipă sub formă de trei linii construite de fiecare rival care încearcă să prindă mingea. Pentru o reapucare de succes, nu doar o bună condiție fizică este esențială – fiecare jucător care face scrum trebuie să acționeze concertat cu ceilalți, cu o înțelegere clară a scopului.
Această metodă este utilizată cu succes de companii precum Microsoft, Yahoo, Siemens Healthcare. Un manager de proiect de la Amazon a descris chiar un caz de introducere a Scrum bazat pe experiența acumulată.
Pentru că Scrum este un cadru pentru dezvoltare, fiecare exemplu care urmează poate diferi de precedent.

Jeff Sutherland, autorul cărții „Scrum. Arta de a face de două ori mai mult în jumătate din timp”, a distins 8 pași pentru a utiliza metodologia:
- Selectați product owner — care este conștient de scopul proiectului și rezultatul așteptat.
- Organizați o echipă — de până la 10 persoane cu abilitățile necesare pentru a crea un produs operațional.
- Numiți un Scrum master care va supraveghea fluxul de lucru al proiectului și va asista echipa de proiect în abordarea provocărilor.
- Elaborați un product backlog — pentru fiecare cerință a produsului, stabiliți prioritățile pe tabloul Agile. În acest proces, rolul product owner-ului este esențial, deoarece el colectează solicitările pentru produs pentru a fi evaluate de echipa de backlog.
- Programarea sprinturilor (iterații) — fragmente de timp pentru a finaliza lanțuri definitive de sarcini.
- Organizați întâlniri zilnice de cincisprezece minute — întrebați fiecare membru al echipei 3 întrebări: ce a făcut ieri, ce va face astăzi, ce împiedică îndeplinirea sarcinii.
- Faceți recenzii ale părților operaționale ale produsului — prin implicarea părților interesate în astfel de recenzii.
- Organizați retrospective — discuția problemelor cu căutarea de soluții după fiecare sprint. Implementați planul de modificare rezultat în sprintul următor.
Retrospective în Agile
Scrum are 4 elemente cheie:
- Product Backlog — lista de cerințe pentru proiect
- Sprint Backlog — lista de cerințe care trebuie îndeplinite în cadrul următorului sprint
- Sprint Goal — scopul sprintului
- Sprint Burndown Chart — diagrama care este actualizată pe măsură ce sarcinile sunt finalizate. Ea facilitează înțelegerea dinamicii și nivelului de avansare al echipei în proiect.
Programare Extremă (XP)
Kent Beck, dezvoltatorul acestei metodologii, a creat o metodă de programare extremă destinată să abordeze cerințele volatile ale produselor software și să îmbunătățească calitatea dezvoltării.
Este aplicabilă doar în domeniul dezvoltării software-ului și se bazează pe 4 procese:
- codare — conform standardelor comune de layout ale echipei;
- testare — testele sunt create practic de programatori înainte de scrierea unui cod care va fi testat;
- planificare — atât pentru build-ul final, cât și pentru iterații separate. Acestea din urmă au loc în medie la fiecare două săptămâni.
- audition — atât a dezvoltatorilor, cât și a clientului, pentru a elimina punctele neclare și a defini cerințele și valorile.
Metodologii Crystal
Această familie de metodologii dezvoltată de Alistair Cockburn, unul dintre autorii „Manifestului pentru dezvoltarea software-ului Agile” este puțin cunoscută în anumite domenii locale de management de proiect. Cockburn propune să facă clasificarea prin culori, bazându-se pe un astfel de criteriu ca numărul de persoane într‑o echipă: 2 (Crystal Clear) până la 100 (Crystal Red). Culorile Maroon, Albastru și Violet sunt atribuite proiectelor de dimensiuni mai mari.
Proiectele Crystal ar trebui să corespundă 3 caracteristicilor fundamentale:
- livrarea rapidă a codului operațional — evoluția ideii pentru modelul iterativ în dezvoltarea Agile.
- îmbunătățirea prin reflexie — o nouă versiune de software este îmbunătățită pe baza informațiilor despre versiunea anterioară.
- interacțiune „osmotică” — inovația lui Alistair, o metaforă pentru comunicarea și schimbul de informații între dezvoltatorii software-ului care se află într‑o singură cameră.
Această familie de metodologii este descrisă în detaliu în cartea „Crystal Clear: O metodologie bazată pe om pentru echipe mici” de Alistair.
Metoda de dezvoltare dinamică a software-ului (DSDM)
Nu o singură persoană, nici măcar o echipă, ci un consorțiu de 17 companii britanice a lucrat la dezvoltarea DSDM. La fel ca programarea extremă, DSDM este utilizat predominant pentru a crea software.
Consumatorul final (utilizatorul) are un rol special în procesul de dezvoltare. Acest principiu de bază este completat cu următoarele principii fundamentale:
- versiuni operaționale frecvente ale produsului
- autonomie a dezvoltatorilor în luarea deciziilor
- testare pe parcursul ciclului de lucru.
DSDM este împărțit în versiuni care sunt actualizate pe măsură ce tehnologiile evoluează și pe măsură ce apar noi cerințe de dezvoltare a software-ului. În prezent, ultima este DSDM Atern lansată în 2007, deși cea anterioară (din 2003) este încă în serviciu.
La început, echipa ia în considerare fezabilitatea dezvoltării unei aplicații și domeniul său de utilizare. Apoi, munca este împărțită în trei cicluri interconectate:
- ciclul modelului funcțional — crearea documentelor analitice și prototipurilor.
- ciclul de proiectare și inginerie — punerea în funcțiune a unui sistem.
- ciclul de implementare — desfășurarea sistemului.
Dezvoltare condusă de caracteristici (FDD)
Această metodologie a apărut chiar înainte de „Manifestul pentru dezvoltarea software-ului Agile”.
Deși FDD folosește în continuare modelul iterativ de dezvoltare, se deosebește de Agile prin următoarele trăsături:
- o atenție mai mare acordată modelării inițiale
- importanța crescută (comparativ cu Agile) a rapoartelor și diagramelor
- metodologia este concepută pentru dezvoltare corporate.
Dezvoltarea condusă de caracteristici constă în următoarele faze ciclice:
- Creează un model general — viziunea proiectului bazată pe datele preliminare.
- Dezvoltarea unei liste de proprietăți — similar cu product backlog în metodologia Scrum.
- Planificarea pe proprietăți — complexitatea proprietăților este evaluată de fiecare membru al echipei.
- Pentru fiecare proprietate — design tehnic și implementare – faza finală la finalizarea căreia proprietatea se integrează în produs, iar ciclul se repetă.
Dezvoltarea software-ului Lean
Dezvoltarea software-ului Lean este un set de principii de management Lean (mai degrabă decât o metodologie) care sunt destinate creșterii eficienței procesului de dezvoltare și minimizării costurilor.
Acest set include următoarele 7 principii fundamentale:
- eliminarea pierderilor — tot ce nu adaugă valoare produsului pentru consumatorul final.
- training continuu — dezvoltarea constantă a echipei îmbunătățește posibilitățile de îndeplinire eficientă a sarcinilor.
- luarea deciziilor cât mai târziu posibil — prioritatea este dată soluțiilor deliberate care sunt bine dezvoltate și bazate pe cunoștințe acumulate, mai degrabă decât soluțiilor spontane.
- livrare rapidă — aceasta este, practic, principala principiu al modelului iterativ.
- consolidarea echipei — unul dintre principiile „Manifestului…” susține că oamenii și interacțiunile lor sunt mai importante decât procesele și uneltele. O echipă de proiect este cea mai bună garanție pentru finalizarea cu succes a sarcinilor.
- integritate și calitate — este necesar să se realizeze un produs inițial de înaltă calitate pentru a nu pierde timp și resurse în teste ulterioare și eliminarea erorilor.
- viziunea unei imagini agregate — un proiect nu poate fi descompus în părți separate fără a înțelege stadiul actual al dezvoltării, precum și scopurile, conceptul și strategiile software-ului dezvoltat.
Versiuni ale metodologiilor de dezvoltare Agile
Modelare Agile (AM)
Modelarea Agile este un set de valori, principii fundamentale și practici pentru modelarea software-ului.
AM este folosit ca element într‑o metodologie completă de dezvoltare software — de exemplu, în programarea extremă sau dezvoltarea rapidă a aplicațiilor.
Modelarea Agile are următoarele trăsături fundamentale:
- interacțiune eficientă între părțile implicate în proiect;
- aspirația de a dezvolta o soluție finală simplă dintre toate posibile, care va îndeplini toate cerințele;
- primirea continuă de feedback;
- curajul de a lua decizii și de a fi responsabil pentru acestea;
- realizarea că știi absolut tot.
Proces Unificat Agile (AUP)
AUP este o versiune simplificată a unei alte metodologii de dezvoltare software — Procesul Unificat Rațional (RUP). Din 2012, a fost înlocuit de livrarea disciplinată Agile (DAD), dar AUP este tot încă existent aici și acolo.
Scott Ambler, autorul metodologiei, a scos în evidență următoarele puncte cheie în Procesul Unificat Agile:
- Echipa ta știe ce face;
- Simplitatea vine întâi.
- Conformitatea cu principiile metodologiei de dezvoltare flexibile.
- Concentrarea pe activitățile valoroase pentru proiect.
- Independența în alegerea uneltelor.
- Configurarea personalizată a AUP pentru cerințele unui proiect specific.
Metoda Agile de Date (ADM)
ADM este un set de metodologii de dezvoltare software iterative care subliniază formarea cerințelor și soluțiilor într-un proiect prin colaborarea diferitelor echipe. La fel ca AUP, această metodologie nu este de sine stătătoare.
Principiul Metodei Agile de Date este definit de șase fundamentale:
- Date — baza pentru crearea oricărei aplicații.
- Problemelor într-un proiect — acestea pot fi detectate doar dacă scopul proiectului și conceptul sunt clar înțelese.
- Grupuri de lucru — în afară de echipa de bază de dezvoltatori, există grupuri de întreprindere care sprijină alte grupuri de lucru.
- Unicitate — nu există nicio metodologie perfectă, astfel încât fiecare proiect necesită instrumente din diferite metodologii pentru a fi combinate.
- Lucrul în echipă — colaborarea este mult mai eficientă decât activitatea individuală.
- „Punctul dulce” — căutarea unei soluții optime a unei probleme („punct dulce”) evitând extremitățile.
Procesul Unificat Esențial (EssUP)
A fost dezvoltat de Ivar Jacobson, un om de știință suedez, pentru a îmbunătăți Procesul Unificat Rațional.
EssUP folosește conceptul de practică care include:
- scenariul de utilizare — descrierea comportamentului unui sistem.
- dezvoltarea iterativă — crearea de piese operaționale ale codului în cicluri scurte de câteva săptămâni.
- practici de echipă — destinate unificării echipei și creșterii eficienței acesteia.
- practici procedurale — de exemplu, „Gândește global, începe mic” sau „Implică părțile interesate în procesele de afaceri”.
Într‑o formă sau alta, toate practicile sunt prezente în metodologiile RUP și CMMI, precum și în metodologia de dezvoltare flexibilă.
Getting Real (GR)
Aceasta este o metodologie eficientă pentru startup-uri și echipe recente, care sugerează utilizarea maximă a trăsăturilor specifice moștenite de la proiecte și companii mici, cum ar fi mobilitatea, flexibilitatea, căutarea de soluții noi, absența unei ierarhii stricte și confuze etc.
Jason Fried și David Hansson, fondatorii companiei 37signals (în prezent Basecamp), au definit Getting Real ca un sistem pentru rezolvarea sarcinilor fezabile, care este în cele din urmă simplu, cuprinzător și funcțional.
GR este un amestec de o duzină de unelte de dezvoltare Agile care sunt folosite pentru a minimiza următoarele:
- alternative
- opțiuni și setări
- structura companiei
- întâlniri
- promisiuni.
Un astfel de concept extraordinar nu a ajuns la mainstream, deși unele dintre elementele sale s‑au contopit în alte metodologii.
OpenUP (OUP)
Aceasta este o metodologie de dezvoltare software independentă de unelte și liberă de o structură strictă, care oferă următoarele practici:
- măsurarea vitezei de operare a echipei;
- organizarea de întâlniri zilnice și retrospective la finalizarea iterațiilor;
- conceptul de micro pași și testare timpurie folosind checkliste;
- metodologia de dezvoltare bazată pe model Agile (AMDD).
Aceste practici sunt realizate pe baza a patru principii:
- reconcilierea intereselor și atingerea viziunii comune în muncă comună;
- îmbunătățirea continuă prin feedbackul constant;
- concentrarea pe arhitectura aplicației în stadiile timpurii pentru a minimiza riscurile;
- maximizarea valorii pentru consumatorul final.

Indicatori Agile
Dându-se în considerare diversitatea uneltelor, practicilor, metodelor și metodologiilor Agile, trebuie să alegem un instrument care să né ajute să determinăm cât de eficiente sunt fiecare dintre acestea.
Metricile sunt utilizate ca un astfel de instrument.
Pentru cele mai multe proiecte, aceste 4 categorii de metrici vor fi suficiente:
- Productivitate — se alătură metricilor Velocity și WIP. Prima nu se potrivește pentru toate proiectele, deoarece numărul sarcinilor finalizate pe iterație este măsurat, dar iterațiile nu sunt egale. Metica Work-in-Progress definește limita sarcinilor în diferite faze: și cu cât este mai mare, cu atât mai rău se desfășoară;
- Previzionare — metrica Capacitate, care constă în a determina numărul de ore perfecte disponibile în următorul sprint. În consecință, este posibil să se înțeleagă cantitatea de timp disponibil pentru muncă, gradul de eficiență în îndeplinirea sarcinilor, precum și să se planifice numărul de sarcini pentru un sprint;
- Calitate — de exemplu, indicele de stabilitate a cerințelor care este calculat prin formula = (Numărul total de cerințe originale de afaceri + Numărul cerințelor modificate în funcție de termenul dat + Numărul cerințelor adăugate + Numărul de cerințe eliminate) / (numărul total de cerințe originale). Această metrică este folosită pentru a determina cantitatea de timp petrecut pentru refacerea sarcinilor;
- Valori — această metrică este calculată individual în fiecare caz, în funcție de formatul proiectului. De exemplu, în startup-ul AirBnb, numărul de fotografii de înaltă calitate descărcate a fost ales ca metrică pentru determinarea valorii finale a produsului pentru utilizatori. Pe măsură ce acest număr a crescut, numărul de utilizatori a crescut proporțional.
Regulile aplicabile metricilor sunt aceleași ca cele pentru alte unelte Agile.
Nu există o metrică unică care să fie corectă și relevantă pentru proiectul tău.
Metricile ar trebui revizuite în mod constant, cele depășite trebuie eliminate, și cele noi trebuie adăugate, după cum este necesar. Ar trebui să fie cuprinzătoare și disponibile pentru întreaga echipă fără a fi transformate într-un scop în sine. Metricile pentru metrici sunt o soluție proastă.

Demistificatori: Agile
Prenumele metodologiei de dezvoltare flexibile a jucat o farsă, iar miturile despre anumite aspecte ale Agile pot fi întâlnite chiar și pe portaluri specializate. Să le clarificăm!
Mitul Nr. 1: Agile se va potrivi tuturor proiectelor.
Aceasta este cea mai fermă eroare. O singură metodă Agile în sine nu va adăuga nicio valoare produsului, nici nu va motiva echipa.
Mitul Nr. 2: Agile dezavantajează documentația.
Metodologia de dezvoltare Agile nu dezavantajează documentația, ci neagă documentația ca un scop în sine. Când vine vorba de a alege documentația ca un mijloc de comunicare, Agile favorizează cu adevărat comunicarea personală.
Mitul Nr. 3: Agile și planificarea sunt incompatibile.
Această mit este contestat de evenimentele de planificare zilnice cu stand-up-uri de 10 minute, precum și de planificarea iterațiilor care au loc la fiecare două săptămâni, întâlniri de sprint etc.
Mitul Nr. 4: Agile necesită multă refacere.
Metodologia de dezvoltare software Agile prevede refacerea în două forme: refacerea cerințelor (utilizatorii își dau seama de ce au cu adevărat nevoie) și refacerea software-ului (echipe de dezvoltatori găsesc modalități îmbunătățite de a scrie și proiecta aplicații). Dar aceasta este o problemă și întâlnită și în alte metodologii! Mai mult, o noutate Agile, precum modelul iterativ, servește pentru a reduce influența negativă a refacerii.
Avantajele și dezavantajele utilizării Agile
Avantaje:
- implicarea părților interesate — echipa devine mai capabilă să înțeleagă cerințele clientului. Mai mult, livrarea timpurie și frecventă a software-ului sporește încrederea părților interesate în echipa de proiect și face angajamentul în proiect mai profund.
- livrare timpurie și previzibilă — modelul de dezvoltare bazat pe iterații (în perioade scurte de 1 până la 6 săptămâni) oferă flexibilitate și promovează lansarea produsului.
- concentrarea pe valoarea de afaceri — colaborarea cu clientul asigură că echipa înțelege cum să facă produsul extrem de valoros pentru consumator.
- îmbunătățirea continuă a calității — testarea în timpul fiecărei iterații cu divizarea construcției finale în părți separate ale codului operațional facilitează îmbunătățirea și eliminarea erorilor software înainte de lansarea produsului final.
Dezavantaje:
- cerințe stricte pentru echipă și clienți — fără o interacțiune strânsă între echipa de proiect și utilizatori, este imposibil să se asigure lansarea unui produs de înaltă calitate cu o valoare înaltă. Mai mult, abundența uneltelor și metodelor Agile predetermină ca echipa să fie experimentată pentru o introducere corectă a acestora.
- nu este potrivit pentru externalizare și pentru proiecte în care participanții interacționează între ei doar în mod online.
- riscul ca versiunea software finală să nu fie niciodată lansată — surprinzător, acest dezavantaj provine din avantajele Agile, cum ar fi dezvoltarea iterativă și îmbunătățirea continuă a produsului.
- eșuează fără o viziune clară asupra scopurilor de afaceri ale proiectului — deoarece o echipă Agile este ghidată de părțile interesate, este imposibil să dezvolți un produs fără un scop și concept clar definite.
Aplicații
Nu toate serviciile sau programele de management al proiectelor se potrivesc pentru managementul proiectelor bazate pe Agile, deoarece fiecare dintre acestea are caracteristici specifice.
Dacă afacerea dvs. este o agenție de marketing&publicitate, design, SEO sau digitală, puteți utiliza serviciul SaaS de la Worksection pentru a opera întreaga echipă pe acesta. Până acum, suntem recomandați de COXO Digital, Royal ® Advertising și Prozorro.
Iată câteva trucuri de viață pentru a configura Agile în Worksection:
- configurați etichetele și statusurile care sunt necesare pentru munca din compania dvs. Statusurile pot fi: în desfășurare, verificare, completat, refacerea necesară, critic, funcționalități, plată datorată. Etichetele sunt adesea formulate astfel: layout, testare, producție, concept, cod.
- creați product backlog și sprintul de proiect.
- creați sarcini și liste preliminare de verificare, schițe etc. în backlog.
- în timpul întâlnirilor, determinați sarcinile sprintului și transferați-le din backlog în sprint.
- utilizați accesul oaspeților al clienților la sarcini astfel încât să aveți întotdeauna feedback coordonat și relevant asupra proiectului.
- etichetați persoanele responsabile în sarcini, astfel încât fiecare coleg să știe domeniul său de responsabilitate și să se simtă implicat în rezultatul sprintului.

Verdict
Datorită metodologiei de dezvoltare software Agile, echipele mari de proiect câștigă eficiență maximă. Agile se realizează prin metode flexibile precum Scrum, XP, Lean etc.
Nu poate fi implementat în grabă, de o echipă neexperimentată, într‑o perioadă scurtă de timp,
dar când este introdus, Agile va îmbunătăți interacțiunea între IT și afaceri, va stimula lansarea produsului pe piață și va adăuga valoare produsului pentru consumatorul final.