În Inspirație

Cum se lucrează într-o agenţie de web development?

cum-se-lucreaza-in-web-development

Într-o lume în care tehnologia își face simțită prezența din ce în ce mai mult în viețile tuturor, firmele de web development au fost nevoite să își adapteze structura și procesele pentru a face față cererii tot mai mari de produse de acest tip. Piața necesită un grad sporit de agilitate și adaptabilitate la nevoile clienților.

Astfel, vorbim de o structură organizațională orientată spre proiecte.

Fiecare nou proiect are o echipă dedicată în totalitate acestuia și este coordonat de către un manager de proiect. Rolul managerului este să creeze echipa potrivită pentru fiecare proiect și să livreze cerințele clientului în timpul și bugetul alocat.

 

Cum abordăm proiectele?

 

Fiecare proiect este unic, așa că modul de lucru este stabilit în funcție de răspunsul la întrebări precum:

• Ştie clientul exact ce dorește să i se livreze la finalul proiectului? Dacă da, există un document care să conțină scopul detaliat al proiectului? (documentul de specificații)

• Se dorește o cotație fixă de preț, sau doar o estimare high level?

• Poate fi proiectul dezvoltat incremental sau trebuie livrat totul deodată?

 

Metodologia Waterfall și planificarea în detaliu a proiectelor

 

Atunci când scopul unui proiect este cunoscut și detaliat de la început, se poate face o ofertă de cost și se poate stabili durata de dezvoltare, în baza unui proces de planificare. În acest caz, proiectul poate fi planificat în detaliu de la început.

 

Odată ce specificațiile sunt gata, este necesară etapa de planificare, care poate dura între 3-10 zile, în funcție de complexitatea proiectului. Aceasta este necesară pentru stabilirea costului și duratei proiectului, precum și a modului în care vor fi alocați oamenii și restul resurselor.

 

Acest proces este condus de către managerul de proiect, împreună cu echipa, și este realizat prin:

  • Identificarea livrabilelor principale
  • Descompunerea acestora în livrabile (task-uri) mai mici, mai ușor de gestionat și estimat (Work Breakdown Structure)
  • Stabilirea dependențelor între task-uri (ex. Task-ul X trebuie să înceapă doar după ce task-ul Y a fost finalizat, dar poate începe în același timp cu task-ul Z)
  • Alocarea resurselor pe task (se stabilește cine lucrează la ce task)
  • Estimarea duratei de dezvoltare
  • Identificarea riscurilor negative și a oportunităților, precum și implementarea soluțiilor de mitigare în planul de proiect

 

Avantajul unei abordări de acest tip este că firma prestatoare de servicii poate planifica din timp alocarea resurselor corespunzătoare, iar clientul cunoaște costul proiectului, precum și data la care acesta va fi livrat.

 

Totuși, metodologia de tip waterfall are și o serie de dezavantaje:

 

  • Investiție în consultanță: dat fiind faptul că specificațiile proiectului trebuie să fie detaliate, clare și finale, acest lucru presupune, în anumite cazuri, o investiție în consultanță și un timp mai mare până la startul execuției.

Metodologia waterfall nu este foarte prietenoasă cu modificările.

Astfel, orice modificare trebuie estimată și aprobată. În același timp, datorită modului în care lucrurile sunt structurate și planificate în această metodologie, costul și dificultatea modificărilor cresc pe măsură ce acestea sunt implementate mai târziu în proiect.

waterfall

Această dependență între costul modificarilor și momentul aplicării lor este valabilă în orice proiect gestionat waterfall, indiferent de industrie.

Imaginați-vă doar că vreți să construiți o casă, dar pe parcurs vă dați seama că vreți ca ușa de la intrare să fie mai mare. Costurile modificării pot varia de la foarte puțin, dacă trebuie modificat doar planul casei, până la sume considerabile, dacă peretele a fost deja construit, tencuit, zugrăvit și izolat.

 

Așadar, acest mod de lucru este potrivit pentru proiectele în care există nevoia de a cunoaște costul și durata de dezvoltare încă de la început, susținută de un set complet, detaliat și final de specificații.

 

Metodologia SCRUM – abordare de tip AGILE

 

Nu toate proiectele sunt însă atât de clar definite încă de la început.

Uneori, clientul are doar o idee de ansamblu asupra livrabilului final, însă dorește să stabilească detaliile pe măsură ce acesta prinde contur.

În acest caz, planificarea în detaliu a dezvoltării proiectului nu este posibilă. Se optează pentru o planificare pentru perioada imediat următoare, timp în care se pot stabili detaliile pentru următoarea perioadă.

Există mai multe abordări de tip Agile, cea mai cunoscută fiind, poate, SCRUM, în care un Product Owner creează încontinuu specificații sub forma de user stories pentru echipa de dezvoltare. Acesta planifică activitatea și lucrează în perioade de 2-4 săptămâni, numite sprint-uri.

 

Elemente comune în procesul de web development

 

Oricare ar fi abordarea aleasă, dezvoltarea software trece prin câteva etape bine stabilite.

Așadar, indiferent că vorbim despre waterfall sau agile, orice feature are nevoie de o descriere din care să reiasă care sunt așteptările clientului cu privire la livrabilul final. Cum ar trebui să funcționeze? Ce zone afectează? Cum ar trebui să arate?

Acestea sunt întrebări la care solicitantul dezvoltării ar trebui să răspundă prin intermediul descrierii task-ului.

În cazul abordării de tip waterfall, proiectul este descris ca un întreg în documentul de specificații, pe când în agile proiectul este împărțit în user stories, acestea fiind specificate și tratate separat.

Odată ce task-urile au fost dezvoltate, ele trec printr-o etapă de verificare a calității. Contrar părerii populare, calitatea într-un proiect nu se referă la nimic altceva decât la conformitatea cu specificațiile.

Orice este în plus sau în minus este o deviere de la scopul inițial și raportat ca bug de către tester, cel care este responsabil de asigurarea calitătii în proiect.

Din punctul în care ajunge la tester, un task/feature poate trece mai departe dacă nu sunt găsite probleme sau se poate întoarce în dezvoltare, împreună cu o listă a problemelor descoperite și detaliile necesare (nume bug, descriere, pași reproducere, severitate etc).

workflow

Livrarea codului către client depinde de modul de lucru stabilit împreună cu acesta. În cazul proiectelor abordate waterfall, codul este livrat la sfârșitul proiectului, pe când în SCRUM acceptanța se face la finalul sprint-ului din care face parte feature-ul respectiv.

 

Deși toate proiectele au un început și un sfârșit, munca nu se termină odată cu livrarea acestora. Colaborarea poate continua în baza unui contract de mentenanță. Acesta poate fi de tip FTE (resursele sunt alocate și plătite, indiferent de volumul de muncă) sau time & material (în funcție de numărul de ore lucrate).

 

La Innobyte, tratăm fiecare proiect în mod individual și găsim întotdeauna cea mai bună abordare. Fie că vorbim despre un proiect cu un scop clar și detaliat, fie că se pleacă de la o idee de business, este întotdeauna o plăcere să construim puntea dintre nevoi și soluții.


Alexandru Tudor, Senior Project Manager @Innobytealex-tudor
Alex are o experiență de peste 7 ani în project management. Pasionat de acest domeniu și dornic să își perfecționeze cunoștintele, el a obținut cu succes certificările de Project Management Professional (PMP), Magento Certified Solution Specialist, Professional Scrum Master 1 şi Cisco Certified Network Associate.

innobyte

Cu o experiență de peste 10 ani în domeniu, Innobyte oferă soluții optime de web, mobile și e-commerce pentru companii de top din întreaga lume.