TSM - Implementarea unui sistem de metrici de succes într-o companie software

Ramona Muntean - Measurements & Best Practices


Actualul articol este adresat în principal managerilor și directorilor companiilor de software și descrie abordările, factorii și premisele necesare a fi luate în considerare atunci când se dorește implementarea în organizație a unui proces de măsurare a indicatorilor de performanță. Ideile și recomandările menționate în articol sunt extrase din experiența și practicile unei companii IT al cărei focus este îmbunătățirea continuă.

O paradigmă bine cunoscută spune că putem gestiona ceea ce putem măsura. Mitul că anumite lucruri nu pot fi măsurate este deja depășit. Dacă un lucru sau un aspect al vieții noastre se dovedește a fi cu adevărat important pentru noi și avem nevoie să îl cunoaștem şi să îl înțelegem mai bine vom putea găsi modalități de a-l măsura.

Există uneori tendința de a evita utilizarea măsurătorilor în organizație deoarece se presupune că acestea nu sunt exacte. Este important să înțelegem diferența dintre numărare și măsurare. Prin numărare determinăm numărul exact sau valoarea unui indicator (ore lucrate, ore facturabile, număr de fani pe Facebook, numărul de defecte), în timp ce măsurarea presupune exprimarea în termeni cantitativi a reducerii gradului de incertitudine, pe baza uneia sau mai multor observații. Deci, oricât de neclară sau inexactă ar fi o măsurătoare, ea este valoroasă în cazul în care ne spune mai mult decât ceea ce știam înainte.

În afaceri trebuie să fim pregătiți să luăm decizii în condiții de incertitudine. Atunci când este vorba de decizii care au impact major, cu cât incertitudinea este mai mare cu atât reducerea acesteia va fi mai valoroasă. Măsurătorile nu trebuie să fie precise, de aceea, în contextul măsurătorilor ne referim la intervale, praguri, tendințe și nu neapărat la numere exacte. De cele mai multe ori nu avem nevoie de foarte multe date pentru a reduce suficient de mult gradul de incertitudine. Vom fi surprinși cât de mult putem învăța și afla de la o cantitate mică de date ce este înțeleasă și folosită corect.

În industria software de astăzi, unde dinamica, adaptabilitatea la schimbare și competitivitatea sunt cuvinte cheie, măsurarea a devenit un proces necesar și important în organizații. Convingerea că ne putem baza doar pe intuiție și "fler" pentru a lua decizii ce privesc oportunitățile de dezvoltare ale companiei nu mai este suficientă pentru a susține obiectivele de creștere ale companiei. E nevoie să știm cum să gestionăm volumul de muncă, resursele de care dispunem și să putem decide în cunoștință de cauză ce trebuie făcut, cum și când trebuie acționat fără a bâjbâi în bezna incertitudinilor și a presupunerilor.

Înainte de a decide punerea în aplicare a unui sistem de metrici într-o organizație, este important să avem o imagine clară a capabilităților companiei, a obiectivelor ei de afaceri și a strategiei pe termen mediu și lung. Dacă organizația nu are o viziune a ceea își dorește să realizeze în viitor și a ceea ce ar avea nevoie să știe, atunci metricile colectate nu vor răspunde nevoilor acesteia. Un sistem de metrici este o investiție pe termen lung care își va arăta valoarea reală după colectarea unui prim set de date, care atunci când sunt colectate cu succes vor ajuta la revizuirea obiectivelor, la determinarea următorului set de metrici care să fie definit și implementat. Procesul de măsurare trebuie să fie înțeles ca un ciclu continuu de măsurare, revizuire, stabilire de obiective, rafinare și definire de noi metrici.

O soluție eficientă pentru definirea și punerea în aplicare a unui proces de măsurare în organizație presupune două abordări:

Putem spune că un proces de măsurare este implementat cu succes atunci când nevoile de măsurare colectate în urma celor două abordări se întâlnesc și se completează reciproc, iar metricile furnizează informații utile pentru toate nivelurile de decizie din organizație, valoarea lor adăugată fiind recunoscută atât de către directori, manageri cât și de către angajați.

ABORDAREA TOP-DOWN - Obiectivele organizației

Când pornim implementarea unui sistem de măsurători prin abordarea top-down, primele aspecte care vor fi luate în considerare sunt obiectivele de business ale companiei. Acestea sunt definite și comunicate în cadrul organizației sub forma unor obiective SMART exprimate în termeni ușor de înțeles, ce pot fi în traduși în indicatori de performanță și care la rândul lor pot fi utilizați ca și referință la nivel de proiect. Exemple de obiective la nivel de companie, ce pot fi traduse cu ușurință și la nivel de proiect ar fi: marja de profit, gradul de satisfacție al clienților, rata plecărilor din firmă, rata de creștere a afacerii, etc.

Provocarea vine atunci când este vorba de stabilirea și comunicarea obiectivelor companiei care fac referire la calitate. Obținerea unui certificat care atestă anumite standarde și practici de asigurare a calității poate fi considerat un obiectiv al companiei, dar cum anume se va traduce acesta într-un indicator de performanță la nivel de proiect? Setând ca obiectiv un anumit grad de conformitate care atestă respectarea acelor standarde la nivel de proiect? Cu siguranță o astfel de abordare nu ar fi cea mai potrivită opțiune. Angajații trebuie să înțeleagă viziunea de calitate a companiei și să creadă în ea, nu să se simtă "forțați" să fie conformi cu ceva ce poate nu înțeleg cu adevărat. Calitatea nu ar trebui să se rezume la un certificat expus pe perete ci să fie percepută ca parte din ADN-ului organizației, din cultura și maturitatea sa. Calitatea stă în mentalitatea și dorința de îmbunătățire continuă a angajațiilor unei companii. Standardele, procesele sunt doar instrumentele necesare care să susțină o astfel de cultură și mentalitate.

Este important să se ajungă la un astfel de nivel de conștientizare a calității și la un grad de maturitate adecvat în organizație înainte de a pune în aplicare un proces de măsurare. În lipsa acestei maturități metricile nu vor fi percepute la adevarata lor valoare și nu vor fi recunoscute ca un instrument de îmbunătățire și învățare. În plus, este necesar ca la nivel de companie să existe un set de procese și standarde de lucru instituționalizate, rolurile și responsabilitățile fiind clar definite și înțelese. Un Sistem de Management al Calității, care să includă atât asigurarea cât și controlul calității trebuie să fie deja în derulare iar contribuția acestuia să fie recunoscută ca fiind de real ajutor și nu ca un "turn de control" ce dirijează și impune anumite standarde. Aceasta presupune că echipa de asigurare a calității lucrează aproape de echipele de proiect, acordând sprijin și îndrumare în fiecare etapă a proiectului, "croind" procesele standard în funcție de specificul proiectului și venind cu recomandări privind bunele practici din organizație. În paralel, controlul calității se concentrează asupra tuturor activităților de verificare și validare, cum ar fi cele de revizuire și de testare, pe parcursul ciclului de dezvoltare.

Luând în considerare toate aspectele menționate mai sus e nevoie să mai luăm în calcul alte câteva premise care sunt necesare pentru implementarea unui proces de măsurare eficient, și anume:

Conceptul de măsurare trebuie de asemenea să fie înțeles corect, iar responsabilitatea pentru definirea, punerea în aplicare și gestionarea procesului de măsurare ar trebui să fie atribuită specialiștilor în acest domeniu. Prin specializarea și experiența lor aceștia sunt în măsură să "traducă" un obiectiv nespecific într-un set de dimensiuni măsurabile. Explorând în detaliu faptele, ei sunt în măsură să prezinte factorilor de decizie abordări alternative care fac posibilă evaluarea cantitativă, clară și foarte semnificativă a unor situații specifice. Specialiștii în măsurare ar trebui să fie, de asemenea, conștienți de considerațiile pentru care anumite dimensiuni nu ar trebui să fie măsurate (de exemplu costul efortului de măsurare versus beneficiul de măsurare, sau uneori din motive pur etice).

Specialiștii în măsurare, ca parte a echipei de asigurare a calității, vor fi cei responsabili de a identifica nevoile de măsurare ale companiei pentru definirea procesului de măsurare, a standardelor, recomandărilor și metodelor care urmează să fie utilizate pentru colectarea și analiza de metrici.

Având în vedere obiectivele companiei, specialiștii în măsurare, împreună cu managerul de asigurare a calității și cu echipa de directori executivi, vor defini la nivel de companie următoarele:

Acestea fiind definite și agreate cu echipa de top-management. Este în continuare responsabilitatea specialiștilor în măsurare ca împreună cu echipa de asigurare a calității să gestioneze punerea în aplicare a procesului de măsurare într-un mod planificat și organizat. Este important ca pe parcursul procesului să fie implicați atât managerii cât și personalul din echipele de dezvoltare, la intervale de timp corespunzătoare, specialiștii în măsurare asigurându-se că metricile sunt colectate uniform și consistent, că acestea au o valoare de business semnificativă, determinând dacă scopurile și obiectivele organizației progresează conform planului sau dacă sunt necesare ajustări.

ABORDAREA BOTOM-UP - Indicatori de performanță ai proiectului

Atunci când se începe dezvoltarea unui proiect, e nevoie ca un membru al echipei de asigurare a calității să fie prezent pentru a ghida managerul de proiect în stabilirea proceselor și a standardelor care urmează să fie folosite (acestea fiind selectate din librăria de procese și standarde a companiei) și adaptarea corespunzătoare, "croirea" acestora la specificul și nevoile proiectului. Acesta este momentul în care se poate face și evaluarea proiectului, pe baza criteriilor definite în abordarea top-down, pentru a decide dacă acesta se încadrează în categoria celor care sunt relevante pentru utilizarea procesului standard de măsurare.

În faza de început a proiectului, specialistul în măsurare împreună cu membrul echipei de asigurare a calității, care a fost alocat proiectului, vor ghida managerul de proiect și echipa în stabilirea obiectivelor de performanță ale proiectului, în identificarea metricilor necesare a fi colectate și în felul în care acestea pot fi analizate pentru a monitoriza progresul obiectivelor.

O modalitate eficientă de ghidare a echipei în identificarea obiectivelor de performanță ale proiectului presupune adresarea unor întrebări cum ar fi:

În cele mai multe din cazuri răspunsurile primite se vor referi la aspecte ce țin de "livrarea la timp", "livrarea în limita de buget", "zero defecte identificate de către client", "un grad cât mai redus de re-work", "o cât mai bună expertiză a echipei de dezvoltare", "capacitatea echipei de testare", "distribuția efortului pe diferite tipuri de activități", etc. . Uneori este util ca specialistul în măsurare să furnizeze exemple de metrici pentru a ajuta echipa să își identifice indicatorii de performanță.

Tabelul următor prezintă exemple de indicatori de performanță la nivel de proiect împreună cu metricile care urmează să fie colectate și analizate.

Odată ce obiectivele de performanță ale proiectului sunt identificate și agreate împreună cu echipa, următorul pas presupune definirea metricilor (datelor) care urmează să fie colectate și frecvența de colectare a acestora. Atunci când în librăria de metrici a companiei există deja colectate date istorice de la proiecte similare se poate discuta modul în care aceste metrici pot fi folosite în contextul proiectului curent.

Folosind această abordare membrii echipei de proiect vor identifica ei înșiși indicatorii și valorile care definesc performanța în proiectul în care urmează să lucreze. În acest fel, ei vor fi în măsură să se raporteze la un set de obiective clare și să lucreze pentru a atinge un nivel specific de performanță, înțelegând care este linia ce face diferența între o performanță și o calitate bună și una mai puțin bună, un aspect extrem de important în motivarea echipelor.

Odată definită lista de metrici, se poate prezenta echipei și sistemul de metrici definit în abordarea top-down, verificându-se care dintre acestea au fost deja incluse în lista de metrici a proiectului lor. De cele mai multe ori lista de metrici definite de către echipele de proiect va include mare parte din metricile definite la nivel de organizație. Dacă există totuși metrici care nu au fost identificate de către echipă, iar specialistul în măsurare consideră că acestea ar fi relevante, se va discuta posibilitatea ca acestea să fie colectate și utilitatea lor. Folosind această abordare se evită demotivarea membrilor echipei prin impunerea colectării unor metrici definite de către top-management și a căror utilitate poate că nu o înțeleg.

Lista de metrici ce urmează să fie colectate în cadrul proiectului trebuie să fie corect și clar înțeleasă de către toți membrii echipei de proiect, pentru ca ulterior acestea să poată fi analizate și agregate. Chiar dacă poate părea evidentă definiția lor, este uimitor cât de multe interpretări pot să apară. De exemplu, dacă unul dintre indicatorii de performanță se referă la productivitatea exprimată prin function points, vom avea nevoie să analizăm numărul de ore per function point la diferite etape ale proiectului și vom folosi aceste valori ca și referință pentru obiectivele altor proiecte sau pentru a ne poziționa față de valorile din industrie. În acest caz este foarte important să folosim aceleași standarde în numărarea și analiza de function points, iar atunci când ne raportăm la efort (ore) trebuie să fie clar definite activitățile ce urmează să fie considerate (ex. analiza cerințelor, design, codare, etc.).

Pentru înregistrarea și colectarea de date vor fi alocați membrii ai echipei de proiect sau specialiști în funcție de metricile agreate. Este important ca cei responsabili de înregistrarea și colectarea datelor să înțeleagă necesitatea și utilitatea acestora și să fie instruiți corespunzător în standardele și practicile specifice pentru metricile colectate și în utilizarea sistemelor de colectare a acestora.

Sistemele utilizate pentru colectarea metricilor pot fi aceleași cu cele deja existente, pe care compania le folosește pentru înregistarea timpului petrecut în proiecte, TFS / JIRA, Crucible / Team Review, etc. Este de asemenea important să existe în vigoare standarde privind utilizarea acestor sisteme și recomăndări de genul "Cum să utilizați" pentru a asigura un mod uniform de înregistrare și colectare a datelor.

Odată ce sistemul de metrici este în vigoare la nivel de proiect este important să ne asigurăm că indicatorii ce sunt măsurați sunt ulterior analizați și contează cu adevărat la succesul proiectului. Specialistul în măsurare poate participa din când în când la întâlnirile de retrospectivă ale echipei pentru a observa felul în care datele colectate sunt analizate și utilizate în îmbunătățirea productivității echipei, a calității produsului și în creșterea satisfacției clientului.

Specialistul în măsurare se va întâlni periodic cu managerul de proiect și leaderul echipei pentru a analiza corectitudinea datelor colectate, pentru a discuta tendințele identificate, pragurile stabilite ca și referință, și pentru a evalua valoarea pe care metricile o aduc proiectului, a afla dacă există alte nevoi identificate, sau dacă există dificultăți în colectarea și analiza metricilor.

Efortul implicat în colectarea de metrici la nivel de proiect (timpul petrecut, investițiile în instruire și în sistemele utilizate), ar trebui să fie evaluat nu doar din perspectiva costurilor pe care le aduce proiectului dar și din punct de vedere al valorii suplimentare pe care acestea le aduc organizației. Unele metrici vor fi utilizate exclusiv în cadrul proiectului (de exemplu productivitatea, atunci când se referă la Story Points) în timp ce altele vor putea fi utilizate și la nivel de companie (de exemplu productivitatea, atunci când se referă la Function Points). Este de datoria specialiștilor în măsurare să se asigure că acele metrici din proiect care aduc valoare suplimentară la nivel de companie sunt selectate și salvate în librăria de metrici a organizației.

Sunt toate aceste practici suficiente?

Atunci când procesul de măsurare împreună cu sistemul de metrici este în vigoare pentru o perioadă mai lungă de timp (mai mult de un an), datele istorice consistent colectate vor fi disponibile în librăria de metrici a companiei. În acest stadiu, și în continuare, valorile metricilor pot fi analizate în corelație cu alte metrici, se pot identifica tendințe iar anumite praguri de valoare pot fi identificate și ulterior ajustate. Aceste informații sunt foarte valoroase pentru companie și pot fi prezentate în diagrame și grafice utilizând funcționalitatea Excel sau, dacă este posibil, și aplicații de Business Intelligence. Aceste informații trebuie să fie disponibile pentru fiecare factor de decizie, fiind utilizate în procesul de decizie la orice nivel pentru o estimare mai bună în procesul de ofertare, pentru creșterea competitivității pe piață, pentru o mai bună alocare a resurselor în proiecte, sau pot constitui o provocare pentru echipele de proiect care își pot stabili astfel obiective mai ambițioase, învățând din experiența anterioară și astfel perfecționându-se continuu.

Pare că acesta este punctul în care se poate spune că avem în vigoare un proces de măsurare și un sistem de metrici de succes, dar putem considera oare că toate acestea sunt suficiente?

O companie agilă, cu focus pe îmbunătățirea continuă nu se va opri aici. Pentru a concura cu succes într-o industrie dinamică, în continuă schimbare și extrem de competitivă este nevoie de un mod de lucru mai productiv, eficient, oferind un nivel ridicat de calitate al produselor livrate. O organizație care își monitorizează continuu și își gestionează eficient sistemul de metrici va descoperi în acesta o sursă unică de avantaj competitiv.

Procesul de măsurare, sistemul de metrici și standardele aferente necesită rafinare continuă, în conformitate cu obiectivele organizației și cu specificul proiectelor pe care le dezvoltă. Valori noi ale metricilor sunt puse la dispoziția companiei și e nevoie ca acestea să fie analizate din perspectiva obiectivelor de business și a poziționării pe piață. Pe măsură ce capabilitatea și expertiza pe partea de măsurare a companiei se dezvoltă și se îmbunătățește, se pot implementa instrumente și practici mai eficiente și mai inteligente ca suport în colectarea și analiza metricilor.

Indicatori de performanță Metrici (date) de colectat Analiza metricilor la nivel de proiect

Efortul depus în proiect

#ore efectuate (per iterație)

#ore planificate (per iterație)

Deviația estimărilor per iterație

Deviația estimării la nivel de proiect

Productivitatea

story points (SP)

function points (FP)

Viteza de dezvoltare ca și SP / sprint

Ore necesare pt. dezvoltarea unui FP

Rata de Detectare a Defectelor (RDD)

(defecte găsite înainte de livrare raportate la numărul total de defecte identificate)

#defecte găsite în revizuire (review)

#defecte găsite de echipa internă de testare

#defecte găsite de către client după livrare

RDD review per iterație și tendințe

RDD testare per iterație și tendințe

RDD client per iterație și tendințe

Costul Non-Conformităților

(re-work)

#ore efectuate ca re-work după review

#ore efectuate în fixarea defectelor

#ore efectuate în re-testare

Tendințele de re-work de la o iterație la alta

% re-work din totalul efortului de proiect