La produttività degli sviluppatori è una preoccupazione importante per la maggior parte delle organizzazioni. Tutte le organizzazioni commerciali e non commerciali dipendono sempre di più dal software e dal ritmo e dall'efficienza della fornitura di funzionalità software. La produttività degli sviluppatori è una metrica che determina il ritmo con cui le innovazioni software possono essere fornite, e così è la produttività degli sviluppatori è la chiave per il successo organizzativo.

Fattori che influenzano la produttività degli sviluppatori

Ci sono molti fattori che influenzano la produttività degli sviluppatori e l'impatto di ciascuno varia a seconda del contesto. Di seguito è riportato un parziale Elenco di alcuni dei principali fattori che influenzano la produttività degli sviluppatori:

  • Dimensione dell'iniziativa
  • Competenza tecnica ed esperienza
  • Abilità interpersonali
  • Conoscenza del dominio
  • Concentrazione/distrazioni
  • Strumenti (incluso l'uso di assistenti di codice AI)
  • Riutilizzo del codice
  • Coinvolgimento della leadership
  • Requisiti chiari
  • Chiarezza dell'obiettivo

Cosa fanno gli sviluppatori

In genere gli sviluppatori lavorano su uno o più dei seguenti aspetti:

  • Nuovo iniziativa software (innovativa o meno).
  • Mantenimento e/o riparazione del software (inclusa la riparazione del debito tecnologico)
  • Rimozione/sostituzione del software

Dimensioni e produttività del progetto

Project Size è una delle principali considerazioni quantificabili che determinano in modo significativo la produttività dello sviluppatore. Per questo motivo i nostri benchmark sono raggruppati in base alle dimensioni del progetto.

Dimensioni del progetto e produttività dello sviluppatore

Vediamo innanzitutto perché ciò accade.  Un lavoro software di successo richiede una stretta comunicazione tra utenti, sviluppatori, tester e altri stakeholder. Con l'aumentare delle dimensioni di un team, la quantità di tempo e di sforzi richiesti per comunicare aumenta a un tasso proporzionale al quadrato del numero di membri del team. Considera la matematica del numero di linee di comunicazione tra i membri del team come N x (N – 1) / 2

Dimensioni del team e sovraccarico di comunicazione, fonte getlighthouse.com

La produttività dello sviluppatore è influenzata dalle dimensioni del progetto a causa di costo della comunicazione.  Fortunatamente la dimensione del progetto (dimensione funzionale) è misurabile in modo standardizzato e valido. Per questo motivo vediamo che la la produttività più elevata si ottiene con team composti da 7 persone altamente competenti o meno.

I nostri benchmark di produttività degli sviluppatori

Produttività tipica dello sviluppatore

Progetti <1000 CFP

Bassa competenza

Ore per CFP

Competenza media

Ore per CFP

Alta competenza

Ore per CFP

Implementazione del pacchetto 6 2 1
Codice basso 8 3 2
Linguaggio di alto livello (tipico) 25 8 4
Dominio altamente regolamentato 80 20 12
Linguaggio/firmware di basso livello 80 20 12
Fonte: ScopeMaster Ltd

Questa tabella si riferisce al numero di ore di lavoro degli sviluppatori per COSMIC Function Points consegnati senza difetti, che abbiamo osservato. Questi benchmark sono presentati in ore per CFP. È anche legittimo usare il reciproco di CFP per ore lavorate. È anche utile guardare produttività del team in CFP per sprint di 2 settimane di ciascun team.

Sebbene questi parametri di riferimento possano risultarti utili per il confronto con altre organizzazioni, ti consigliamo di accumulare e coltivare i tuoi parametri di riferimento interni per la produttività degli sviluppatori e altre dimensioni dei progetti.  

La velocità significa solo essere occupati

Velocità è un termine comunemente usato tra gli appassionati di Agile e fornisce qualche indicazione sul tasso di sviluppo di cose. Che si tratti di chiudere ticket o di consegnare "story point", di solito significa spuntare cose da una lista. Da un punto di vista letterale non si tratta realmente di velocità in senso fisico (direzione e grandezza), ma più di attività o tasso di "chiusura ticket". A nostro avviso questa è una pseudo-metrica che ha scarso valore nel mondo reale. Inoltre, la velocità, così come il termine è solitamente usato dai team Agile, è incoerente, soggettiva e manipolabile.