Pianificazione di progetti software per progetti non banali

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.

Questo articolo è basato sul lavoro di Capers Jones. Siamo molto grati per il suo permesso di ripubblicare qui alcune delle sue scoperte. Se sei interessato a saperne di più, puoi trovare la fonte qui. Stima dei costi del software di Capers Jones

Fattori che influenzano la pianificazione del software e stimare l'affidabilità

Fattore Descrizione Impatto sulla pianificazione Mitigazione ScopeMaster

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 GalorathSOTTILE 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.