Cum? Team Leader într-o echipă Scrum??? Păi “Team Leader” e un titlu, iar în Scrum nu există titluri! O spune chiar Biblia Scrum, “The Scrum Guide“: “Scrum recognizes no titles for Development Team members, regardless of the work being performed by the person”.

 

Ei bine, în acest articol încerc să te conving că un Team Lead este chiar vital într-o echipă Scrum.

 

Framework-ul Scrum are un grad mare de rigiditate. Ca o paranteză, între noi fie vorba, dau vina pentru această rigiditate pe profilul celor ce au formalizat Scrum, dar aceasta e o discuție pentru un alt articol. Revenind la articolul nostru și la această rigiditate/inflexibilitate a Scrum-ului, aceasta face ca toate companiile să încerce să-l adapteze. De câte ori nu vi s-a întâmplat să mergeți la un interviu și să vi se spună că organizația folosește “Scrum adaptat”, “Scrum cu modificări” sau “o implementare proprie de Scrum”?

De ce încearcă toate companiile să adapteze framework-ul Scrum? Pentru că are câteva probleme.

Problema principală cu Scrum este că vede lucrurile doar într-un anume punct din timp, un punct în care echipa a atins o stabilitate, o maturitate, care-i permite să funcționeze după regulile impuse de framework. Doar că, în realitate, echipa se află într-o continuă transformare. Scrum, așa cum este el formalizat în Scrum Guide, ignoră complet procesul de transformare a echipei. Sau, dacă luăm totuși în considerare ceremonia “Sprint Retrospective”, tratează schimbarea și evoluția echipei într-un mod superficial, fără a oferi explicații sau soluții, motiv pentru care această ceremonie este cea mai puțin înțeleasă, utilizată și apreciată ceremonie din Scrum.

 

Pentru a unge rotițele Scrum și a aborda corect procesul de transformare a echipelor, soluția pe care eu o propun este un rol formal de Team Leader peste Development Team.

 

De ce are nevoie Development Team-ul de un Team Lead?

Development Team-ul într-o echipă Scrum, la fel ca orice alt grup format din oameni ce lucrează pentru un scop comun, e un grup dinamic, în continuuă schimbare, care trece prin diverse etape.

Modelul Tuckman de dezvoltare al echipelor, cel mai cunoscut model utilizat în prezent, spune că o echipă trece 4 etape: Forming, Storming, Norming, Performing.

O echipă, în etapa ei de formare, se află în etapa de Forming. Este etapa de construcție, de tatonare și de cunoaștere.

După această etapă, urmează cea de Storming. În etapa de Storming, fiecare membru al echipei încearcă să-și impună propriile păreri și filosofii asupra modului de lucru, a tehnologiilor, a proceselor de lucru, etc. Este etapa de conflicte, confruntări, reașezări, mutări, demisii. Fără un “decision-maker”, fie el formal sau informal, în această perioadă, echipa va reuși extrem de greu să ajungă la o stabilitate și să treacă în etapa de Norming. Sau, în unele cazuri mai extreme – nu va reuși deloc – cu consecințe grave pentru proiect, companie și membrii echipei.

Așa că rolul principal al Team Lead-ului într-o echipă Scrum este să treacă echipa cu ușurință prin etapa de Forming și a o ajuta să nu rămână blocată prea mult timp în etapa de Storming.

 

Dar, practic, ce trebuie să facă zi de zi un Team Lead al Development Team pentru a-și îndeplini aceste obiectivele?

 

Ia deciziile tehnice mai complicate. Folosește (și) experiența celorlalți membri ai echipei, le cere părerea, analizează opțiunile, apoi ia o decizie. Foarte important aici este să explice această decizie întregii echipe.

Decide în disputele de ordin tehnic în interiorul echipei. Când apar discuții de ordin tehnic, se poziționează ca un mediator care ajută la luarea unei decizii în consens de către cei aflați în dispută. Dacă un consens nu este posibil, își asumă răspunderea de a alege el însuși un câștigător al disputei. Foarte important aici este să-și mențină imparțialitatea, indiferent de legăturile personale sau profesionale le are cu cei ce sunt în dispută.

Stabilește best-practices și standarde. Aici este clar. Team Lead-ul își folosește experiența vastă pentru a decide ce standarde și best-practices va folosi echipa. Orice dispută pe care le-ar avea programatorii, de exemplu, între spații VS tab-uri,  numărul de caractere pe linie, convenții de naming, etc., trebuie rezolvată rapid și impusă ca standard în echipă. Fiind puțin importante dar generatoare de discuții interminabile, cheia aici este ca aceste decizii să fie luate rapid, chiar dacă nu există o justificare clară pentru ele.

Participă la întâlniri tehnice cu stakeholderii. Uneori, diverși stakeholderi din companie sau chiar externi, au nevoie de explicații tehnice asupra proiectului pe care lucrează echipa Scrum. Pentru că nu este nevoie de întreaga echipă la aceste întâlniri, Team Lead-ul va fi reprezentatul ei. Va da explicații tehnice și va analiza diverse opțiuni din punct de vedere tehnic. Cel mai important lucru aici este ca Team Lead-ul să nu ia decizii sau asumări fără a se consulta cu întreaga echipă.

Face code-review-urile considerate mai sensibile. Deși într-un Development Team stabil se practică cross code-review, în care nu contează cine face code-review, pentru o echipă nouă sau mai puțin experimentată ar fi recomandat ca acesta să fie făcut de Team Lead atunci când codul este vital pentru proiect. Exemple: un algoritm mai complicat, un framework folosit într-un mod nou/inedit, etc.

Sincronizează tehnic membrii echipei. De multe ori, membrii Development Team-ului lucrează la task-uri complementare, unde au nevoie de o sincronizare perfectă. Rolul Team Lead-ului aici este să vadă în avans problemele de sincronizare de ordin tehnic între diverși membrii ai echipei și să le semnalizeaze.

 

Profilul Team Lead-ului într-o echipă Scrum nu trebuie să fie doar tehnic. Soft skill-urile sunt extrem de importante pentru acest rol. El trebuie să înțeleagă când și dacă e momentul să ia o decizie, fie ea tehnică sau de aplanare de conflict, sau să lase echipa să ajungă în mod natural la această decizie.

 

În concluzie, dacă ai o echipă Scrum tânără – fie total nouă, fie cu membri ce nu au mai lucrat împreună – alege cel mai potrivit membru al echipei și dă-i titlul formal de Team Lead. Vei fi hulit de teoreticienii Agile/Scrum, dar îți vei crea o echipă performantă.

 


Urmează cursul meu video – Estimates in Agile Software Development  

În acest curs, vei învăța să faci estimări de timp pentru proiectele tale Agile. Ne vom concentra pe metodologia Agile și, mai precis, pe framework-ul Scrum. Am inclus, de asemenea, câteva tehnici din managementul de proiect tradițional – metodologia Waterfall – dar și o secțiune despre estimări în Kanban, un alt framework Agile popular.

Cursul este disponibil pe Udemy, la acest link.

Estimates in Agile software development


 

Rolul Team Leader-ului într-o echipă Scrum