Prima di andare troppo lontano, lasciatemi dire che la stima del software: demistificare l'arte nera è una risorsa eccellente per le persone che guardano e pensano alle stime. Entrambe le immagini sottostanti sono tratte da quel libro come lo sono le idee presentate di seguito.
Come hai notato, le stime sono una parte importante per poter prevedere e pianificare con precisione il lavoro. Non avere stime rende gli affari ciechi su quanto tempo impiegherà qualcosa. Non è insolito che le aziende abbiano un'idea completamente sbagliata su quanto tempo ci vorrà: ciò che pensano sia facile dura dalle sei alle otto settimane e ciò che si pensa che sia difficile è un trucco del venerdì pomeriggio.
La prima cosa è dare un preventivo. Una stima in sé non è un singolo numero: è un impegno. "Quanto tempo impiegherà ABC" -> "Circa 5 giorni" significa che sono circa 5 giorni. Tuttavia, una buona stima è un intervallo in cui sei sicuro al 90% di averlo in quell'intervallo. Se intendi dire "Sono sicuro al 90% che ci vorranno tra 1 e 5 giorni", dillo. Non lavorare da "Penso che ci vorranno tra 1 e 10 giorni, quindi 5 giorni sono probabilmente nella media" - non è una stima e ti sbaglierai il 50% delle volte.
Bene, almeno il 50% delle volte, i programmatori sono noti sottovalutatori per i tempi delle attività.
Considera il cono di incertezza:
Immagine da http://www.construx.com - articolo completo su http://www.construx.com/Thought_Leadership/Books/The_Cone_of_Uncertainty/
Renditi conto che la prima stima in quell'intervallo è 16x. Questo è simile a dire "Penso che ci vorrà tra un pomeriggio e due settimane" - ma non lo sai ancora. Mentre vai avanti con il design un po ', la gamma si riduce a 4x. Ciò non significa che ci vorrà una settimana, significa che dovresti invece dire "dopo aver guardato un po ', ci vorranno tra tre settimane" - sì, il preventivo è aumentato, ma anche l'intervallo del preventivo è andato giù.
Con ogni stima fornita, devi essere sicuro al 90% che la stima rientri in tale intervallo. Puoi sbagliarti: il 10% delle volte cadrà fuori da questo intervallo.
Esistono molti modi per stimare la dimensione dei progetti. Confrontandolo con i progetti passati, usando un proxy (penso che occorrerebbero 1000 righe di codice che richiederebbe così tanto tempo per scrivere), usando i punti funzione (per convertire in LOC ...), ottenendo stime da un numero di persone e poi perfezionandolo iterativamente ... alcuni lavori per alcuni progetti, altri lavori per altri progetti.
Un capitolo molto importante di questo libro che ho citato all'inizio è il n. 23 che si occupa di politica di stima e di gestione di dirigenti e dirigenti.
La chiave per una stima è il processo iterativo di perfezionarlo dopo averci lavorato un po '.
Fornire una stima troppo precisa troppo presto nel processo può essere molto soggetto a errori. Se non sei sicuro, dai la stima ampia e poi torna con un'altra stima dopo un certo periodo di tempo per ulteriori introspezioni sul problema e possibilmente abbozzando come lo farai, guardando per quanto codice lo hai scritto l'ultimo problema simile e altri fattori che influenzeranno la stima.
Le stime richiedono un pensiero: non dare le stime del bracciale. Questi spesso hanno errori enormi associati a loro rispetto a ciò che serve quando ci pensi un po '.
Da Come rispondere quando viene richiesto un preventivo?
Cosa dire quando viene chiesto un preventivo
Dici "Torno da te."
Otterrai quasi sempre risultati migliori se rallenti il processo e passi un po 'di tempo a seguire i passaggi descritti in questa sezione. Le stime fornite alla macchina del caffè torneranno (come il caffè) a perseguitarti.
Dal capitolo 4 della stima del software:
Si noti che in questo, le stime dopo un po 'di revisione sono sistematicamente meno selvagge e soggette a errori rispetto alle stime fuori borsa. Non eliminare le stime del bracciale. Siediti e pensa al compito e stimalo dopo averci pensato un po '.