10 ragioni per cui molti progetti software falliscono
-La Digital Media Initiative (DMI) della BBC è fallita a causa del fallimento della governance e dei ritardi nella consegna. Era un progetto su cui tutti avevano messo gli occhi perché doveva digitalizzare la produzione della BBC.
-Il fallimento del Virtual Case File (VCF) dell’FBI è dovuto a una serie di ragioni, ma le aspettative irrealistiche sono state una delle principali. Il progetto ha sprecato circa 104,5 milioni di dollari di denaro dei contribuenti.
-Il nuovo sistema della Fed americana è andato su tutte le furie, la prima notte in cui è entrato in funzione e ha consegnato 28 miliardi di dollari come interessi alle banche associate sbagliate.
Come possono fallire i progetti software ben pianificati? Erano davvero ben pianificati? O almeno così pensavano. Purtroppo molti progetti falliscono; in effetti è diventato un evento così comune che quasi non se ne parla, non se ne discute, se non per le persone che hanno dovuto affrontare il fallimento. Nel 2013, Innotas, una società di gestione dei progetti, ha rivelato che circa il 50% delle aziende intervistate ha registrato fallimenti nella gestione dei progetti. Ora, 4 anni dopo, la storia non è molto diversa. Quali sono le cause del fallimento dei progetti software? Abbiamo esplorato alcune delle ragioni sulla base delle nostre osservazioni, cosa ne pensate?
1. Disallineamento degli obiettivi aziendali con i risultati del progetto
Si può dire che le priorità sono diverse a seconda delle aziende. Per alcune aziende, l’obiettivo è raggiungere gli obiettivi aziendali, mentre per altre è consegnare il progetto nei tempi e nei costi previsti. Questo è il viaggio in cui prendono la strada sbagliata e si perdono. Se gli obiettivi aziendali e i risultati del progetto sono allineati tra loro, è probabile che il software non fallisca. Ma non è affatto un compito facile.
2. Non è in grado di capire a cosa dare priorità
Non riuscire a stabilire le priorità dei progetti più importanti. Il responsabile della gestione dei progetti si riunisce con gli stakeholder e altri responsabili autorevoli dell’azienda per decidere le priorità dei progetti. In seguito assegneranno le risorse e il personale e terranno conto del budget e del tempo a disposizione. A volte le cose vanno male durante l’allineamento degli obiettivi aziendali con i risultati del progetto, e questo potrebbe anche essere dovuto al fatto che non sono state corrette le priorità.
3. Requisiti vaghi
Uno dei primi passi di qualsiasi ciclo di sviluppo del software è la comprensione dei requisiti del cliente. A meno che i requisiti non siano chiaramente tracciati e approvati dal cliente, è possibile che entrambi non siate in grado di
stessa pagina alla fine del ciclo di sviluppo.
4. Vincoli di tempo
I vincoli di tempo spesso impediscono agli sviluppatori di ottenere chiarezza sul progetto da parte del cliente, e questo potrebbe portare a molte rielaborazioni e all’allocazione di ulteriori risorse, riflettendo al contempo una pubblicità negativa per l’azienda. Per questo motivo, prima di iniziare a sviluppare un progetto, è importante fare un’analisi dei requisiti e assicurarsi che tutti, compreso il cliente, abbiano ben chiaro come sarà il prodotto finale.
5. Scarsa stima dei tempi
Gli sviluppatori sono esseri umani e c’è un limite a quante ore possono lavorare in un giorno. Programmate il tempo in modo logico, in modo che il progetto sia completato come previsto e lo sviluppatore sia ancora vivo per affrontare un altro progetto.
6. Non sono pronti a forzare la scadenza
I project manager e gli stakeholder devono essere attenti quando mettono al lavoro il team di sviluppatori. Certo, un giorno di lavoro in più aumenta le spese, ma a lungo andare ne varrà la pena.
7. Dare tempi irrealistici non farà altro che ritardare il progetto.
Contrariamente a quanto pensano gli stakeholder e i project manager, la definizione di tempi irrealistici porterà solo gravi perdite all’azienda. Pianificate sempre il progetto in modo che le aspettative siano ragionevoli, a seconda della quantità di lavoro.
8. Divario di comunicazione
La scarsa comunicazione è la causa di molti fallimenti nella vita. Infatti, è talmente importante per tutti coloro che sono associati a un progetto che seguire corsi professionali sulle capacità relazionali sarà sicuramente un punto a favore. La comunicazione e i messaggi devono essere condivisi correttamente, perché pareri e opinioni contrastanti potrebbero far fallire un progetto ancor prima che sia pronto a decollare. Il project manager ha la responsabilità di fungere da mediatore tra tutti i membri del team. Assicuratevi che i messaggi arrivino a tutti, soprattutto quando si tratta di qualcosa che riguarda i risultati del progetto.
9. Non trovare le persone giuste per il lavoro
L’inadeguatezza del personale è un altro motivo di fallimento del progetto. Avete un team di bravi sviluppatori. Ma pensate che siano una squadra “unica”? Sono in grado di gestire qualsiasi tipo di progetto che viene loro assegnato? Potrebbe essere necessario assegnare le persone in base alle loro competenze. Le persone giuste, anche se costose, si riveleranno utili. Dopotutto, la qualità del progetto non deve risentirne. Sviluppatori inefficienti o mediocri ritarderanno il progetto, mentre uno sviluppatore 10x terrà in mano le redini del progetto.
10. Test insufficienti
I test del software falliscono. Dopo aver fatto tutto, ci si rende conto che c’è un problema di codifica che deve ancora essere risolto. Se non ci sono pietre miliari che regolano la fase di sviluppo del codice, il progetto potrebbe fallire. È possibile avviare un test di automazione in cui il tester scrive script e utilizza un altro software per testare le diverse funzionalità dell’applicazione/software. I diversi tipi di test del software sono
- Test unitari
- Test di integrazione
- Test funzionali
- Test del sistema
- Test di stress
- Test delle prestazioni
- Test di usabilità
- Test di accettazione
- Test di regressione
- Test beta
È un’operazione che richiede tempo, ma ne vale la pena. Attraverso i test è possibile capire la qualità del progetto; si tratta di una sorta di processo di verifica e convalida.
Conclusione
È importante capire prima il progetto e poi assegnare le risorse e la manodopera. Date loro tempo sufficiente per lavorare al progetto e risorse quando ne hanno bisogno. Seguite i consigli sopra descritti e probabilmente farete centro.
Un’ultima parola: assicuratevi che i requisiti del sistema siano definiti e stabiliti in modo appropriato. Non potete permettervi di avere intoppi con il sistema una volta che il software è pronto a funzionare.
Altre informazioni….
- 10 motivi per cui i progetti software falliscono
- I motivi più comuni per cui i progetti software falliscono
Flickr.com/ Patrizio Cuscito
Informazioni sull’autore: Reema lavora come Thought Leader presso PHPBabu.