Caratteristiche del ciclo di vita
Adaptive Software Development Lifecycle ha sei caratteristiche di base:
- Missione focalizzata
- Basato sulle funzionalità
- Iterative
- Time-boxed
- Guidato dal rischio
- Cambiamento tollerante
In questo capitolo si comprenderanno queste sei caratteristiche di Adaptive Software Development.
Incentrato sulla missione
Per molti progetti, la missione generale che guida il team è ben articolata, sebbene i requisiti possano essere incerti all'inizio del progetto. Le dichiarazioni di missione fungono da guide che incoraggiano l'esplorazione all'inizio ma hanno un focus ristretto nel corso di un progetto. Una missione fornisce i confini piuttosto che una destinazione fissa. Le dichiarazioni di missione e le discussioni che si traducono in tali dichiarazioni forniscono indicazioni e criteri per prendere decisioni critiche di compromesso del progetto.
Senza una missione chiara e una pratica costante di perfezionamento della missione, i cicli di vita iterativi diventano cicli di vita oscillanti, oscillanti avanti e indietro senza alcun progresso nello sviluppo.
Basato sulle funzionalità
L'Adaptive Software Development Lifecycle si basa sulle funzionalità dell'applicazione e non sulle attività. Le caratteristiche sono le funzionalità sviluppate durante un'iterazione in base alle priorità del cliente.
Le funzionalità possono evolversi in diverse iterazioni quando i clienti forniscono feedback.
Le funzionalità dell'applicazione che forniscono risultati diretti al cliente dopo l'implementazione sono primarie. Anche un documento orientato al cliente come un manuale utente è considerato una caratteristica. Gli altri documenti come il modello dati, anche se definiti come deliverable, sono sempre secondari.
Iterativo
L'Adaptive Software Development Lifecycle è iterativo e si concentra su rilasci frequenti al fine di ottenere feedback, assimilare l'apprendimento risultante e impostare la giusta direzione per l'ulteriore sviluppo.
Time-boxed
In Adaptive Software Development Lifecycle, le iterazioni sono temporizzate. Tuttavia, si dovrebbe ricordare che il time-boxing in Adaptive Software Development non riguarda le scadenze temporali. Non dovrebbe essere utilizzato per far lavorare il team per lunghe ore sfidando un ambiente collaborativo o per compromettere la qualità dei risultati.
Nello sviluppo di software adattivo, il time-boxing è considerato una direzione per concentrarsi e forzare decisioni di compromesso difficili come e quando necessario. In un ambiente incerto, in cui i tassi di modifica sono elevati, è necessaria una funzione di forzatura periodica come un timebox per portare a termine il lavoro.
Guidato dal rischio
Nello sviluppo di software adattivo, le iterazioni sono guidate dall'identificazione e dalla valutazione dei rischi critici.
Tollerante al cambiamento
Adaptive Software Development è tollerante al cambiamento, considera il cambiamento come la capacità di incorporare un vantaggio competitivo, ma non come un problema per lo sviluppo.