Waterfall – cum folosim acest model în organizația noastră

În universul dezvoltării de software există numeroase metodologii de management și organizare a proceselor. Una dintre aceste metodologii este reprezentată de Waterfall (dezvoltare în cascadă). La ce folosește ea și cum o putem folosi în compania noastră, aflăm în cele ce urmează.

Dacă avem de-a face cu un proces liniar-secvențial și cunoaștem de la început toate detaliile, iar pe parcursul dezvoltării nu vom avea modificări, atunci putem să folosim cu încredere această abordare.

Așadar este util să avem o listă clară cu cerințele proiectului, după care putem începe procesul de dezvoltare a software-ului.

În waterfall există 5 etape care se succed și nu se repetă:

  • Analiză
  • Design
  • Implementare și testare
  • Integrare și livrare
  • Mentenanță

Analiză: în cadrul acestei etape definim toate cerințele sistemului ce va fi implementat. Lista cerințelor o construim pe baza informațiilor primite de la stakeholders. Toate aceste cerințe vor alcătui un document care va reprezenta baza pentru următoarea etapă. Peste 35% dintre erorile software își au originea în fazele de analiză și proiectare, așadar trebuie să îi acordăm atenția cuvenită acestei etape.

Stakeholders sunt părţile interesate – persoane, grupuri de persoane sau organizaţii care au un interes în proiect şi care pot afecta, pozitiv sau negativ, realizarea acestuia.

  • Manageri din eşalonul superior al organizaţiei
  • Membri ai echipei de proiect
  • Utilizatori finali
  • Managerul de proiect
  • Proprietarul proiectului
  • Reprezentanți ai clientului
  • Furnizori
  • Parteneri
  • Reprezentanți ai administrației locale, guvern etc

Design: la acest pas studiem lista cerințelor obținută în etapă anterioară și elaborăm design-ul proiectului. Pe lângă design-ul de interfețe grafice vom defini și structurile de date ce vor fi folosite, arhitectura sistemului, dar și schema bazei de date. La finalul acestei etape vom avea un document cu specificațiile de proiectare.

Cerinţele – condiţii ce trebuie să fie întrunite sau îndeplinite de produsul, serviciul sau rezultatul livrat de proiect
Cerinţe legate de proiect – referitoare la cerinţele de afaceri, cerinţe de management al proiectului, cerinţe de livrare etc.
Cerinţe de produs – referitoare la cerinţe tehnice, cerinţe de securitate, cerinţe de execuţie etc.

Implementare și testare: după ce am finalizat proiectarea, divizăm cerințele în module și în acest moment începem efectiv implementarea de cod. Produsul software îl dezvoltăm inițial în programe de dimensiuni mici, numite ”unități”. După ce dezvoltăm fiecare unitate, acestea sunt testate.

În ceea ce privește testarea, ne vom concentra atât asupra logicii din interiorului unui program/unități, și avem în vedere că anumite componente ale acestuia să fie implementate, cât și pe funcționalitatea externă a sa, bazându-ne pe specificațiile stabilite. Astfel, comparăm rezultatele obținute după rularea programului cu seturi de date de test bazate pe specificații.

De asemenea, în dezvoltarea unui produs software testarea o realizăm pe mai multe niveluri: testarea de module, testarea de integrare, testarea de sistem și testarea de acceptare (validare).

Integrare și livrare: în această etapă toate unitățile dezvoltate în pasul anterior le vom integra și testa. În acest moment realizăm testarea întregului proiect pentru a verifica dacă acesta funcționează conform specificațiilor stabilite inițial. După ce realizăm cu succes testarea, livrăm produsul software către beneficiar.

Mentenanță: aceasta este ultima etapă din modelul Waterfall, însă spre deosebire de celelalte faze, aceasta nu are un termen de finalizare. De cele mai multe ori problemele unui produs software apar când acesta începe să fie folosit de utilizatori reali și de asemenea se mai știe faptul că fiecare soft are cel puțin o problemă. Așadar, în această etapă ne vom concentra pe două acțiuni: rezolvarea de probleme, verificarea licențelor, a versiunilor de instrumente și librării folosite pentru a asigura o bună funcționare a sistemului.

Evident, lucrul cu Waterfall ne poate aduce avantaje, dar și dezavantaje.

Avantajele Waterfall:

  • Estimarea poate fi realizată cu acuratețe, pentru că se cunosc de la început toate cerințele
  • Este o metodologie ușor de utilizat. Managerul de proiect, dar și echipa au informații detaliate despre produs, dar și un istoric al deciziilor și modificărilor
  • Etapele sunt implementate individual, deci există o bună separare în timp
  • Documentația existentă va reprezenta un real ajutor pentru membrii noi din echipă
  • Este recomandat pentru proiecte mici, cu un set de cerințe foarte bine definite

Dezavantajele Waterfall:

  • Este o metodologie rigidă, care nu suportă schimbarea și adaptarea pe parcursul dezvoltării proiectului
  • Problemele sunt identificate târziu, în general în etapa de testare și se poate întâmpla ca acestea să fie aproape imposibil de rezolvat
  • Din cauza unor întârzieri, de multe ori se consumă mai repede timpul alocat anumitor etape, de obicei testarea, și în acest mod este livrat un produs soft care nu este testat corespunzător
  • Problemele care apar în cadrul unei etape, de cele mai multe ori nu sunt toate rezolvate în același interval de timp cu etapa curentă
  • Nu este recomandat pentru proiectele complexe

După ce am finalizat proiectul, trebuie să luăm în calcul realizarea unei evaluări pentru a desprinde lecțiile învățate și a le utiliza în viitoarele proiecte, dar și pentru a aprecia proiectul și echipa care a contribuit la realizarea cu succes a acestuia. În cele din urmă, indiferent ce metodologie alegem, obiectivul principal este acela al obținerii rezultatelor pe care le dorim.

Împarte pe social media

Magda Miu

Magda Miu are o experiență de peste 7 ani în programare, iar în prezent este Senior Mobile Developer. A pus bazele departamentului de mobile din cadrul Roweb și este certificată ca Scrum Master și Product Owner. Magda este și mentor și trainer de Android și susține comunitățile de programatori, fiind co-organizator GDG Pitești și lider al comunității Women Techmakers România.

Comentarii. Intră în dezbatere

Alătură-te comunității noastre. Scrie bine și argumentat și poți fi unul dintre editorialiștii platformei noastre.