Sei uno sviluppatore di software! Non rispondere alle domande fuorvianti! Invece, aiuta il tuo manager a porre la domanda giusta. Quindi, rispondi alla bella domanda.
Quando sarà pronta la mia funzione? è una domanda fuorviante. Esempi di buone domande sono:
-
Qual è la probabilità di avere la mia funzione in tre mesi ?
-
Qual è la data entro cui la mia funzione sarà pronta con una probabilità del 70% ?
Ora, come risponderesti a queste domande una volta che ti saranno poste? Bene, dovrai utilizzare i tuoi record per costruire una distribuzione di probabilità empirica della variabile casuale DevTime
. L'ho fatto io stesso e ho scoperto che le distribuzioni di Lognormal hanno un adattamento eccellente.
Una distribuzione Lognormal ha due parametri: media e deviazione standard. In alternativa puoi definirli fornendo significato e dispersione P90 / P10.
Ci sono molti approcci per trovare buone stime della media e della dispersione. Se hai dati di altri progetti con un ambito simile, usali e usa un algoritmo di adattamento della curva (ad es. BoxCox.)
Se vuoi essere più rigoroso, dovrai creare un modello che tenga conto dei seguenti fattori incerti :
-
Dimensioni del progetto
-
Focus -% risorse che assegnerai per il progetto (hai altre attività, giusto?)
-
Endurance -% di righe di codice integrate che sono sopravvissute, ad esempio > = 6 mesi
-
Velocità - Linee di codice (o # classi) prodotte dal team / giorno.
Per la dimensione ho usato il numero di classi coinvolte come proxy, ho collocato una distribuzione triangolare attorno ad essa e ho moltiplicato questa variabile casuale per la distribuzione (empirica) di # menthods / classe.
L'attenzione è più semplice, vorrei iniziare con il 40%. Puoi utilizzare questo parametro per negoziare con il tuo manager.
Quello che ho chiamato resistenza è misurabile dai tuoi dati storici. Ancora, non usare una media, calcola la distribuzione empirica di probabilità di questa quantità.
Lo stesso per la velocità.
Con tutte queste distribuzioni è abbastanza facile costruire un modello probabilistico ed eseguire Monte Carlo su di esso. Ciò ti darà i valori di media e dispersione che stavi cercando.
Una volta che hai la distribuzione, tracciala e insegna al tuo manager come leggerla. La risposta a tutte le domande che hanno senso sarà proprio lì.
Se non hai dati, o non hai tempo e amp; risorse per costruire il modello che sto proponendo, quindi giocare con le migliori stime "esperte" della media e della dispersione e utilizzare alcune app per tracciare la distribuzione Lognormal risultante. Una volta che ti senti sicuro con una curva, usa quella per le tue stime da uomo povero.
Bottomline: non rispondere a domande sciocche. Trasformali in buoni che forniranno approfondimenti.