Implică toată echipa în review, de la juniori la seniori

Subiect din roadmap-ul Bune practici: code review · parte din „Cultura și obiectivele review-ului”

Această practică transformă code review-ul dintr-un simplu filtru de calitate într-un mecanism puternic de învățare colectivă. Când toți membrii echipei, indiferent de senioritate, participă activ, se reduce „bottleneck-ul” cauzat de așteptarea aprobării doar de la câțiva experieni și se dispersează cunoștințele despre cod. Ignorarea acestui aspect duce la silozuri de informație, unde doar o mână de persoane înțeleg logica critică, crescând riscul de erori și dificultatea onboarding-ului pentru noii veniți.

Cum o aplici

  1. Stabilește așteptări clare: Specifică faptul că review-ul nu este o evaluare ierarhică, ci o discuție tehnică. Un junior poate avea o perspectivă proaspătă asupra UX-ului, iar un senior poate oferi context arhitectural.
  2. Rotirea responsabilităților: Nu lăsa întotdeauna aceeași persoană să facă review. Folosește tool-uri de asignare aleatorie sau rotativă pentru a expune echipa la diferite stiluri de cod și domenii de business.
  3. Feedback constructiv pentru toți: Încurajează juniorii să pună întrebări și să sugereze îmbunătățiri, chiar dacă sunt novice. Seniorii trebuie să răspundă cu răbdare, explicând „de ce”, nu doar „ce” este greșit.
  4. Sesiuni de pairing pe review: Pentru PR-uri complexe, propune ca doi colegi (unul senior, unul junior) să le revizuiască împreună sau să discute schimbările în timp real.

Exemplu

Gândește-te la un Pull Request (PR) care introduce o nouă funcție de validare a email-ului.

Varianta greșită (Ierarhică): Doar Seniorul A vede PR-ul. Juniorul B nu este implicat și nu înțelege de ce s-a ales acea regulă regex. Dacă Seniorul A pleacă, nimeni altcineva nu știe detaliile.

# Seniorul A comentează:
# "Această expresie regex este prea strictă. Folosește standardul RFC 5322 simplificat."

Varianta corectă (Colaborativă): Juniorul B observă că validarea blochează anumite adrese valide folosite de clienți externi.

# Juniorul B comentează:
# "Am testat cu adresa 'user@sub.domain.co.uk' și pare să fie respinsă. 
# Cred că ar trebui să ajustăm pattern-ul pentru a permite subdomenii multiple."

# Seniorul A răspunde:
# "Excelentă observație! Nu mă gândisem la acest caz de frontieră. 
# Hai să actualizăm regex-ul împreună."

Cum verifici

  • Metrici de distribuție: Verifică rapoartele din GitLab/GitHub/Hbitbucket. Dacă 80% din PR-uri sunt reviewuite de doar 20% din echipă, practica nu este aplicată.
  • Viteza de merge: Monitorizează timpul mediu petrecut de un PR în starea „Pending Review”. O scădere semnificativă indică o capacitate de absorbție mai mare a feedback-ului.
  • Calitatea comentariilor: Analizează periodic dacă apar întrebări din partea juniorilor sau sugestii de optimizare, nu doar aprobări mecanice („LGTM”).

Greșeli frecvente

  1. Supraîncărcarea seniorilor: Dacă aștepți ca seniorii să facă review la tot, devin ei singurul punct de blocaj. Echilibrează sarcina prin review-uri peer-to-peer între colegi de nivel similar.
  2. Lipsa siguranței psihologice: Dacă juniorii sunt criticați dur pentru greșeli minore, vor înceta să participe activ. Creează un mediu unde greșeala este văzută ca oportunitate de învățare.
  3. Review superficial: Implicarea tuturor nu înseamnă că fiecare trebuie să citească fiecare linie. Definește arii de responsabilitate (ex: fiecare reviewează modulele pe care le-a scris sau le-a modificat recent).

Alte subiecte din „Cultura și obiectivele review-ului”