Ciò che non viene misurato non viene migliorato. Le metriche di qualità ti aiutano a comprendere lo stato del software e a guidare le decisioni. Questa guida ti presenta le metriche più importanti e come utilizzarle.
Perché misurare la qualità
Visibilità
Comprendere lo stato attuale.
Tendenze
Migliorare o peggiorare?
Decisioni
Basato sui dati, non sull’intuizione.
Comunicazione
Dimostrare la qualità alle parti interessate.
Metriche del codice
Copertura del codice
Percentuale di codice coperto dai test.
Complessità ciclomatica
Complessità dei percorsi nel codice.
Duplicazione
Codice ripetuto.
Debito tecnico
Preventivo lavori di pulizia.
Indice di manutenibilità
Punteggio sulla facilità di manutenzione.
Metriche dei bug
Densità dei difetti
Bug per dimensione del codice (KLOC).
Tasso di fuga dei bug
Bug riscontrati nella produzione rispetto alla versione completa.
###MTBF
Tempo medio tra i guasti.
###MTTR
Tempo medio di riparazione.
Distribuzione della gravità
Proporzione per gravità.
Metriche di test
Copertura del test
Unità, integrazione, E2E.
Tasso di superamento del test
Percentuale che passa.
Test instabili
Prove instabili.
Tempo di esecuzione del test
Per quanto tempo eseguire la suite.
Metriche di processo
Tempi di consegna
Dal commit alla distribuzione.
Tempo di ciclo
Dall'inizio alla fine di una funzione.
Frequenza di distribuzione
Quante distribuzioni per periodo.
Tasso di errore di modifica
Percentuale di distribuzioni che causano problemi.
Metriche DORA
Cosa sono
Metriche di ricerca e valutazione DevOps.
Quattro metriche
- Frequenza di distribuzione
- Tempi di consegna per le modifiche
- Modifica tasso di fallimento
- È ora di ripristinare il servizio
Classificazione
Performer d'élite, alti, medi, bassi.
Revisione del codice
È ora di rivedere
Quanto tempo occorre per la revisione del codice.
Completezza della recensione
Commenti sostanziali.
Tasso di approvazione
Tasso di passaggio.
Metriche di produzione
Tempo di attività
Disponibilità del sistema.
Tasso di errore
Tasso di errore nella produzione.
Tempo di risposta
Richiedi latenza (p50, p95, p99).
Produttività
Richieste al secondo.
Soddisfazione dell'utente
###NPS
Punteggio netto del promotore.
Valutazione dell'App Store
Valutazione nei negozi.
Segnalazioni di bug
Volume dei rapporti degli utenti.
Ticket di supporto
Ticket relativi a bug.
##Sicurezza
Vulnerabilità
Numero e gravità.
È ora di applicare la patch
Quanto tempo per sistemare.
Incidenti di sicurezza
Incidenti di sicurezza.
Strumenti
SonarQube
Analisi statica, metriche del codice.
Codecov/Tute
Monitoraggio della copertura.
DORA/Investigatore
Metriche di distribuzione.
Datadog/Nuova reliquia
Metriche di produzione.
Cruscotti
Visibilità
Metriche accessibili al team.
Aggiornamento
In tempo reale quando possibile.
###Tendenze
Visualizza l'evoluzione.
Avvisi
Notifiche per anomalie.
Utilizzo delle metriche
Non utilizzare giochi di ludicizzazione
Metriche per l'intuizione, non per la punizione.
Contesto
I numeri senza contesto ingannano.
Tendenze > Assoluti
La direzione conta più del valore in punti.
###Azione
Le metriche che non portano all’azione sono inutili.
Metriche per fase
Sviluppo
Complessità, copertura, tempo di revisione.
Rilascio
Lead time, frequenza di distribuzione.
Produzione
Tasso di errore, tempo di attività, tempo di risposta.
Post-rilascio
Densità dei difetti, soddisfazione del cliente.
Miglioramento continuo
Riferimento
Stabilire il punto di partenza.
Obiettivi
Stabilisci obiettivi realistici.
Retrospettive
Discuti regolarmente le metriche.
###Esperimenti
Interventi di prova.
Errori comuni
Metriche come obiettivo
Una copertura del 100% non significa qualità.
Molte metriche
Concentrati su alcuni importanti.
Ignora contesto
Team e progetti diversi.
Punizione tramite metrica
Causa comportamenti perversi.
Conclusione
Le metriche di qualità sono strumenti per comprendere e migliorare il software. Scegli quelli giusti per il tuo contesto, monitora le tendenze e intraprendi azioni basate sui dati. La qualità è un viaggio continuo, non una destinazione.
##Domande frequenti
1) Quale copertura è sufficiente? Il 70-80% è un buon obiettivo. Ma dipende da cosa viene testato.
2) Quali parametri sono più importanti? Metriche DORA per DevOps. Densità dei difetti e tempi di attività per la qualità.
3) I parametri sostituiscono il buon senso? No. Informano le decisioni, non decidono.
4) Come convincere il team ad adottare le metriche? Mostra valore. Non usarlo per punire.
5) Le metriche sono valide per un piccolo team? Sì. Semplifica, ma misura l’essenziale.
