Tecniche di stima - Panoramica

Estimation è il processo di ricerca di una stima, o approssimazione, che è un valore che può essere utilizzato per qualche scopo anche se i dati di input possono essere incompleti, incerti o instabili.

La stima determina quanti soldi, impegno, risorse e tempo occorreranno per costruire un sistema o prodotto specifico. La stima si basa su -

  • Dati passati / Esperienza passata
  • Documenti / conoscenze disponibili
  • Assumptions
  • Rischi identificati

I quattro passaggi fondamentali nella stima del progetto software sono:

  • Stimare le dimensioni del prodotto di sviluppo.
  • Stima lo sforzo in mesi-persona o ore-persona.
  • Stima la pianificazione in mesi di calendario.
  • Stimare il costo del progetto nella valuta concordata.

Osservazioni sulla stima

  • La stima non deve essere un'attività una tantum in un progetto. Può avvenire durante:

    • Acquisizione di un progetto.
    • Pianificazione del progetto.
    • Esecuzione del progetto in caso di necessità.
  • L'ambito del progetto deve essere compreso prima dell'inizio del processo di stima. Sarà utile avere i dati storici del progetto.

  • Le metriche di progetto possono fornire una prospettiva storica e un input prezioso per la generazione di stime quantitative.

  • La pianificazione richiede ai responsabili tecnici e al team del software di assumere un impegno iniziale in quanto porta alla responsabilità e alla responsabilità.

  • L'esperienza passata può essere di grande aiuto.

  • Utilizzare almeno due tecniche di stima per arrivare alle stime e riconciliare i valori risultanti. Fare riferimento alle Tecniche di decomposizione nella sezione successiva per informazioni sulla riconciliazione delle stime.

  • I piani dovrebbero essere iterativi e consentire aggiustamenti con il passare del tempo e più dettagli sono noti.

Approccio generale alla stima del progetto

L'approccio alla stima del progetto ampiamente utilizzato è Decomposition Technique. Le tecniche di decomposizione adottano un approccio divide et impera. La stima delle dimensioni, dell'impegno e dei costi viene eseguita in modo graduale suddividendo un progetto in funzioni principali o attività di ingegneria del software correlate.

Step 1 - Comprendere l'ambito del software da creare.

Step 2 - Genera una stima delle dimensioni del software.

  • Inizia con la dichiarazione di ambito.

  • Scomponi il software in funzioni che possono essere valutate individualmente.

  • Calcola la dimensione di ciascuna funzione.

  • Ricava stime di impegno e costi applicando i valori delle dimensioni alle metriche di produttività di base.

  • Combina le stime delle funzioni per produrre una stima complessiva per l'intero progetto.

Step 3- Genera una stima dell'impegno e dei costi. È possibile arrivare alle stime degli sforzi e dei costi suddividendo un progetto in attività di ingegneria del software correlate.

  • Identificare la sequenza di attività che devono essere eseguite per completare il progetto.

  • Dividi le attività in compiti che possono essere misurati.

  • Stimare lo sforzo (in ore / giorni di persona) richiesto per completare ogni attività.

  • Combina le stime dello sforzo delle attività dell'attività per produrre una stima per l'attività.

  • Ottieni unità di costo (cioè costo / impegno unitario) per ciascuna attività dal database.

  • Calcola lo sforzo totale e il costo per ciascuna attività.

  • Combina lo sforzo e le stime dei costi per ciascuna attività per produrre uno sforzo complessivo e una stima dei costi per l'intero progetto.

Step 4- Riconcilia le stime: confronta i valori risultanti dal passaggio 3 con quelli ottenuti dal passaggio 2. Se entrambe le serie di stime concordano, i numeri sono altamente affidabili. Altrimenti, se si verificano stime ampiamente divergenti, condurre ulteriori indagini per verificare se:

  • Lo scopo del progetto non è stato adeguatamente compreso o è stato interpretato male.

  • La ripartizione delle funzioni e / o delle attività non è accurata.

  • I dati storici utilizzati per le tecniche di stima non sono appropriati per l'applicazione, sono obsoleti o sono stati applicati in modo errato.

Step 5 - Determinare la causa della divergenza e quindi riconciliare le stime.

Precisione della stima

La precisione è un'indicazione di quanto qualcosa sia vicino alla realtà. Ogni volta che generi una stima, tutti vogliono sapere quanto sono vicini i numeri alla realtà. Vorrai che ogni stima sia il più accurata possibile, dati i dati che hai al momento della generazione. E ovviamente non vuoi presentare una stima in un modo che ispira un falso senso di fiducia nei numeri.

I fattori importanti che influenzano l'accuratezza delle stime sono:

  • La precisione di tutti i dati di input della stima.

  • La precisione di qualsiasi calcolo di stima.

  • Quanto i dati storici oi dati di settore utilizzati per calibrare il modello corrispondono al progetto che stai stimando.

  • La prevedibilità del processo di sviluppo del software della tua organizzazione.

  • La stabilità sia dei requisiti del prodotto che dell'ambiente che supporta lo sforzo di ingegneria del software.

  • Indipendentemente dal fatto che il progetto reale sia stato attentamente pianificato, monitorato e controllato e non si sono verificate grandi sorprese che hanno causato ritardi imprevisti.

Di seguito sono riportate alcune linee guida per ottenere stime affidabili:

  • Stime di base su progetti simili che sono già stati completati.
  • Utilizzare tecniche di scomposizione relativamente semplici per generare stime dei costi e degli sforzi del progetto.
  • Utilizzare uno o più modelli di stima empirici per la stima dei costi e degli sforzi del software.

Fare riferimento alla sezione sulle Linee guida per la stima in questo capitolo.

Per garantire l'accuratezza, si consiglia sempre di stimare utilizzando almeno due tecniche e confrontare i risultati.

Problemi di stima

Spesso, i project manager ricorrono alla stima dei programmi saltando per stimare le dimensioni. Ciò può essere dovuto alle tempistiche stabilite dal top management o dal team di marketing. Tuttavia, qualunque sia la ragione, se ciò viene fatto, in una fase successiva sarebbe difficile stimare i programmi per accogliere i cambiamenti dell'ambito.

Durante la stima, possono essere fatte alcune ipotesi. È importante notare tutte queste ipotesi nel foglio di stima, poiché alcune ancora non documentano le ipotesi nei fogli di stima.

Anche buone stime hanno presupposti, rischi e incertezza intrinseci, eppure sono spesso trattate come se fossero accurate.

Il modo migliore per esprimere le stime è come una serie di possibili risultati dicendo, ad esempio, che il progetto richiederà dai 5 ai 7 mesi invece di affermare che sarà completo in una data particolare o sarà completato in un n. di mesi. Attenzione a impegnarsi in un intervallo troppo ristretto in quanto equivale a impegnarsi in una data definita.

  • Potresti anche includere l'incertezza come valore di probabilità associato. Ad esempio, esiste una probabilità del 90% che il progetto venga completato entro una data definita.

  • Le organizzazioni non raccolgono dati di progetto accurati. Poiché l'accuratezza delle stime dipende dai dati storici, sarebbe un problema.

  • Per qualsiasi progetto, esiste una pianificazione più breve possibile che ti consentirà di includere le funzionalità richieste e produrre risultati di qualità. Se esiste un vincolo di pianificazione da parte della direzione e / o del cliente, è possibile negoziare l'ambito e la funzionalità da fornire.

  • Concordare con il cliente sulla gestione dei creep dell'ambito per evitare i superamenti del programma.

  • L'incapacità di accogliere gli imprevisti nella stima finale causa problemi. Ad esempio, riunioni, eventi organizzativi.

  • L'utilizzo delle risorse dovrebbe essere considerato inferiore all'80%. Questo perché le risorse sarebbero produttive solo per l'80% del loro tempo. Se si assegnano risorse con un utilizzo superiore all'80%, è inevitabile che si verifichino degli slittamenti.

Linee guida per la stima

Si dovrebbero tenere a mente le seguenti linee guida durante la stima di un progetto:

  • Durante la stima, chiedi le esperienze di altre persone. Inoltre, metti al lavoro le tue esperienze.

  • Supponiamo che le risorse saranno produttive solo per l'80% del loro tempo. Pertanto, durante la stima, considerare l'utilizzo delle risorse inferiore all'80%.

  • Le risorse che lavorano su più progetti richiedono più tempo per completare le attività a causa del tempo perso per passare da uno all'altro.

  • Includere il tempo di gestione in qualsiasi stima.

  • Costruisci sempre la contingenza per la risoluzione dei problemi, le riunioni e altri eventi imprevisti.

  • Concedi abbastanza tempo per fare una stima adeguata del progetto. Le stime affrettate sono stime imprecise e ad alto rischio. Per i grandi progetti di sviluppo, la fase di stima dovrebbe davvero essere considerata come un mini progetto.

  • Ove possibile, utilizza dati documentati da progetti precedenti simili della tua organizzazione. Risulterà nella stima più accurata. Se la tua organizzazione non ha conservato i dati storici, ora è un buon momento per iniziare a raccoglierli.

  • Utilizza stime basate sugli sviluppatori, poiché le stime preparate da persone diverse da quelle che faranno il lavoro saranno meno accurate.

  • Usa diverse persone per stimare e utilizzare diverse tecniche di stima.

  • Riconcilia le stime. Osservare la convergenza o la diffusione tra le stime. Convergenza significa che hai una buona stima. La tecnica Wideband-Delphi può essere utilizzata per raccogliere e discutere le stime utilizzando un gruppo di persone, con l'intenzione di produrre una stima accurata e imparziale.

  • Rivalutare il progetto più volte durante il suo ciclo di vita.