DSDM o Dynamic Systems Development Method è una metodologia agile di sviluppo software che si concentra sull'intero ciclo di vita del progetto. DSDM è un approccio iterativo e incrementale allo sviluppo del software, che si concentra anche sull'aggiunta di disciplina e struttura al processo di sviluppo.
DSDM è in gran parte basato sul metodo di sviluppo agile (RAD). Il metodo RAD o Rapid Application Development da priorità alla prototipazione rapida e all'iterazione basata sul feedback degli utenti, ma manca di struttura. Questo è il motivo per cui è stato fondato il consorzio DSDM, in modo che gli esperti possono condividere le loro conoscenze e sviluppare un adeguato framework agile.
Il framework DSDM ha 4 componenti principali che sono suddivisi in 8 principi chiave. Questi quattro componenti sono:
- Studio di fattibilità e di business.
- modello funzionale / prototipo delle Iterazioni
- Design e build.
- Implementazione.
Tutti questi componenti si combinano per offrire vantaggi strategicamente allineati nel business nel più breve tempo possibile per offrire il miglior ritorno sull'investimento.
Il framework DSDM utilizza il principio di Pareto che afferma che "di norma, l'80% del valore della soluzione può essere consegnato per il 20% dello sforzo necessario per produrre la soluzione totale".
Utilizzando questo metodo di sviluppo dei sistemi dinamici, si mira a sviluppare in modo efficiente software di buona qualità in modo che i rendimenti siano vantaggiosi per entrambe le parti interessate.
Il metodo di sviluppo dei sistemi dinamici prevede 6 fasi di progetto come segue:
Fase pre-progetto - per assicurarsi che solo i progetti giusti vengano avviati con un obiettivo adeguato.
Fase di fattibilità - per verificare la fattibilità tecnica e commerciale del progetto proposto
Fase delle fondamenta - per comprendere lo scopo del lavoro da svolgere, nonché come verrà svolto, da chi, quando e dove.
Fase di sviluppo evolutivo - per far evolvere la soluzione e creare incrementi di soluzione in modo iterativo.
Fase di distribuzione - consiste nell'assemblare i vari componenti, rivedere il prodotto e distribuirlo prima di chiudere il progetto.
Fase post-progetto - per verificare in che misura sono stati raggiunti i benefici aziendali attesi.
In pratica, questo potrebbe non essere un approccio stabile e unidirezionale e potrebbe essere necessario rivisitare alcune fasi precedenti.
Gli 8 principi del metodo di sviluppo di sistemi dinamici sono riportati come segue:
1. Concentrarsi sulle esigenze aziendali
È importante comprendere le priorità aziendali e prendere qualsiasi decisione in base ad esse. Qualsiasi mossa che fai dovrebbe essere in linea con gli obiettivi del progetto. Il progetto non è il fine, ma piuttosto un mezzo per arrivare alla fine. È necessario sviluppare un caso aziendale valido e garantire un impegno aziendale continuo.
2. Consegna in tempo
La consegna dei progetti in tempo non è negoziabile e devi assicurarti che il tuo prodotto sia pronto in tempo utile. Usa le tecniche di timeboxing, pianificare in anticipo e prevedere un lasso di tempo utile per il completamento. La data di consegna non dovrebbe essere modificata a nessun costo, ma potresti apportare alcune modifiche alle funzionalità.
3. Cooperare e collaborare
Le parti interessate e il team di sviluppatori dovrebbero essere in grado di collaborare con facilità quando richiesto. Attraverso workshop facilitati, le parti interessate del progetto possono condividere i loro input con il team di sviluppo. Il team dovrebbe avere esperti che siano competenti in materia pertinente.
4. Mai compromettere la qualità
Il livello di qualità che verrà consegnato dovrebbe essere concordato in anticipo. Questa non può essere una variabile e tutto il lavoro dovrebbe essere finalizzato al raggiungimento di questa qualità. Il test continuo è un must per garantire la qualità.
5. Costruisci in modo incrementale
Comprendere la portata del problema aziendale e fornire valore aziendale in anticipo. Tuttavia, non analizzare eccessivamente i dettagli del requisito e valutare le priorità ad ogni incremento.
6. Sviluppa in modo iterativo
È abbastanza certo che all'inizio ci sarebbero stati degli errori che devono essere corretti man mano che emergono i dettagli. Ottieni feedback dai tuoi clienti e sviluppa miglioramenti di conseguenza. L'evoluzione continua ti consente di sviluppare in modo più accurato.
7. Comunicare continuamente
È necessario gestire in modo efficace le aspettative degli stakeholder e non lasciare che una scarsa comunicazione ostacoli il successo del progetto. Presenta il tuo lavoro in anticipo e ripetutamente utilizzando modelli e prototipi.
8. Dimostrare di aver sempre il controllo
Devi essere proattivo durante il monitoraggio dello stato di avanzamento del tuo progetto per dimostrare che sei al comando.
I punti di forza del DSDM includono:
- Consegna rapida della funzionalità di base del prodotto;
- Facile accesso degli sviluppatori agli end-users;
- Affidabilità nel completamento dei progetti da un punto di vista delle modalità e del tempo.
Tra le debolezze del DSDM sono da citare:
- La possibilità che esso rappresenti un cambiamento poco accettato nella cultura aziendale;
- Può apparire costoso a livello di implementazione;
- Non risulta ideale per le piccole imprese.
Il Dynamic System Development Method risulta utile per un’azienda, qualora l’organizzazione dedichi un ruolo prioritario allo sviluppo rapido, così come al rispetto dei tempi e del budget, all'abbattimento della burocrazia e al miglioramento della comunicazione tra i team di lavoro. In questo caso, il DSDM potrebbe rappresentare una soluzione che vale la pena esplorare.