Qual è l'approccio iterativo agile e dove viene utilizzato?

Pubblicato: 2018-06-22

Per stare al passo con la domanda del mercato, gli scenari in rapida evoluzione del business digitale hanno esercitato una pressione crescente sui CIO affinché forniscano uno sviluppo software altrettanto rapido.

Secondo Gartner, un numero crescente di organizzazioni IT sta optando per lo sviluppo Agile per semplificare la gestione dei progetti e illustrare il valore aziendale.

Il 12 ° rapporto annuale sullo stato dell'agile ha rilevato che uno dei primi cinque motivi segnalati per l'adozione delle metodologie Agile è stata l'accelerazione della distribuzione del software , che è aumentata al 75% nel 2018. Mentre la pianificazione iterativa, con un aumento dell'88%, è stata la seconda più utilizzata Agile Tecnica nel 2018.

Che cos'è lo sviluppo iterativo agile?

I metodi agili di sviluppo del software sono più comunemente descritti come sviluppo iterativo e incrementale. La strategia iterativa è la pietra angolare delle pratiche Agile, le più importanti delle quali sono SCRUM, DSDM e FDD. L'idea generale è quella di suddividere lo sviluppo del software in sequenze di cicli ripetuti (iterazioni). Ogni iterazione viene rilasciata per un periodo di tempo fisso noto come timebox. Un singolo timebox dura in genere 2-4 settimane.

L'Agile Iterative Model è forse meglio spiegato da Craig Larman nel suo libro Agile and Iterative Development – ​​A Manager's Guide . Larman spiega che il modello funziona su una ruota ADTC (Analysis, Design, Code, Test). Vale a dire che ogni ciclo di iterazione incorpora l'Analisi del Piano, il Design, il suo Codice e contemporaneamente il Test. La ruota ADTC è più tecnicamente denominata ciclo PDCA (Plan, Design, Check, Adjust). Il team Agile implementa il ciclo PDCA su ciascuna iterazione separatamente nel modo seguente:

P (Piano) – Pianificazione dell'iterazione

In questo caso, il team collabora per discutere gli obiettivi per la prossima iterazione. Riepiloga anche il lavoro svolto e determina il backlog del team richiesto per l'iterazione successiva.

D (Design) – Esecuzione dell'iterazione

Questo è il passaggio "da fare" in cui avviene lo sviluppo del software, la sua progettazione e codifica. Se si tratta di una seconda o terza iterazione, vengono condotti anche i test di funzionalità. Il team raccoglie le storie degli utenti e si prepara per il passaggio successivo, che è la revisione dell'iterazione.

C (Verifica) – Revisione dell'iterazione

Conosciuto anche come passaggio di "controllo", la revisione dell'iterazione viene eseguita con il Product Owner. Il team mostra il risultato finale testato al Product Owner, che quindi esamina il lavoro completato e accerta se tutti i criteri sono stati soddisfatti.

A (Regola) – Revisione dell'iterazione

In questo caso, il team valuta l'intero processo dell'iterazione dal primo passaggio. Funziona essenzialmente su tutti i miglioramenti raccolti nelle iterazioni precedenti. Nuovi problemi vengono identificati insieme alle loro cause. Prima che il team ricominci il ciclo successivo, l'arretrato del team viene perfezionato per riferimenti futuri.

Le iterazioni vengono ripetute per ottimizzazioni e improvvisazioni e le lezioni apprese dai cicli precedenti vengono applicate nel ciclo successivo. Fino a quando un software completamente funzionante non sarà pronto per essere lanciato sul mercato.

Vantaggi dello sviluppo iterativo agile

La gestione agile del progetto è stata creata come alternativa più flessibile all'approccio Waterfall, altrimenti tradizionalmente rigido.

Il metodo Waterfall è un approccio lineare che procede in sequenza da una fase all'altra, senza consentire allo sviluppo di tornare al passaggio precedente. Inutile dire che il metodo Waterfall provoca ripercussioni imminenti, che includono, a titolo esemplificativo ma non esaustivo, l'aumento dei costi di sviluppo, la consegna prolungata del software e l'immissione di risorse aggiuntive.

Sudhakar Gorti, CIO per le risorse di dati ambientali concorda: " Uno dei principali vantaggi di Agile rispetto a Waterfall è che si vede un risultato su base iterativa e il Product Owner può decidere di apportare modifiche al backlog del prodotto".

Coinvolgimento del cliente – Lo sviluppo iterativo agile incoraggia il contributo degli utenti. Dopo ogni ciclo iterativo, si ottiene il feedback del cliente e il prodotto viene quindi sottoposto alle modifiche necessarie in base a quel feedback. Questo aspetto porta l'adattabilità nella struttura del progetto.

Favorisce l'evoluzione – La pianificazione nel processo di sviluppo iterativo Agile è un'impresa continua, che lascia spazio a idee in evoluzione, invece di una pianificazione estesa che precede solo l'esecuzione e il test in Waterfall.

Valutazione del rischio : l'iterazione agile consente l'identificazione e la mitigazione del rischio nelle prime fasi dello sviluppo per evitare sbalzi di velocità più avanti nella sequenza temporale.

Consegna rapida : il lavoro è suddiviso in piccoli cicli, consentendo ai membri del team di concentrarsi e consegnare in tempo. Inoltre, il test viene condotto contemporaneamente nella codifica e nella progettazione in ogni iterazione, il che riduce notevolmente il tempo necessario per il completamento.

Dove viene impiegato l'approccio iterativo agile?

L'approccio iterativo agile è più adatto per progetti o aziende che fanno parte di un ambito in continua evoluzione. Progetti che non hanno un insieme definito di requisiti destinati a un determinato insieme di tempo. In questi casi, l'approccio iterativo agile aiuta a ridurre al minimo i costi e le risorse necessarie ogni volta che si verifica un cambiamento imprevisto.

nTask è stato creato utilizzando la metodologia Scrum. Scrum consente il lavoro di squadra indipendente utilizzando la ruota ADCT, per la quale vari team di nTask hanno lavorato in collaborazione in sprint di due settimane (iterazioni).

Poiché l'ambito di nTask è in continua evoluzione e le aggiunte vengono apportate su base settimanale, l'approccio iterativo consente al team di sviluppo di nTask di passare avanti e indietro per le ottimizzazioni.

Brad Murphy, CEO della società di consulenza Agile Gear Stream, ritiene che l'approccio iterativo Agile sia ora ampiamente utilizzabile in aree diverse dallo sviluppo del software.

Spiega come il marketing digitale può trarre vantaggio dall'approccio iterativo utilizzando l'elemento della consegna frequente per raccogliere il feedback dei clienti. Un feedback sollecitato rapidamente può aiutare direttamente a migliorare le iterazioni successive per attirare un traffico maggiore.

Secondo le indagini del Deloitte Center for Government Insights, l'80% dei principali progetti IT federali si è definito "Agile Iterative" nel 2017. Una delle ragioni di questo aumento è stata facilmente spiegata dalla riduzione dei tempi necessari per completare un progetto in armonia con il costo totale del progetto.

Un altro rapporto di Deloitte nel 2015 rivela che anche banche come Barclays hanno iniziato a utilizzare approcci iterativi come Scrum su oltre il 20% dei loro audit interni. Barclays ha ammesso di beneficiare di SCRUM in aree quali la gestione e la pianificazione del rischio.

L'approccio iterativo agile non è limitato alle sole organizzazioni IT e società finanziarie. Walmart utilizza l'approccio iterativo agile per gli audit interni. Uno dei loro numerosi successi dopo l'introduzione di Agile includeva il risparmio di tempo rispetto all'approccio di audit tradizionale.

Ricky Barr, amministratore delegato dell'Internal Audit, United Airlines, riassume la sua esperienza nell'impiego dell'Agile Internal Audit di Deloitte come "un ciclo di audit più veloce tramite iterazioni time-boxed".

Fino a 8 anni fa, molte aziende, come la stragrande maggioranza dei clienti di Gartner, utilizzavano ancora i metodi tradizionali di Waterfall per lo sviluppo di applicazioni.

Ma con i vantaggi dimostrabili di Agile nel corso degli anni, che andavano dall'aumento del valore aziendale al forte impatto organizzativo, la comunità Agile si è espansa dalle start-up ai marchi globali come quelli di IBM e Cisco.