‘Agile project management’ (gestione di progetto Agile) è un termine generico per i metodi di sviluppo che adottano un approccio incrementale e iterativo. Anche se ha avuto origine nello sviluppo di software, e si trova ancora principalmente in questo ambiente, i suoi principi possono essere applicati ad altre discipline. Le diverse sfumature nell’applicazione di Agile sono accomunate comunque da alcune caratteristiche fondamentali:
- Brevi iterazioni di sviluppo note come ‘sprint’.
- Lavoro a stretto contatto tra gli sviluppatori e le parti interessate.
- Regolare ridefinizione delle priorità di lavoro.
- Approccio rapido e flessibile nell’indirizzare i cambiamenti di ambito.
Varie tecniche si sono evolute al fine di supportare l’implementazione di queste caratteristiche, come i timebox per la pianificazione, il metodo MoSCoW per l’assegnazione di priorità e burn down charts per la reportizzazione del progresso.
Un modo molto semplice per capire la differenza tra Agile e forme di sviluppo più tradizionali è identificare il loro rapporto con il triplo vincolo (ambito, tempi, costi).
Nei progetti tradizionali, l’enfasi è posta sull’ambito. All’interno dei processi di identificazione e definizione, la gestione dei requisiti e lo sviluppo delle soluzioni giocano un ruolo importante. La funzione di pianificazione ricava poi tempi e costi dall’ambito.
Nei progetti Agile, l’enfasi è posta su tempi e costi. L’ambito è ricavato da questi in modo che la pianificazione stabilisca quale ambito possa essere considerato entro i vincoli posti da tempo e costi. I processi di identificazione e di definizione si concentrano su funzioni e caratteristiche generiche senza definirle nel dettaglio. Verrà creato un prototipo del dettaglio durante il processo di consegna e verrà perfezionato attraverso una stretta collaborazione tra le parti interessate e gli sviluppatori.
Grazie ad E-quality Italia per la traduzione