Agile Management by Metrics

Approfondimento

La misura dei prodotti/processi può dare valore aggiunto al governo dei progetti software in qualsiasi modalità (Waterfall, Agile o Ibrida), pur con le dovute differenze.

Le stime e misure normalmente usate nei processi Agili (ad es. gli story point) sono sostanzialmente valorizzazione dell’impegno lavorativo ritenuto necessario ad implementare le storie o epiche di riferimento. Esse non sono misure di size ma di effort. La Produttività non può essere rappresentata come il rapporto tra story point e l’effort consuntivo impegnato perché questo indica tutt’al più un confronto preventivo su consuntivo della stessa natura: l’effort. Occorre inserire nel dashboard di progetto una misura di prodotto come i Function Point in una versione che sia accettabile dai team ovvero semplice e rapida come i Simple Function Point, metodo definito da Roberto Meli (CEO di DPO) nel 2010 e acquisito nel 2019 dall’IFPUG.

Centro del processo Agile diventa, allora, il requisito (funzionale e non funzionale) e il suo work flow realizzativo. Con la valorizzazione e tracciatura delle funzionalità si può passare da un approccio a durate fisse e contenuti variabili (sprint) ad un approccio orientato alle soluzioni “consumabili” riducendo gli sprechi dovuti alla ripetizione di attività di test non coordinate, gestendo le priorità e le dipendenze tra rilasci in modo esplicito e favorendo il continuous integration & delivery nonché la tracciatura dei requisiti.

La misura funzionale Agile favorisce la contrattualizzazione ed il calcolo dei corrispettivi e le procedure di gara senza appesantire le attività produttive.

Le misure non funzionali, invece, permettono di tener conto delle diverse condizioni produttive o caratteristiche di prodotto che non sono legate alle funzionalità da erogare ma ad elementi tecnici e qualitativi che pure influenzano la stima dei costi di progetto.

Ad esempio:

  • Technical debt – costo implicito di una rilavorazione causata dalla scelta di una soluzione semplice ora invece di una migliore che richiederebbe più tempo.
  • Functional mismatching – differenza fra quanto immaginato dai progettisti e quanto atteso dal mercato o dagli stakeholder.

Le metriche di processo, infine,  possono variare in funzione del metodo di produzione scelto e si combinano spesso con le metriche qualitative del software. Per essere efficaci le metriche di processo devono essere derivabili in automatico dalla strumentazione del processo stesso. Ad esempio:

  • Capacity – Tempo risorsa disponibile
  • Velocity – Task implementati nelle iterazioni– valore medio
  • Capacity utilization – Rapporto fra capacity e worklog – tempo realmente utilizzato
  • Estimation variance – Precisione nella continuità delle stime (differenza fra “original estimation” e “real implementation”)
  • Lead Time – tempo di attraversamento end-to-end (dall’ingresso all’uscita del processo)
  • Cycle Time – tempo speso per aggiungere valore

Perché usare le misure funzionali, non funzionali e di processo ?

Stimare

La stima dell’effort (lavoro) necessario a rilasciare o modificare un’applicazione software può essere condotta in modo diretto e intuitivo quando la granularità dei requisiti e delle attività è molto spinta. La qualità della stima è fortemente dipendente dalla capacità ed esperienza del personale che la fa. I modelli di costo basati sulle misure di prodotto consentono di anticipare, standardizzare e condividere la stima tra gli stakeholder.

Contrattualizzare

Quando i rapporti tra parti sono formali e attraversano la barriera di mercato cliente-fornitore è indispensabile dare evidenza preventiva e consuntiva del lavoro e dei suoi risultati concreti. La produttività diventa un indicatore rilevante nel governo delle forniture e consente di verificare le promesse stabilite a livello di offerta.

Confrontare

Il benchmarking è un’attività di governance che consente di conoscersi e rapportarsi al mercato di riferimento. Senza misure essa è semplicemente impossibile.

Imparare

La registrazione delle misure e la loro analisi consente di sviluppare un comportamento di apprendimento che attraversa i vari livelli della struttura organizzativa.

Vuoi più informazioni?

Trattamento dati personali

Iscrizione alla newsletter DPO

2 + 1 =