1. De ce scriem acest articol?
În multe din anunturile de joburi pe care le vezi pe LinkedIn, apare și liniuța care spune “Working with the Agile/Waterfall methodologies will be a plus” ceea ce înseamnă că este bine să cunoști procesele și metodologiile pe care companiile le folosesc în implementarea proiectelor.
Sigur ai auzit de la prieteni care lucrează sau ai experimentat pe pielea ta proiectele la care se lucrează în cadrul unei companii. În acestea există mai multe echipe care lucrează la diferite componente. Acestea sunt cerute de clienți, care pot fi atât interni, cât și externi. Pentru a gestiona toate activitățile din interiorul proiectului, firmele au apelat la metodologii cum ar fi Agile sau Waterfall, în funcție de nevoi, pentru a putea gestiona mai bine acțiunile petrecute în procesul de dezvoltare.
Dacă te întebi ce reprezintă un framework/metodologie, atunci pot să-ți spun că metodologia Agile, de exemplu, are mai multe moduri în care se poate implementa într-o companie și așa au apărut mai multe modalități care se numesc framework-uri.
Acum, nimeni nu se așteaptă să cunoști fiecare framework folosit în metodologia respectivă, dar o idee despre ce înseamnă “Waterfall” sau “Agile” o să conteze atât ca primă impresie pentru interviu, cât și ca bază de informații cu care pleci la drum în carieră.
2. De ce folosesc companiile aceste metodologii?
Majoritatea companiilor din domeniul IT folosesc metodologii după care își ghidează activitatea deoarece acestea oferă companiilor 3 puncte cheie pentru un business bine pus la punct și anume:
Control: O metodologie îți oferă control asupra proiectelor deoarece procesele care sunt integrate evidențiază transparența tuturor fazelor proiectelor și totodată contextul pentru a putea interveni dacă ceva nu este conform planului.
Transparență: Lucrând după niște procese bine stabilite, fiecare activitate are atribuită niște responsabili, iar acestea sunt trasate. Acest lucru ajută ca fiecare persoană implicată să-și știe rolul, dar și clientul care își dorește să fie realizat proiectul va avea o mai bună trasabilitate pentru a vedea de unde vin costurile pe care la final va trebui să le susțină.
Managementul riscului: Într-o metodologie există procese pentru aproape orice, iar într-un proiect complex, exista posibilitatea să ai de a face cu probleme la care nu te-ai fi gândit, iar pentru asta există un proces de rezolvare a problemelor. Practic, dacă vei ști să gestionezi problema, este ca și rezolvată.
3. Care sunt metodologiile folosite în domeniul IT?
Cel mai des folosite metodologii sunt Waterfall și Agile, iar pentru cea din urmă există mai multe framework-uri pe care companiile le practică, iar cea mai cunoscută și folosită este SCRUM. Waterfall mai este cunoscută ca și metoda tradițională deoarece istoric vorbind, este prima metodologie apărută și folosită în domeniul IT.
În ultimii ani, multe din companii au început să migreze de la tradițional la nou, așa că vă voi lăsa mai jos o diagramă care vă va evidenția mai bine această trecere. În prezent, numărul echipelor care folosesc waterfall scade considerabil, deoarece modul Agile se pliază mai ușor pe dinamismul cu care evoluează companiile IT.
4. Ce este Waterfall?
Waterfall (metodologia tradițională) este un mod de lucru secvențial care a pierdut din popularitate în ultimii ani, dar popularitatea nu are de-a face cu faptul că în unele proiecte este mai bine să alegi acest mod de lucru. Într-adevăr, fiecare companie se asociază cu una dintre cele 2 metodologii, dar consider că învățând despre modul de lucru tradițional poți învăța mai ușor și înelege metodologia Agile prin comparația celor două.
Metodologia aceasta presupune urmarea pașilor pe care îi folosim în cazul ambelor moduri de lucru, dar nu pașii aceștia definesc Waterfall, ci modul în care se realizează fiecare activitate din cele de mai jos și anume cascadat, așa cum îi spune și numele.
Fiecare pas de mai jos trebuie să fie realizat înainte de începerea următorului pentru a nu exista posibilitatea de întreruperea procesului de realizare a proiectului.
Cei 6 pași prin care trebuie să treci pentru a putea spune că ai terminat un proiect:
- Conceptul: Partea în care proiectul este la stadiul în care părțile implicate se gândesc cum să dezvolte proiectul.
- Inițierea & Analiza: Acest punct presupune partea în care sunt documentate toate cerințele proiectului.
- Design: Se decid funcționalitățile și necesarul dezvoltat pentru ca aplicația să fie utilizabilă.
- Construcția și Codul: În această parte încep dezvoltările software și odată cu ele și testarea pe masura ce fiecare cerință este integrată în cod.
- Testarea: Se testează toată aplicația cap-coadă pentru a verifica funcționalitățile cerute de client. În această parte intră și dezvoltările generate de apariția bug-urilor.
- Implementarea: Se referă la momentul în care aplicația este prezentată și dată în folosință persoanei care a cerut proiectul.
În plus față de aceste informații, ceea ce e important este că folosind acest mod de lucru, clientul care înaintează cerința are 2 momente în care interacționează cu persoanele care lucrează la acesta și anume atunci când oferă cerințele și atunci când primește gata făcut proiectul. Acest lucru poate fi un dezavantaj deoarece în IT adaptabilitatea este un punct forte, iar această metodologie nu este atât de prietenoasă cu adaptarea unor cerințe noi adăugate în portofoliu pe parcursul proiectelor.

5. Ce este Agile?
Dacă observi, la multe din companiile de IT, Agile este viitorul pentru că așa cum îi spune și numele se pliază mai bine pe cererea pieței care are un dinamism căruia cu greu îi faci față dacă nu există un plan bine stabilit. Pe lângă Agile, poate ai auzit de SCRUM care este un framework agil și este folosit în multe corporații.
Mai exact, această metodologie are ca scop implementarea pașilor pe care i-am spus mai sus, dar modul în care îi implementează este total diferit. Față de tradițional, Agile pune pe primul loc clientul care a venit cu cerința și fiecare fază a proiectului este asigurată de o confirmare dată de acesta.
Alt lucru definitoriu este faptul că există termenul de rectificare, dacă poate fi îmbunătățit ceva, cu siguranță va fi, față de modul Waterfall în care odată venită cerința ea așa va trebui implementată.
Folosind această metodologie, practic vei reuși ca dezvoltator să-ți pui creativitatea la treabă și să nu fi constrâns atât de mult de cerințele inițiale deoarece întotdeauna vei comunica cu persoana de la care a venit cerința pentru a găsi varianta cea mai bună pentru proiectul la care lucrezi.
Pare că este o variantă bună pentru unele proiecte pentru că deși adaugă mai multe reguli pe parcursul unui proiect, lasă mai multă libertate de exprimare între client și contractor ceea ce în final face ca lucrurile să aibă o concluzie bună, dar mai ales utilizabilă în piață.
Totuși, trebuie avută destul de multă grijă deoarece timpul în care este livrat este foarte important, iar dacă în waterfall totul este clar și fiecară fază este bine încadrată în timp, aici poți cădea ușor în problema întârzierilor, deoarece la un moment dat consideri normale toate micile revizuiri pe care le aduci în etapele proiectului.
Dar aceste probleme se pot rezolva foarte ușor deoarece echipele care participă la proiect se auto-organizează, deci automat vor fi și responsabile în tot procesul de definitivare al proiectului. Aceste caracteristici fac ca Agile să fie mult mai folosită de companii deoarece ce-ți poți dori mai mult decât o echipă care-și organizează singură lucrurile fără a fi nevoie de alte intervenții exterioare.
Concluzie
Bun, acestea fiind spuse, cred că ți-ai dat seama de diferențele dintre cele 2 metodologii și că ți-ai dat seama de importanța cunoașteri acestor procese.. Cu siguranță sunt multe detalii interesante pe care le vom aborda în următoarele postări.
Personal, consider că fiecare mod de lucru este valid în funcție de proiect și totodată de conjunctură. De exemplu, dacă lucrezi cu statul și ai nevoie de toate documentele semnate pentru a înainta o fază a proiectului, nu o să-ți dorești implementarea Agile și vei fi bucuros cu ceea ce îți oferă tradiționalul. Pe cealaltă parte, dacă lucrezi într-o companie ca Spotify, acolo cu siguranță nu ai putea să lucrezi altfel decât Agile deoarece creativitatea este un pilon după care aceștia se ghidează, iar atunci când vrei să fii creativ, trebuie să fii și pregătit de schimbări.
Tu ce metodologie folosești la locul de muncă? Dacă încă nu ești angajat, cum ți s-au părut informațiile de mai sus?