Cos'è la produttività del software?

In realtà è piuttosto semplice: la produttività è semplicemente produzione nel tempo.

La parte difficile, tuttavia, è trovare una misura adatta per gli output. Gli output, almeno nel contesto del software, sono difficili da standardizzare. Nella maggior parte dei casi, possiamo pensare a questi output in termini di valore aziendale e/o di come forniamo capacità riconoscibili dall'utente.

Perché così tante aziende vogliono misurare la produttività del software? È davvero così importante?

Per qualsiasi iniziativa software, i manager hanno il dovere di cercare quantificazione e un certo grado di certezza su costi, tempi e portata. Cercheranno anche mezzi e misure per...

  • …punto di riferimento rispetto ad altre organizzazioni
  • …monitorare i progressi nel tempo
  • …valutare la produttività del team e dei singoli individui
  • …utilizzare la produttività per determinare le decisioni di delocalizzazione
  • …utilizzare la produttività per informare le decisioni di definizione delle priorità

Misure di produttività generale

Tendiamo a concentrarci principalmente sulla produttività degli sviluppatori, poiché gli sviluppatori sono generalmente i membri più attivi e più costosi di un progetto software. Tuttavia, è anche utile comprendere la produttività degli altri, inclusi tester, analisti, project manager, designer, architetti e chiunque altro contribuisca al successo di questi progetti.

Criteri di una buona metrica di produttività del software

Purtroppo, non esiste una metrica perfetta per "l'output" sul lavoro software. Pertanto, dobbiamo trovare indicatori proxy alternativi che ci avvicinino alla quantificazione dell'output.

Idealmente, per il software, vogliamo una “metrica di output” che raggiunga quanto segue:

  • è fortemente correlato al valore aziendale
  • è ingiocabile, nonché coerente, oggettivo, ripetibile e verificabile in modo indipendente
  • è indipendente, funziona indipendentemente dal linguaggio di programmazione
  • è valido per confrontare un progetto con un altro
  • può tenere conto del fatto che il lavoro più complesso viene assegnato a membri del team più capaci
  • può essere raccolto a basso costo e facilmente

Come nota a margine, le metriche ideali per la produttività individuale variano leggermente da quelle ideali per determinare la produttività del team. Utilizza ciò che funziona meglio per il tuo scenario.

Classifica delle metriche software

La tabella seguente è stata prodotta da Steve McConnell ed è discusso in questa presentazione per classificare le metriche di produttività software idonee. I punti funzione COSMIC erano meno noti e il dimensionamento automatico non era disponibile quando Steve creò per la prima volta questa tabella. Abbiamo aggiunto qui la colonna per i punti funzione COSMIC. Questa colonna aggiuntiva è soggettiva e, a nostro avviso, non fa parte della valutazione originale di Steve.

LOC/SM
FP/SM
PCP/SM
Punti Storia/SM
360 recensioni tra pari
Valutazione del manager
Prevedibilità del completamento delle attività
Casi di test superati
Tassi di difetto
La misurazione riflette realmente la produttività 3 4 4 4 3 2 1 4 3
Rappresenta direttamente o indirettamente tutto o la maggior parte dei risultati del lavoro 4 4 4 5 5 5 2 4 3
Utile per misurare il lavoro dei non programmatori 1 4 4 4 5 5 5 4 4
Resiste ai “giochi” da parte dei singoli contributori 2 5 5 4 3 3 4 4 5
Fortemente correlato al valore aziendale 2 3 4 4 3 4 2 4 3
Oggettivo, verificabile in modo indipendente 4 4 5 3 2 2 4 4 4
Le misure restituiscono lo stesso risultato indipendentemente dal linguaggio di programmazione utilizzato 1 5 5 3 5 5 5 5 5
Supporta i confronti da persona a persona all'interno di un team 3 4 4 4 5 4 4 4 4
Le persone migliori ottengono gli incarichi più difficili 2 4 5 4 5 5 1 5 2
I dati possono essere raccolti facilmente ed economicamente 3 1 5 3 3 4 3 3 4
25 38 45 38 39 39 31 41 37
Rango 9 5 1 5 3 3 8 2 7

Nella valutazione originale di Steve, la conclusione era una corsa serrata tra diversi approcci, con "Test Cases Passed" classificato al primo posto. Ora, con l'avvento di un approccio più semplice al dimensionamento funzionale (punti funzione COSMIC vs. punti funzione IFPUG) e al dimensionamento automatizzato, sembra esserci una chiara metrica guida per la valutazione della produttività: Punti funzione COSMICA.

Misure di produttività fuorvianti

Sebbene non esista una metrica perfetta per il lavoro software, alcune sono più utili di altre. Esistono alcune metriche che possono trarre in inganno, essere abusate o istigare comportamenti non utili.

Linee di codice (LOC)

Gli sviluppatori possono variare enormemente nelle linee di codice scritte per qualsiasi funzionalità data. È facile da misurare, ma non necessariamente un Bene misura, poiché diversi linguaggi di programmazione richiedono diverse quantità di codifica e le varianze tra di essi possono essere enormi. Utilizzare linee di codice come misura può anche incoraggiare gli sviluppatori a scrivere linee superflue semplicemente per rimpinguare la loro produttività. Ciò ha un effetto controintuitivo, poiché può generare costi di manutenzione aggiuntivi.

Punti della storia

Gli Story Point sono un proxy soggettivo e non standard per la stima dello sforzo. Alcuni affermeranno che misurano la complessità; la realtà è che, nella migliore delle ipotesi, Potrebbe danno un'indicazione della difficoltà di un compito particolare. In sostanza, sono un'indicazione di giorni "ideali" per il personale. Non sono adatti al lavoro a contratto e non possono essere usati per confrontare un team con l'altro, né un progetto con l'altro. Non c'è apprendimento o miglioramento continuo ottenibile adottando i punti della storia.

La storia conta

Anche la dimensione della user story può variare in modo significativo. Una storia può essere un compito tecnico di dieci minuti per un individuo; un'altra storia può richiedere un mese intero di lavoro per un intero team. Nella nostra esperienza, le storie vanno da 0 CFP a 120 CFP, il che rende il conteggio una metrica incoerente.

Altre misure di produttività del team

La valutazione della produttività basata sulle Score Card può essere utile in alcune circostanze, soprattutto se i valori delle Score Card sono normalizzati tra i team e scelti in modo da riflettere tutti i criteri che l'organizzazione desidera utilizzare.

È importante scegliere criteri che si concentrino sui valori dell'organizzazione (per qualità e risultati). È anche importante allineare i team ai veri obiettivi dell’azienda.

Il vincitore: punti funzione COSMIC

La nostra misura di output consigliata è Punti funzionali COSMIC (CFP). Ecco perché:

  1. PCP (CFP) è radicato in principi fondamentali del comportamento del software (input, output, letture e scritture).
  2. La CFP è incentrata sull'utente; si allinea a ciò che è necessario per fornire valore all'utente.
  3. PCP (CFP) è un proxy ragionevole per valore aziendale.
  4. PCP (CFP) si allinea bene A sforzo effettivo.
  5. PCP (CFP) ha una definizione per un unità di misura individuale.
  6. PCP (CFP) fornisce un misurazione della dimensione, che è il fattore più significativo nel determinare costo E durata di un progetto.
  7. PCP (CFP) consente ai manager di gestire le attività non di sviluppo, con CFP come metrica di base.
  8. La CFP è aperto, libero e indipendente.
  9. CFP sono adatti a requisiti incompleti (ad esempio Agile).
  10. CFP sono adatti a quasi tutti i tipi di software.
  11. PCP (CFP) la stima iniziale è quasi completamente automatizzato (da ScopeMaster, ovviamente).

La misurazione della produttività dello sviluppo software è l'attività di registrazione delle metriche e degli attributi di un'attività software a fini comparativi.

La CFP è un modo affidabile per valutare la produttività del software

Quanto sono produttivi i nostri sviluppatori software?

Vuoi sapere se il tuo team è più produttivo rispetto agli altri team o agli standard del settore?

È possibile confrontare le attività di un team con quelle di un altro all'interno di un'organizzazione, ovvero: benchmarking internoIl confronto con un'altra organizzazione simile è definito come benchmarking esterno. Sebbene i parametri di riferimento del settore possano essere interessanti, i parametri di riferimento locali e interni sono generalmente considerati i più affidabili.

Benchmarking della produttività dello sviluppo software e valutazione del tuo team

Se hai un team fantastico, perché non pubblichi il tuo indice di produttività? Potrebbe aiutarti a vincere lavori di sviluppo. Tutto ciò di cui hai bisogno è un set di user story di un progetto precedente, circa un'ora e l'accesso a ScopeMaster.

  1. Prendi un set di requisiti da un progetto recente. Caricali in ScopeMaster e lascia che l'analizzatore ne calcoli le dimensioni.
  2. Per il calcolatore della produttività, inserisci lo sforzo totale del progetto (in giorni personali), la durata del progetto (in mesi) e la rimozione dei difetti alla fine ottenuta nel progetto.
  3. ScopeMaster determinerà quindi il indice di produttività della tua squadra.

…e questo è tutto!

Se ti classifichi sopra la media (circa sei sull'indice), allora sei sulla strada giusta per la grandezza. Se vuoi, possiamo anche pubblicare l'indice di produttività del tuo team sulla nostra classifica!

Ricordate: fate attenzione alle metriche fuorvianti. Spunti di riferimento, linee di codice, taglie di magliette e giornate-uomo sono tutte tecniche facilmente manipolabili e giocabili per stimare tempo e sforzi. Per ottenere i migliori risultati, attenersi ai metodi di dimensionamento funzionale standard ISO.

Benchmarking sullo sviluppo software