Există numeroase metodologii folosite pentru dezvoltarea de software, însă dintre acestea, Agile și Waterfall sunt cele mai importante și cele mai răspândite. La EXE, noi le-am folosit cu succes pe ambele și tocmai de aceea îți oferim o descriere a acestora, din perspectivă noastră.

Agile

  • Livrabil: produsul.
  • Potrivit pentru aplicații software ce trebuie livrate în cel mai scurt timp.

Metodologia este foarte des întâlnită în zilele noastre, când nevoile clientului sunt foarte urgente. Din acest motiv, există situații în care produsul final nu poate fi descris cu exactitate de la începutul proiectului. De aceea, uneori nu este nevoie de întocmirea unui caiet de sarcini care să conțină detalierea cerințelor clientului, deoarece schimbările se produc în mod constant (și este chiar recomandat să fie așa). Pentru ca schimbări benefice să aibă loc, clientul trebuie să mențină o legătură strânsă cu furnizorul de software, pe întreaga durată a dezvoltării produsului. De obicei, persoana care comunică în mod constant cu echipele de lucru implicate în proces este Product Owner-ul, care reprezintă în mod direct clientul. Există totuși și cazuri când clienții nu pot desemna un Product Owner care să fie implicat 100%, așa că acest rol este preluat de către un Business Analyst din compania de software, ce va lucra în numele clientului. Din acel moment, el va fi cel care va menține comunicarea cu stakeholderii implicați în proiect.

Agile începe cu un set complex de cerințe (cunoscut și sub numele de User Stories), care sunt ulterior evaluate și prioritizate. Odată prioritizate, acestea formează o structură ce urmează să fie divizată în sarcini mai mici, care alcătuiesc o iterație.

Această iterație reprezintă baza metodologiei Agile. Ea constă într-o perioadă de dezvoltare de maxim 30 de zile, alocată pentru implementarea primelor cerințe ale proiectului. În proiectele noastre, de obicei alocam două sau trei săptămâni unei iterații. La finalul acesteia, are loc o sesiune de testare și aprobare, efectuată de echipă de Quality Assurance. Când ciclul este complet, primele cerințe ale clientului – care vor fi funcționale în totalitate – sunt gata pentru a fi lansate.

Ceea ce trebuie să știi este că Agile folosește mai multe metode de project management: Scrum, Extreme Programming, Agile Unified Process și Agile Microsoft Solutions Framework. Având în vedere că este cea mai populară, probabil în etapa de dezvoltare te vei întâlni foarte des cu metoda Scrum. Aceasta este și alegerea noastră în proiectele Agile, și putem confirmă că rezultatele sunt pozitive. Întregul proces este organizat în ședințe scurte, de câte 15 minute, susținute de un Scrum master care ține evidența progresului făcut de la o întâlnire la alta.

Dacă ai o nevoie și ști în mare ce soluție ar putea săo rezolve, însă nu ai foarte clare toate funcționalitățile, această metodologie este cea mai potrivita deoarece la fiecare iterație poți să adaugi sau să excluzi funcționalități, optimizând astfel costurile.

Waterfall

  • Livrabil: documentația proiectului, caietul de sarcini cu cerințele de software, testare, manualul de utilizare, produsul.
  • Această metodologie este potrivită pentru aplicații software de dimensiuni mari.

Nu există Waterfall fără un caiet de sarcini solid, folosit încă de la început. În timp ce Agile poate obține rezultate imediate și permite numeroase schimbări și îmbunătățiri de-a lungul procesului de dezvoltare, Waterfall nu lasă loc pentru nicio modificare pe parcursul proiectului.

Pentru Waterfall, fiecare etapă are loc exact ca în caietul de sarcini, până la finalul dezvoltării, atunci când produsul final este trimis spre echipa de Quality Assurance, pentru testare. Dacă între timp este cerută vreo schimbare, această devine automat parte din procesul de Change Management ce are loc ulterior. Având în vedere că nu se face nicio modificare în timpul procesului de dezvoltare, nu este nevoie de o comunicare strânsă între client și furnizorul de software. Clientul va primi aplicația în formă finală, la data stabilită prin semnarea contractului, cel mai probabil după multe luni.

Teoretic, ordinea etapelor de dezvoltare nu poate fi schimbată, iar succesiunea acestora este, invariabil, următoarea: analiză, design, cod, testare și implementare. Totuși, există și un dezavantaj major: riscul ca, în final, produsul să nu răspundă la toate nevoile clientului. În acest caz, se solicită modificări după ce s-a încheiat proiectul, se alocă un nou buget și se face un nou caiet cu cerințele ce nu au fost incluse la prima dezvoltare.

La EXE Software, pentru a minimaliza acest risc, în special la proiectele care necesită o descriere în detaliu a specificațiilor produsului, aplicăm și unele principii ale metodologiei Agile. Acestea au scopul de a oferi rezultate intermediare, și sunt constant verificate cu clientul pentru a primi feedback. Procesul de Change Management există în continuare, însă are loc într-un stagiu incipient, nu la finalul proiectului.

Când alegi o metodologie pentru dezvoltarea de software, este foarte important să ții cont de tipul afacerii pe care o conduci și de caracteristicile sale principale. Pentru a putea evalua toate elementele ce trebuie luate în considerare și pentru a lua cea mai bună decizie, am creat un infografic ce ilustrează procesul decisional că pe o călătorie. Urmează calea și află ce metodologie este cea mai potrivită pentru proiectul tău.