Sviluppo software adattivo - Ciclo di vita

Lo sviluppo di software adattivo si è evoluto dalle pratiche RAD. A queste pratiche sono stati aggiunti anche gli aspetti del team. Le aziende dalla Nuova Zelanda al Canada, per un'ampia gamma di tipi di progetti e prodotti, hanno utilizzato lo sviluppo software adattivo.

Jim Highsmith ha pubblicato Adaptive Software Development nel 2000.

Le pratiche di sviluppo software adattivo forniscono la capacità di accogliere il cambiamento e sono adattabili in ambienti turbolenti con prodotti che si evolvono con poca pianificazione e apprendimento.

Fasi del ciclo di vita dell'ASD

Lo sviluppo di software adattivo è ciclico come il modello evolutivo, con i nomi delle fasi che riflettono l'imprevedibilità nei sistemi complessi. Le fasi del ciclo di vita dello sviluppo adattivo sono:

  • Speculate
  • Collaborate
  • Learn

Queste tre fasi riflettono la natura dinamica dello sviluppo di software adattivo. Lo sviluppo adattivo sostituisce esplicitamente il determinismo con l'emergenza. Va oltre un semplice cambiamento nel ciclo di vita per un cambiamento più profondo nello stile di gestione. Adaptive Software Development ha un ciclo di vita dinamico Speculate-Collaborate-Learn.

Il ciclo di vita dello sviluppo software adattivo si concentra sui risultati, non sulle attività, ei risultati vengono identificati come funzionalità dell'applicazione.

Ipotizzare

Il termine piano è troppo deterministico e indica un grado di certezza ragionevolmente alto sul risultato desiderato. L'obiettivo implicito ed esplicito della conformità al piano, limita la capacità del manager di guidare il progetto in direzioni innovative.

In Adaptive Software Development, il termine piano è sostituito dal termine speculare. Mentre specula, il team non abbandona la pianificazione, ma riconosce la realtà dell'incertezza in problemi complessi. La speculazione incoraggia l'esplorazione e la sperimentazione. Le iterazioni con cicli brevi sono incoraggiate.

Collaborare

Le applicazioni complesse non vengono costruite, si evolvono. Le applicazioni complesse richiedono che un grande volume di informazioni venga raccolto, analizzato e applicato al problema. Gli ambienti turbolenti hanno tassi elevati di flusso di informazioni. Pertanto, le applicazioni complesse richiedono che un grande volume di informazioni venga raccolto, analizzato e applicato al problema. Ciò si traduce in diversi requisiti di conoscenza che possono essere gestiti solo dalla collaborazione in team.

Collaborare richiederebbe la capacità di lavorare insieme per produrre risultati, condividere conoscenze o prendere decisioni.

Nel contesto della gestione del progetto, Collaboration rappresenta un equilibrio tra la gestione con tecniche di gestione tradizionali e la creazione e il mantenimento dell'ambiente collaborativo necessario per l'emergenza.

Imparare

La parte Learn del ciclo di vita è vitale per il successo del progetto. Il team deve migliorare costantemente le proprie conoscenze, utilizzando pratiche come:

  • Revisioni tecniche
  • Retrospettive del progetto
  • Focus group sui clienti

Le revisioni dovrebbero essere fatte dopo ogni iterazione. Sia gli sviluppatori che i clienti esaminano le loro ipotesi e utilizzano i risultati di ogni ciclo di sviluppo per apprendere la direzione del successivo. Il team impara:

  • Informazioni sulle modifiche al prodotto

  • Cambiamenti più fondamentali nelle ipotesi di base su come i prodotti vengono sviluppati

Le iterazioni devono essere brevi, in modo che il team possa imparare da piccoli errori piuttosto che da grandi.

Specula - Collabora - Impara il ciclo nel suo insieme

Come osservi dal ciclo Speculate-Collaborate-Learn, dato sopra, è ovvio che le tre fasi non sono lineari e si sovrappongono.

Osserviamo quanto segue da un framework adattivo.

  • È difficile collaborare senza imparare o imparare senza collaborare.

  • È difficile speculare senza imparare o imparare senza speculare.

  • È difficile speculare senza collaborare o collaborare senza speculare.