DSDM: alla scoperta del Dynamic Systems Development Method
Se sei alla ricerca di un approccio iterativo e incrementale basato sul Rapid Application Development che enfatizzi il continuo coinvolgimento di utenti e cliente, sei capitato nel posto giusto.
In questo articolo ti forniremo le informazioni chiave per comprendere il DSDM e ti aiuteremo a farti un’idea sul funzionamento del Dynamic Systems Development Method, in modo tale da permetterti di capire se esso può essere adatto alla tua azienda.
Cos’è il DSDM
DSDM è un acronimo che abbrevia la dicitura inglese Dynamic Systems Development Method. Il DSDM è un framework agile che si rapporta sia con l'intero ciclo di vita del progetto, che con il suo impatto sul business.
Come gli altri agile methods, il Dynamic Systems Development Method è un approccio iterativo allo sviluppo dei software.
👀 L’obiettivo del Dynamic Systems Development Method è quello di consentire la consegna dei progetti nei tempi prestabiliti ed all’interno dei costi previsti, eventualmente adattando le modifiche ai requisiti in corso d'opera.
☝ Il DSDM è ideale per progetti di sviluppo di sistemi informativi definiti da schedulazioni e budget ridotti.
DSDM: un po’ di storia
Il DSDM è stato inventato nel 1994. Al tempo, i project manager usavano un altro quadro agile, il Rapid Application Development (RAD). Quest’ultimo, tuttavia, non aveva sufficiente governance per le loro necessità e linee non sufficientemente severe.
Per questo motivo è stato implementato il Dynamic Systems Development Method come miglioramento del RAD. Infatti, il DSDM, in principio, era comunque usato per il software development. Poi, il DSDM Agile Project Framework si è spostato dall'essere una soluzione specifica per il software ad uno strumento più generale di gestione dei progetti.
I 9 principi del DSDM
I principi agili del DSDM sono 9 e costituiscono la base su cui sviluppare ogni progetto all’interno di questo framework.
Il DSDM deve:
- Indirizzarsi adeguatamente alle necessità e ai bisogni del business del momento;
- Permettere la consegna del progetto nelle tempistiche stabilite;
- Garantire la collaborazione non solo tra i membri del team, ma anche tra utenti e sviluppatori. Essi devono condividere gli stessi spazi fisici, in modo tale che sia promossa la costante interazione. Il coinvolgimento dell'utente, infatti, è essenziale per condurre un progetto efficiente ed efficace;
- Consentire al team di progetto di prendere decisioni importanti per il progresso del progetto senza dover necessariamente attendere l'approvazione;
- Non compromettere mai la qualità: vanno condotti test del prodotto durante l'intera durata del progetto ed è meglio che questi siano rilasciati su base frequente. In particolare, il rilascio di una componente del prodotto in fase iniziale del progetto permette di verificarne l’idoneità in funzione di una sua implementazione corretta nella fase successiva;
- Partire a costruire da fondamenta solide: il progetto e tutte le sue condizioni di sviluppo devono essere definiti prima che si dia inizio alla sua realizzazione;
- Proporre uno sviluppo incrementale e iterativo;
- Comunicare su base costante e in modo chiaro;
- Garantire il controllo del processo tenendo comunque presente che tutte le modifiche apportate durante lo sviluppo sono reversibili.
DSDM: caratteristiche
Il DSDM è definito dalle seguenti caratteristiche:
- Esso si distingue da altri metodi per la sua forte governance;
- Fornisce un approccio incrementale e iterativo;
- Offre la base per operare miglioramenti continui tramite il feedback dell'utente o del cliente;
- Dispone limiti rigorosi per quel che riguarda i costi, la qualità e i vincoli di tempo;
- Conferisce un grado di priorità in base al Must Have, Should Have, Could Have o Won’t Have;
Quali sono i punti di forza e di debolezza di DSDM?
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.
Tecniche e pratiche DSDM
DSDM si differenzia dagli altri Systems Development Methods perché esso presenta le seguenti tecniche e pratiche:
→ Timeboxing: il DSDM aderisce a rigorosi standard di deadlines. Infatti, il DSDM prevede la scomposizione dell'intero progetto in elementi più piccoli, ciascuno dei quali viene dotato di uno specifico budget e di tempistiche determinate. Il DSDM procede per scala di priorità: se il tempo o il denaro stanno finendo, le task a bassa priorità vengono rimosse: saranno portati a termine solo gli elementi essenziali di un progetto.
→ Moscow Prioritisation: si tratta di una funzionalità utile per classificare, ovvero conferire il grado di priorità alle diverse componenti progettuali, dal più alto livello di importanza al più basso. I gruppi di priorizzazione sono Must Have, Should Have, Could Have e Won't Have.
→ Modelling e Iterative Development: il Modelling aiuta a visualizzare diversi aspetti del progetto lungo il percorso. Esso costituisce un supporto per visualizzare il progresso di ogni task in corso e permette lo sviluppo iterativo fornendo un feedback regolare e favorendo il miglioramento continuo.
→ Prototyping: come in molte altre metodologie agili, il Prototyping è essenziale per testare il progetto in fase iniziale. È un modo per mappare le funzioni di base, scoprire le debolezze evidenti e permettere agli utenti di testare il software.
→ Workshop: gli utenti e gli Stakeholders sono portati a dibattere sui requisiti, i problemi, i risultati e i testing infatti, il DSDM si basa su alti livelli di interazione con gli utenti promossi fin dal principio. La fase di testing è enormemente importante per DSDM, poiché assicura risultati di alta qualità.
Composizione del DSDM: 3 fasi
Il DSDM si sviluppa in 3 fasi:
- Fase Pre-Progetto
Corrisponde alla fase di identificazione delle coordinate del progetto, dell’approvazione delle misure gestionali e di ottenimento del budget;
-
Fase progettuale
Corrisponde al ciclo vita del progetto, che si suddivide in 5 sottofasi, quali: lo studio della fattibilità, lo studio del business (per comprendere ciò che deve essere eseguito), la realizzazione del modello funzionale, il disegno e la costruzione progettuale e l’implementazione del progetto.
-
Fase post-progetto
Presa visione dell’efficacia e dell’efficienza, oppure dei limiti del progetto appena realizzato attraverso fixes correttive e interventi migliorativi.
Ruoli del DSDM
Qualsiasi Agile System Development fornisce una lista di ruoli che deve essere riempita a dovere. Il DSDM funziona allo stesso modo. Infatti, i ruoli essenziali in qualsiasi DSDM sono:
- L’Executive Sponsor (o “Project Champion”): si tratta di un ruolo assegnato dall'azienda e/o dal cliente. Gli Executive Sponsor sono coloro che assegnano fondi e risorse e hanno l'ultima parola nel processo di decision-making.
- Il Visionary: questo ruolo deve essere coperto da una persona in grado di fornire una elevata comprensione dello user business. Il Visionary conferisce la priorità agli elementi che ritiene opportuni, determinando l’avviamento del progetto e guidando il team su questa base.
- L’Ambassador User: ovvero un “test user”, incaricato di fornire il punto di vista del pubblico delle utenze al team di progetto. Si tratta di una fonte chiave per ricevere feedback costanti durante l'intero processo.
- L’Advisor User: un altro user, incaricato ancora una volta di fornire la prospettiva utente per favorire l’implementazione del progetto.
- Il Project Manager: ovvero il responsabile della gestione del progetto.
- Il Technical Coordinator: si tratta di una persona incaricata di progettare l’architettura del sistema e sarà responsabile del controllo qualitativo della componente tecnica.
- Il Team Leader: è il vero e proprio leader del team di lavoro, ovvero il responsabile del coordinamento della squadra, che deve garantire l’avanzamento del progetto e la collaborazione.
- Il Solution Developer: ovvero lo sviluppatore dei codici di consegna, il creatore di prototipi, il modellatore del sistema.
- Il Solution Tester: ovvero colui a cui spetta il compito di testare il prodotto e di fornire le giuste comunicazioni e spiegazioni nel caso in cui si siano palesati errori. Il Solution Tester si occupa anche dell’esecuzione di nuovi test a seguito delle correzioni effettuate.
- Lo Scribe: ovvero l’incaricato della registrazione dei requisiti, degli accordi, delle decisioni prese e di qualunque altra informazione pertinente al progetto e utile al suo sviluppo.
- Il Facilitator: addetto avente il compito di fornire il giusto grado di motivazione e capace di mantenere in riga i membri del team, per fare in modo che il progetto progredisca in maniera costante e coerente. Il Facilitatori deve essere una personalità eloquente, dotata di spiccate doti comunicative.
- Ruoli specialistici: ovvero ruoli ricoperti da specialisti nel loro campo o industria, che forniscono un supporto extra a seconda delle esigenze del progetto. I ruoli specialistici possono variare da progetto a progetto e da un team all’altro. Alcuni ruoli specialistici possono essere: Business Architect, Quality Manager, System Integrator.
DSDM: quando è utile?
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.