Lo sviluppo iterativo è una tecnica di sviluppo, utilizzata in una timebox nella quale viene sviluppato un prodotto. Ogni iterazione è auto-consistente e comprende le attività di analisi, progettazione, implementazione e test. Ogni iterazione può aggiungere parti al prodotto (Sviluppo Iterativo) oppure raffina il prodotto (Sviluppo Incrementale). E’ quindi chiamato sviluppo iterativo, incrementale e/o evolutivo. Si basa sul feedback ottenuto nell’iterazione precedente per migliorare le iterazioni successive.
L’Iterative Development (sviluppo iterativo) è una delle 5 tecniche chiave di DSDM®. E’ utilizzato all’interno delle Development Timebox per sviluppare la soluzione che, non a caso, prende il nome di Evolving Solution (Soluzione in evoluzione).
Sviluppo Iterativo e Sviluppo Incrementale
Spesso si utilizzano i termini “Sviluppo Iterativo” e “Sviluppo Incrementale” come sinonimi. Per quanto simili, sono due concetti ben diversi. Ogni approccio ha i suoi pro e i suoi contro. Configurare correttamente il ciclo di sviluppo è utile per ottimizzare i rilasci. Non a caso DSDM® prevede due princìpi differenti: “Build incrementally from firm foundations” (Incrementale – Verticale) e “Develop Iteratively” (Iterativo – Orizzontale) e fa notare che spesso un approccio combinato ha più vantaggi.
Sviluppo Iterativo in DSDM®
DSDM® definisce un ciclo ben preciso per l’Iterative Development (sviluppo iterativo) che garantisce che sia ottenuto e utilizzato il feedback e che la soluzione evolva in modo controllato:
- Identify (Identificare): si concorda l’obiettivo dell’iterazione.
- Plan (Pianificare): si pianifica il lavoro e si verifica che ci sia tutto il necessario per ottenere l’obiettivo.
- Evolve (Evolvere): si eseguono le attività pianificate.
- Review (Revisionare): si verificano i risultati e l’ottenimento dell’obiettivo.
- Se l’obiettivo è stato raggiunto si procede con l’accettazione della nuova baseline del prodotto, si esegue un’altro ciclo si conclude lo sviluppo.
- Se l’obiettivo non è stato raggiunto è possibile:
- Scartare le modifiche appena fatte, trovare un nuovo approccio ed eseguirlo in un nuovo ciclo.
- Identificare del lavoro aggiuntivo, ed eseguirlo in un altro ciclo.
Lo sviluppo iterativo è una delle componenti principali delle Development Timebox. Quando è utilizzato in questo contesto sono presenti tre iterazioni di breve durata – giorni o addirittura ore – per Investigation, Refinement e Consolidation.
Sviluppo iterativo per i Project Product o Prodotti di Gestione
Lo sviluppo iterativo è una tecnica molto potente può essere utilizzata anche per lo sviluppo dei Project Product in DSDM® o dei Prodotti di Gestione in PRINCE2®. In questi casi la durata della timebox è variabile.
Risorse e riferimenti
- Il manuale “Atern® Handbook” edito dal DSDM® Consortium
- Il libro “Applicare UML e i Pattern: Analisi e progettazione orientata agli oggetti” di Craig Larman edito da Pearson Education Italia
Copyright
PRINCE2®, ITIL®, M_o_R® sono marchi registrati della AXELOS Limited.
DSDM®, Atern® e Agile Project Management™ sono marchi registrati da Dynamic Systems Development Method Limited
Pingback: #Timeboxing: come funziona in #DSDM e #Agile Project Management - Il Blog del Project Management