Guida al project management per settore · IT, software e digitale
Project management del software: ciclo di vita, ruoli, metodi, KPI
Il project management del software è la pianificazione, il coordinamento e la consegna di prodotti e funzionalità software, dalla discovery e dai requisiti, passando per progettazione, sviluppo, test e rilascio, fino al miglioramento continuo. Poiché il software è facile da modificare ma difficile da stimare, la maggior parte dei team software gestisce il lavoro in brevi iterazioni e misura l'avanzamento in base al software funzionante anziché ai documenti.
Punti chiave
- Il project management del software lavora per brevi iterazioni perché i requisiti evolvono e le stime sono incerte.
- Scegliete Scrum, Kanban, DevOps o un approccio plan-driven in base al lavoro, non per abitudine.
- Monitorate la delivery con le metriche DORA e di flusso, e il successo con le metriche di risultato.
- Usate gli issue tracker degli sviluppatori per il lavoro a livello di codice e una piattaforma come Wrike per la pianificazione interfunzionale.
Che cosa rende diverso il project management del software
- I requisiti evolvono. Spesso gli utenti sanno che cosa vogliono solo quando vedono qualcosa di funzionante.
- La stima è incerta. Gran parte del lavoro consiste nel risolvere problemi nuovi, quindi i team fanno previsioni con intervalli e throughput storico anziché con date fisse.
- La delivery può essere continua. Con test e deployment automatizzati, i team possono rilasciare molte volte a settimana.
- Debito tecnico. Le scorciatoie prese per rispettare una data rallentano il lavoro futuro se non vengono ripagate; vedi debito tecnico in Scrum.
- La qualità è integrata. Code review, test automatizzati e monitoraggio sostituiscono le grandi fasi di test a fine progetto.
- Prodotto e progetto si sovrappongono. Molti team software sono team di prodotto stabili nel tempo, quindi il "progetto" è spesso un rilascio, un insieme di funzionalità o un nuovo prodotto.
Per una panoramica di come i team applicano i valori Agile nel codice, vedi Sviluppo software Agile.
Il ciclo di vita dello sviluppo software (SDLC)
| Fase | Cosa succede | Output principali |
|---|---|---|
| Discovery | Comprendere utenti, problemi e obiettivi; testare le idee con ricerche e prototipi | Definizione del problema, visione del prodotto, primi prototipi |
| Pianificazione | Definire l'ambito, prioritizzare il backlog, pianificare rilasci e capacità | Product backlog, piano di rilascio, roadmap |
| Design | UX design, architettura e approccio tecnico | Progetti, decisioni architetturali, criteri di accettazione |
| Sviluppo | Scrivere codice in piccoli incrementi con revisione e test automatizzati | Incrementi funzionanti e testati |
| Test e assicurazione qualità | Test automatizzati, esplorativi, di prestazione e di sicurezza | Risultati dei test, difetti risolti |
| Rilascio e deployment | Distribuire in produzione, spesso tramite una continuous delivery pipeline | Funzionalità rilasciata, note di rilascio |
| Gestione e miglioramento | Monitorare, supportare gli utenti, misurare i risultati e riportare quanto appreso nel backlog | Metriche, incidenti, nuovi elementi di backlog |
Nei team Agile queste fasi si svolgono in modo continuo all'interno di ogni iterazione anziché una sola volta in sequenza; vedi il ciclo di vita dello sviluppo Agile.
Ruoli chiave
| Ruolo | Responsabilità principali |
|---|---|
| Product owner / product manager | È responsabile della visione del prodotto e ordina il backlog in base al valore; vedi product owner Scrum |
| Engineering manager | Guida gli ingegneri, le assunzioni, la crescita e le pratiche di delivery |
| Tech lead / architetto | È responsabile della direzione tecnica e della qualità |
| Developer | Progettare, sviluppare e testare il software |
| QA / test engineer | Strategia di test, automazione e test esplorativi |
| UX / product designer | Ricerca sugli utenti e progettazione dell'interfaccia |
| Scrum master o delivery lead | Facilita il processo e rimuove gli impedimenti; vedi Ruolo dello Scrum master |
| Technical project manager o program manager | Coordina dipendenze tra team, tempistiche e rischi; vedi technical project manager |
| DevOps / SRE | Pipeline di build, infrastruttura e affidabilità |
Metodologie per i progetti software
| Approccio | Quando è adatta | Note |
|---|---|---|
| Scrum | Team di prodotto che sviluppano nuove funzionalità con feedback regolari dagli stakeholder | Sprint a durata fissa con planning, review e retrospettiva |
| Kanban | Team di manutenzione, piattaforma e supporto; flusso continuo | Limiti WIP e metriche di flusso al posto degli sprint |
| Extreme Programming (XP) | Team che vogliono una forte disciplina ingegneristica | Pair programming, test-driven development, integrazione continua |
| DevOps | Team che sviluppano e gestiscono i propri servizi | Automatizza la delivery e condivide la responsabilità delle operations |
| Waterfall o modello a V | Contratti ad ambito fisso e software regolamentato o safety-critical | Fasi formali, documentazione e verifica |
| Framework scalati | Molti team su un unico prodotto | Vedi SAFe e LeSS |
Confrontate le opzioni in Agile vs Waterfall e Kanban vs Scrum.
Documenti e modelli essenziali
| Documento | Scopo | Modello |
|---|---|---|
| Product backlog | Elenco ordinato di tutto ciò di cui il prodotto potrebbe aver bisogno | Modello di product backlog |
| User story | Requisiti scritti dal punto di vista dell'utente | Modello di user story |
| Piano dello sprint | Sprint goal e lavoro selezionato | Modello di sprint planning |
| Piano di rilascio e roadmap | Che cosa viene rilasciato e quando, ad alto livello | Modello di piano di rilascio, modello di product roadmap |
| Documento dei requisiti | Per il lavoro ad ambito fisso o su commessa | Modello di documento dei requisiti di business |
| Note della retrospettiva | Miglioramenti concordati dal team | Modello di sprint retrospective |
| registro RAID | Rischi e dipendenze tra team | Modello di registro RAID |
Tenete accanto a questi documenti gli architecture decision record e una definition of done; vedi Definition of Done.
KPI per il project management del software
| KPI | Cosa misura | Uso tipico |
|---|---|---|
| Frequenza di deployment | Con quale frequenza il codice arriva in produzione | Capacità di delivery (metrica DORA) |
| Lead time delle modifiche | Tempo dal commit alla produzione | Velocità del flusso (metrica DORA) |
| Tasso di fallimento delle modifiche | Quota di deployment che causano un malfunzionamento | Qualità dei rilasci (metrica DORA) |
| Tempo di ripristino del servizio | Quanto rapidamente vengono risolti i malfunzionamenti | Resilienza (metrica DORA) |
| Cycle time | Tempo dall'avvio del lavoro al completamento | Previsioni e individuazione dei colli di bottiglia |
| Throughput o velocity | Lavoro completato per settimana o per sprint | Previsione dei rilasci |
| Difetti sfuggiti | Bug individuati dopo il rilascio | Efficacia dei test |
| Metriche di risultato | Adozione, conversione, retention o successo nelle attività | Se il software genera valore |
Vedi Metriche e KPI Agile per saperne di più.
Sfide comuni
- Date fisse con ambito fisso. Fissate la data e rendete flessibile l'ambito, e fate previsioni con intervalli basati sul throughput passato.
- Debito tecnico crescente. Riservate capacità in ogni sprint per il refactoring e il lavoro sulla piattaforma.
- Dipendenze tra team. Mappatele in modo visibile, allineatevi su milestone condivise e usate uno scrum of scrums o un meccanismo di sincronizzazione simile.
- Troppo lavoro in corso. Applicate limiti WIP e completate prima di iniziare.
- Misurare l'output, non i risultati. Collegate i rilasci agli obiettivi degli utenti e del business, non solo agli story point.
Software per il project management del software
I team di sviluppo hanno bisogno di un issue tracker collegato ai repository di codice e alle pipeline CI/CD, oltre a board, backlog e report sugli sprint. Product manager e delivery manager hanno bisogno anche di roadmap, viste delle dipendenze tra team e report leggibili da chi non è un ingegnere.
Jira è ampiamente usato dai team di ingegneria per il tracciamento delle issue. Wrike è l'opzione all-in-one più completa nelle nostre classifiche degli strumenti quando il lavoro software deve essere pianificato insieme a marketing, supporto, design e altri reparti, con board Agile e viste Gantt in un unico luogo. Vedi anche Strumenti software per Scrum.
Modelli gratuiti per questo argomento
Domande frequenti
Che cos'è il project management del software?
Il project management del software è la pianificazione, il coordinamento e la consegna di prodotti e funzionalità software, dalla discovery, passando per sviluppo, test e rilascio, fino al miglioramento continuo.
Quali sono le fasi del project management del software?
Le fasi dell'SDLC sono discovery, pianificazione, progettazione, sviluppo, test, rilascio e gestione e miglioramento, di solito ripetute in brevi iterazioni.
Qual è la metodologia migliore per il project management del software?
Scrum è adatto ai feature team, Kanban al flusso continuo e al supporto, le pratiche DevOps ai team che gestiscono i propri servizi e Waterfall o il modello a V al lavoro ad ambito fisso o regolamentato.
Che cosa sono le metriche DORA nel project management del software?
Quattro misure di delivery del programma DevOps Research and Assessment: frequenza di deployment, lead time delle modifiche, tasso di fallimento delle modifiche e tempo di ripristino del servizio.
Chi si occupa del project management del software in un team Agile?
Le responsabilità sono condivise: il product owner gestisce le priorità, il team pianifica il proprio lavoro, lo Scrum master facilita e un technical project manager può coordinare tra più team.
Come si fanno le stime nel project management del software?
Usate stime relative come gli story point oppure fate previsioni basate su throughput e cycle time storici, ed esprimete le date come intervalli.
Quali documenti si usano nel project management del software?
Un product backlog, user story, piani degli sprint, piani di rilascio, roadmap, una definition of done e, per il lavoro su commessa, un documento dei requisiti.
Quali software si usano per il project management del software?
Issue tracker come Jira collegati ai repository di codice, più una piattaforma come Wrike quando il lavoro software deve essere pianificato con altri reparti.
Come si gestisce il debito tecnico nel project management del software?
Rendetelo visibile nel backlog, riservate capacità a ogni iterazione per ridurlo e includetelo nelle discussioni di pianificazione con il product owner.
Qual è la differenza tra project management del software e product management?
Il product management decide che cosa costruire e perché; il project management del software si concentra su come e quando viene consegnato.
Quali competenze richiede il project management del software?
Comprensione del processo di sviluppo, pratiche Agile, gestione di rischi e dipendenze, comunicazione con stakeholder tecnici e di business e previsioni basate sui dati.