Agile sau Waterfall? Fie ca esti developer, fie ca lucrezi cu echipa externa pentru dezvoltarea unei solutii digitale, alegerea modelului potrivit de development este esentiala pentru a obtine rezultatul scontant.
De aceea, in acest articol vei gasi informatii despre:
- ce inseamna Agile?
- ce este abordarea Waterfall?
- Waterfall vs. Agile
- modelul hibrid
- ce metodologii folosim in Roweb
Modelul Agile
Metodologia Agile si-a depasit scopul initial, in momentul de fata fiind considerata metoda moderna de a livra performanta la nivel de procese de dezvoltare si chiar in afara acestui domeniu. Industrii precum marketing, vanzari sau alte domenii care nu sunt legate direct de software development au imprumutat principiile agile dovedind ca astfel de metodologii pot fi aplicate la o scara mai larga.
Abordarea Agile permite procese adaptative si evolutive, ajutand companiile sa raspunda rapid schimbarilor din piata si tehnologice.
Agile are o istorie interesanta. Desi abordarea pare sa fi aparut in 1620 (integrata in metoda stiintifica a lui Francis Bacon), aceasta metodologie a fost mai bine evidentiata in 1986 cand a fost creata pe modelul dezvoltat de Hirotaka Takeuchi si Ikujiro Nonaka (autori ai lucrarii “The New New Product Development Game”). Conceptul era relationat de principiile din rugby dintr-o perspectiva metaforica, definind modul in care echipele conlucreaza pe teren.
“Abordarea din perspectiva “predarii stafetei” in dezvoltarea de produs poate fi in antiteza cu obiectivul de maximizare a vitezei si flexibilitatii. In schimb, este preferata o abordare holistica folosind principiile jocului de “rugby” – in care echipa incearca sa parcurga distanta ca o singura unitate – care poate fi alegerea corecta pentru a indeplini mai bine cerintele competitive din zilele noastre”.
Revenind in zilele noastre, probabil ca te intrebi de ce este agile prima alegere atunci cand urmeaza sa fie demarat un nou proces de software development.
Iata ce spun statisticile despre aceasta alegere:
Exemple de metodologii Agile
- Scrum – o abordare Agile structurala care sa se bazeze pe un set complet de principii de management. Focusul principal este pe obtinerea de rezultate rapide prin diviziunea proceselor in stadii – sprint-uri;
- eXtreme Programming (XP) – focusat pe livrari frecvente si cicluri scurte de dezvoltare;
- Feature Driven Development (FDD) – procesul de dezvoltare este concentrat pe dezvoltarea progresiva a functionalitatilor;
- Dynamic Systems Development Method (DSDM) – concentrat pe intregul ciclu de dezvoltare folosind termene limita fixe;
- Adaptive Software Development (ASD) – are la baza repetarea ciclurilor de dezvoltare la nivel de colaborare si invatare;
- Crystal – principiul sau de baza se refera la responsabilizarea echipelor in implementarea de solutii proprii – “oameni pentru procese”.
- Lean Software Development (LSD) – focusat pe optimizarea timpului de dezvoltare si resurselor.
Cum functioneaza modelul Agile
Agile este o abordare colaborativa, auto-organizata si cu functionalitati care permit permutari si care a fost creata ca sa ofere managerilor echipelor de development suportul necesar pentru o coordonare mai eficienta a membrilor echipelor.
Metodologia Agile presupune divizarea sistemelor in procese verticale – mai mici si mai usor de manageriat – care pot fi livrate intr-o perioada mai scurta de timp.
Principalele faze ale ciclului Agile:
- Cerinte
- Design
- Dezvoltarea si structurarea codului
- Integrare si testare
- Implementare si livrare
- Review
Avantaje
- Ofera mai mult spatiu pentru colaborare (de exemplu: intre client si echipa de dezvoltare);
- Clientul este implicat in procesul de dezvoltare software;
- Predictibilitate ridicata si livrari rapide (facand posibila testarea inainte de deadline-urile stabilite);
- Abordare focusata pe utilizator (definita ca filosofie care are ca punct central utilizatorul);
- Ofera calitate ridicata (fiind divizata in segmente mai mici si mai usor de manageriat);
- Dezvoltari si implementari rapide;
- Flexibilitate ridicata (sistemul poate fi usor adaptat si cerintele pot fi modificate);
- Dezvoltare cu focus pe valoare (cu focus pe nevoile utilizatorilor finali).
Provocari
- Testare permanenta;
- Presupune interactiuni mai dese (care sunt consumatoare de timp);
- Documentatie minimala;
- Complexitate mai mare in definirea obiectivelor proiectului;
- Independenta mare.
Acest model este potrivit pentru…
Modelul Agile este o alegere foarte buna, cu siguranta. Dar este ea oare potrivita pentru orice tip de proiect / companie?
Agile este metodologia potrivita pentru tine daca:
- ai nevoie de optimizari frecvente in proiect;
- proiectul are cerinte slab definite/dinamice;
- partile implicate in proiect se afla in proximitate;
- ai in echipa oameni care lucreaza eficient atat independent cat si in echipa.
Modelul Waterfall
Cunoscut ca model traditional pentru procesele de dezvoltare, Waterfall este o metodologie fixa, lineara care se bazeaza pe faze secventiale Systems Development Life Cycle (SDLC). Dincolo de acest aspect, o serie de cerinte foarte bine definite si un plan care trebuie sa fie stabilit din start sunt premisele care asigura gradul mare de predictibilitate a metodologiei Waterfall (care este perceputa, intr-o oarecare masura si mai rigida).
Bazandu-se pe principiul “planifica de doua ori, implementeaza o singura data”, modelul Waterfall cere atentie mult mai mare in faza de definire a documentatiei si obiectivelor proiectului. Asadar, putem spune ca abordarea Waterfall este creata pe principiul de domino: compromiterea unui element/proces va afecta intregul sistem.
Cum functioneaza modelul Waterfall
Metodologia Waterfall se bazeaza pe 5 etape de baza si functioneaza cronologic (fiecare pas din proces fiind esential).
Cele 5 etape ale metodologiei Waterfall:
- Cerinte
- Design
- Implementare
- Testare
- Livrare si mentenanta
Avantaje
- depistarea timpurie a erorilor;
- estimari de cost cu acuratete ridicata;
- urmarirea facila a proceselor;
- cerinte bine definite;
- acomodarea rapida a developerilor noi;
- stabilitate predictibila si ridicata in obiective si procese.
Provocari
- lipsa de flexibilitate;
- orice intarziere poate afecta intregul proiect;
- clientii nu sunt implicati in procesul de dezvoltare;
- o abordare lineara poate insemana uneori si rigiditate.
Acest model este potrivit pentru…
- proiecte cu cerinte stabilite din start;
- clienti care nu vor sa faca modificari ulterioare in solutia livrata;
- companii care vor predictibiliate mare atat la nivel de cost cat si la nivelul proceselor.
De obicei, metodologia si principiile Waterfall sunt potrivite pentru dezvoltarea de produse digitale.
Waterfall vs. Agile
Abordarea de tip hibrid
Abordarea de tip hibrid este o alegere foarte buna pentru proiectele in care fie vrei sa faci trecerea de la o abordare traditionala de tipul Waterfall catre Agile, fie esti interesat sa ai atat premise bine definite (cerinte, bugete, obiective), cat si procese rapide de dezvoltare (design, planificare, etc).
Metoda Agile-Waterfall este folosita pentru dezvoltarea de software si solutii digitale punctuale (care au atat elemente de hardware, cat si de software).
Ce ajuta ca aceste metodologii sa functioneze atat de bine impreuna este faptul ca Agile este o filosofie care forteaza Waterfall-ul sa fie mai flexibila.
Ce metodologii folosim in Roweb
De la abordarea Waterfall la metodologiile Agile (in special Scrum si Scrumban), si abordarea de tip hibrid (Agile + Waterfall), avem experienta extinsa in lucrul cu o serie de modele.
Odata ce identificam nevoile si oportunitatile pentru fiecare proiect (in faza de analiza/audit), stabilim, impreuna cu clientul, modelul care raspunde cel mai bine nevoilor lui, echipa (de exemplu echipa de development alocata), etc. Pe scurt despre echipa dedicata de development de la Roweb: Scopul principal al echipei dedicate este sa lucreze ca parte a echipei clientului, pentru a oferi solutii de calitate, unice si specifice fiecarui proiect. Cu peste 130 de dezvoltatori, oferim echipe complete de dezvoltatori cu experienta sau un grup dedicat de dezvoltatori cu capacitatile tehnice adecvate pentru nevoile dvs. specifice.
Lucram pentru:
- companii care trebuie sa angajeze si sa garanteze echipe IT rentabile pentru proiect;
- companiile interesate de dezvoltarea de produse noi, fara a impacta echipa de baza;
- companii dinamice cu obiective de dezvoltare mereu in schimbare, care nu isi pot permite un proces de angajare de lunga durata;
- start-up-uri care trebuie sa isi extinda echipa de dezvoltare pentru a-si atinge obiectivele de afaceri.
Selectarea corecta a companiei care ofera servicii de outsourcing: top criterii pe care sa te bazezi
- mai mult de 10 ani de experienta pe piata de IT – iti ofera garantia ca proiectul tau va fi preluat de o echipa cu experienta;
- varietate de proiecte in portofoliul companiei – este ilustrativ atat pentru echipele dedicate, cat si pentru industria ta;
- un numar stabil si mare de angajati – cu cat o companie are mai multi angajati, cu atat ii va fi mai usor sa iti ofere echipa de care ai nevoie;
- rolurile in echipa oferite de catre companie – o garantie in plus ca te poti baza pe o echipa completa pentru dezvoltarea proiectului;
- proiecte care nu sunt intrerupte de procesul de recrutare – procesele de recrutare sunt facute pe baza unor tehnologii eficiente si moderne.
Despre serviciile de outsourcing de la Roweb: care este abordarea noastra?
Roweb este o companie de software development care activeaza in piata din 2004 si care, in prezent, are birouri in 4 orase: Bucuresti, Pitesti, Craiova si Ramnicu Valcea.
Cu cei peste 130+ experti IT specializati in tehnologii moderne, ne concentram pe dezvoltarea de solutii Business, Web, Mobile si E-commerce.
Dezvoltam proiecte pentru companii din intreaga lume si avem capabilitatea sa intelegem nevoile specifice ale diferitelor tipuri de business-uri (de la start-up-uri la corporatii) si industrii.
“Am creat compania in 2004 cu scopul de a aduce pe piata produse software capabile sa rezolve problemele clientilor. Ideea din spatele companiei este de a oferi servicii competitive, atat din perspectiva costurilor, cat si din cea a calitatii, sa construim un portofoliu solid de clienti impreuna cu care sa crestem si sa ne dezvoltam. Ne propunem constant sa fim cu un pas inaintea schimbarilor, lucrand cu tehnologii moderne astfel incat clientii nostri sa beneficieze pe termen lung de solutii flexibile. Misiunea noastra este de ne sincroniza abordarile de development cu inovatiile tehnologice astfel incat solutiile software dezvoltate de noi sa se pastreze relevante pe piata pe termen lung.”
Viorel Costea | Co-Founder & CEO Roweb
(Afla mai mult despre modelele si serviciile de outsourcing pe care le oferim din articolul Modelul de echipe dedicate: abordarea noastra (interviu + studii de caz) )
Avem echipe in-house de software development, capabile sa preia dezovoltarea integrala a unui produs digital – de la faza de consultanta si analiza de business la arhitectura de solutie, implementare, post-implementare, testare si mentenanta.
“Focusul nostru ramane constant pe construirea de echipe stabile. Optimizarea costurilor din proiect reprezinta mereu un subiect de interes – astfel ca este esential sa avem o predictibilitate mare a echipelor. Pentru multe proiecte, arhitectura cea mai potrivita de echipa include developeri de pe diferite niveluri de experienta: junior, middle si senior. De aceea, strategia noastra de angajare integreaza inclusiv atragerea de studenti din universitati de profil – oameni in a caror evolutie investim constant.”
Viorel Costea | Co-Founder & CEO Roweb
Ai nevoie de suport pentru dezvoltarea unui proiect prin servicii de outsourcing? Programeaza o sesiune gratuita de consultanta cu unul dintre expertii nostri.