
Aspiriamo tutti che i nostri progetti software vengano consegnati rispettando tempi e budget*. Il software è complesso e, a meno che non pianifichiamo il successo, è improbabile che “accada e basta”. Quando pianifichiamo progetti software, fortunatamente abbiamo l'esperienza dei fallimenti passati da cui possiamo imparare. Dovremmo abbracciare gli insegnamenti di questi errori in modo che i nostri progetti possano evitare il percorso “patologico”.
Cosa intendiamo per ritardo di un progetto? Il ritardo riguarda in realtà un progetto consegnato in ritardo rispetto alle aspettative, o in altre parole in ritardo rispetto alla stima. Per evitare delusioni dobbiamo creare aspettative realistiche (stime) E dobbiamo svolgere le attività per evitare problemi che potrebbero portare al mancato rispetto delle stime.
In uno studio su 84 progetti di IBM e AT&T, Capers Jones ha osservato che i progetti eseguiti in ritardo di 6 mesi o più mostravano poche prove di essere in difficoltà nelle fasi iniziali. Gli ultimi progetti avevano lesinato su molte attività cruciali, in particolare: revisione dei requisiti, ispezioni, controllo di qualità. Tutto ciò riguarda l'attenzione precoce alla qualità.
Perché sono stati stimati in modo errato? O la stima era inappropriata oppure le attività che avrebbero potuto mantenerla in tempo non sono state eseguite correttamente.
Capers cita 10 fattori che portano alla mancata corrispondenza stima/effettiva:
*Alcuni soggetti beneficiano dei costi aggiuntivi generati quando un progetto viene esteso.
Come l'intelligenza artificiale può aiutare
La pianificazione inizia presto, quando sai o quando scopri i requisiti. ScopeMaster utilizza l'intelligenza artificiale per aiutarti a comprendere i requisiti molto rapidamente. Che conduce a piani migliori.
Fattori che influenzano la pianificazione del software e stimare l'affidabilità
Fattore | Descrizione | Impatto sulla pianificazione | Mitigazione | |
---|---|---|---|---|
Errori di metrica |
L'utilizzo di metriche inappropriate come Story Points o simili porterà a stime inadeguate | Fino a 100% | Utilizzare il dimensionamento funzionale, i punti funzione COSMIC | ScopeMaster automatizza il dimensionamento funzionale, elimina la maggior parte di questi errori. |
Adeguamento tecnologico |
Incertezza/ritardo causato dall'introduzione di nuovi strumenti/tecnologie/tecniche | L'impatto osservato può causare errori di stima fino a 150% | Concedere almeno un mese affinché la nuova tecnologia venga incorporata nell'uso, pianificarla | |
Errori di percorso critico |
L'illusione che il progresso sia sulla buona strada finché il progetto non viene interrotto da un evento bloccante | Errore nelle pianificazioni fino a 25% | Un migliore monitoraggio del percorso critico e una mitigazione proattiva del rischio tecnico possono minimizzarli. | ScopeMaster induce a pensare tempestivamente alle complessità e alle integrazioni, che sono cause comuni di problemi di CP |
Problemi di dimensionamento/ambito |
Sottovalutare erroneamente la reale portata di un progetto porterà ad un aumento del lavoro e del programma. La qualità e la completezza dei requisiti influiscono anche sulla capacità di dimensionamento corretto | Errore 15-100% | Il dimensionamento funzionale e il controllo automatizzato della completezza contribuiranno a mitigare questo problema. | Risolto da ScopeMaster (anche per project manager inesperti). |
Requisiti utente striscianti |
La modifica dei requisiti (distinti dai requisiti mancanti) porterà ad un aumento del lavoro e del programma. | I tassi di errore sono maggiori sui progetti più lunghi 2-10% al mese | Questo dovrebbe essere pianificato e abbracciato (Agile). | ScopeMaster aiuta in diversi modi: migliorando la qualità dei requisiti iniziali, una migliore elicitazione e monitoraggio della volatilità |
Errori di assegnazione |
Mancata assegnazione del personale adeguato a un'attività all'interno di un progetto. Ogni persona che svolge un determinato ruolo ha una capacità limitata di svolgere il lavoro e deve essere assegnata al momento opportuno nel progetto. | Errore fino a 100% | Manager competenti che comprendono le capacità di incarico (vedi sotto). | ScopeMaster aiuta fornendo una dimensione funzionale da cui è possibile determinare gli ambiti di assegnazione. |
Errori nel tasso di produzione |
La differenza tra il tasso di produzione previsto e quello effettivo. | 20-100% | Misure realistiche e appropriate del tasso di produzione aiuteranno, ad es. CFP/mese per una determinata squadra. | ScopeMaster aiuta fornendo una dimensione funzionale da cui è possibile misurare, confrontare e monitorare i tassi di produzione. |
Accumulo di personale |
Non riuscire a impiegare il giusto numero di personale con le giuste competenze al momento giusto causerà ritardi. | Probabilmente avrà un impatto entro settimane o addirittura mesi. | I manager competenti dovrebbero pianificare in modo appropriato. | ScopeMaster aiuta fornendo una dimensione funzionale da cui è possibile determinare l'assegnazione e gli ambiti. |
Selezione delle attività |
Non prendere in considerazione tutte le attività del progetto, non solo la codifica, porterà a errori di pianificazione. | Osservato fino a 1000% | I manager competenti dovrebbero pianificare tutte le attività in modo appropriato. | |
Interferenza esecutiva o politica |
I dirigenti decretano scadenze o altri vincoli inappropriati che portano a una scarsa qualità. | Errore fino a 50% per la pianificazione, 100% per i costi | I manager competenti dovrebbero respingere con forza tali interferenze. | ScopeMaster crea stime delle dimensioni funzionali da cui è possibile determinare programmi realistici e utilizzarli come difesa. |
Pianificazione basata sulle attività in base alla dimensione funzionale
Pianificazione di progetti software
Il fattore più critico nel determinare la durata di un progetto è la sua dimensione. Per dimensione ci riferiamo alla dimensione funzionale. La dimensione funzionale è il mezzo più affidabile per dimensionare un progetto software. A differenza dei punti della storia (che sono una stima ingegneristica proxy non lineare e soggettiva dell'impegno), la dimensione funzionale è generalmente coerente, entro pochi %, indipendentemente da chi la dimensiona.
Per determinare quanto di ciascuna attività è appropriato per il nostro progetto, dobbiamo comprendere entrambi ambito di assegnazione (quanta capacità un individuo può gestire) e il loro tasso di produzione (quanta capacità possono gestire in un dato arco di tempo). Questi sono mostrati nella tabella seguente in base alla dimensione funzionale del software su cui si sta lavorando nei Function Point.
Esistono due standard principali per le dimensioni funzionali: i punti funzione tradizionali (IFPUG) e i punti funzione COSMIC. Consigliamo quest'ultimo principalmente perché gestisce molto bene i requisiti incompleti, non è necessario conoscere tutti i requisiti per dimensionare un pezzo di software (cosa che generalmente fai con IFPUG).
Assegnazioni di attività e produttività media
Per la pianificazione basata sulle attività
Non tutte queste attività sono necessarie per tutti i progetti. Come linea guida, quanto più grande è il progetto, tanto maggiore sarà il numero di queste operazioni che dovrai eseguire.
Attività | Ambito di assegnazione del personale, FP | Produzione mensile, FP |
---|---|---|
Requisiti |
333 | 175 |
Prototipazione |
500 | 150 |
Architettura |
1000 | 300 |
Piani di progetto |
1000 | 500 |
Progettazione iniziale |
250 | 175 |
Progettazione dei dettagli |
250 | 150 |
Revisioni del design |
200 | 225 |
Codifica |
175 | 50 |
Acquisizione del riutilizzo |
500 | 600 |
Acquisto del pacchetto |
2000 | 400 |
Ispezioni del codice |
150 | 150 |
Verifica e convalida indipendenti |
500 | 125 |
Gestione della configurazione |
1000 | 175 |
Integrazione |
1000 | 250 |
Documentazione per l'utente |
1000 | 70 |
Test unitari |
200 | 150 |
Test funzionali |
200 | 150 |
Test d'integrazione |
250 | 175 |
Test del sistema |
250 | 200 |
Test sul campo (beta). |
1000 | 250 |
Test di accettazione |
1000 | 350 |
Test indipendenti |
750 | 200 |
Garanzia di qualità |
1000 | 150 |
Installazione e formazione |
2000 | 350 |
Gestione del progetto |
1000 | 100 |
Non è disponibile una tabella equivalente, basata sulla CFP, tuttavia è ragionevole considerare FP e CFP più o meno equivalenti quando si utilizzano questi dati per la pianificazione basata sulle attività.
Un approccio basato sulle attività è particolarmente utile in quanto ci aiuta a identificare il personale e le competenze necessarie durante il progetto. Strumenti come SRM® di Namcook Analytics SEER per il software di Galorath, SOTTILE da QSM O La vera pianificazione da Unison (in precedenza Price Systems) può fornire ulteriore aiuto fornendo un profilo di personale adeguato per un determinato progetto nel tempo.
Questa è una versione ridotta della tabella 11.4 pubblicata in "Estimating Software Costs, second edition" di Capers Jones. Disponibile per l'acquisto da Amazon. Nb, questo è solo un esempio delle attività e dei relativi livelli di personale, tassi di produttività (costi impliciti). Scoprirai che mantenere i tuoi parametri di riferimento per queste attività è un'attività utile.
Stima anticipata
Se stai cercando aiuto per stimare le dimensioni, la durata e il personale di un progetto prima di conoscerne i requisiti, allora uno strumento adatto è Software Risk Manager (SRM) di Namcook Analytics. Utilizza dati storici del progetto e vari algoritmi per fornire stime di dimensioni, durata, personale e molto altro. SRM può essere trovato su Namcook sito web.
Conclusione
I punti chiave di questo articolo sono:
- È possibile creare preventivi realistici per progetti software ragionevolmente coerenti con ciò che alla fine accade.
- La dimensione (dimensione funzionale) è il fattore più significativo influenzando lo sforzo e la durata. L'affidabilità della stima delle dimensioni dipende da numerosi fattori.
- Un approccio basato sulle attività basato sulla dimensione funzionale può produrre una stima ragionevole dell’impegno (e quindi del costo).
- Conoscere lo sforzo e i tassi di produttività tipici ci fornisce una stima ragionevole della durata.
- I progetti molto grandi trarranno vantaggio anche da uno strumento di pianificazione parametrica in grado di prevedere le dimensioni del team e le competenze nel corso del progetto.