Limiti dell'approccio Agile

limiti approccio agileAlcune recenti ricerche hanno evidenziato l’emergere di alcuni limiti dell’approccio Agile applicato al settore IT.

Questo approccio è stato introdotto per aggirare i limiti delle metodologie di sviluppo software tradizionali che in genere si basavano su documenti di progettazione e pianificazione a lungo termine difficili da seguire senza continue modifiche.

Agile consente agli sviluppatori di lavorare con tempi più brevi e cicli di feedback più frequenti, il che significa che possono creare prodotti funzionanti più velocemente, ma significa anche che questi gruppi devono dedicare più tempo alla gestione delle aspettative del progetto.

Gli sviluppatori ora sentono una eccessiva pressione su di loro e hanno la sensazione di spendere troppo tempo a fare brainstorming su piani futuri o spiegando perché non sono riusciti a finire qualcosa secondo una sequenza temporale invece di concentrarsi su ciò che è importante, ovvero creare un prodotto software funzionante nell’immediato.

Probabilmente c’è stato un eccesso di fiducia nel fatto che l’approccio agile consentisse il massimo di libertà con il minimo di controlli.

Agile è un approccio iterativo e incrementale allo sviluppo del software e alla gestione dei progetti. Ciò significa che i team pianificheranno, implementeranno, esamineranno e miglioreranno il loro lavoro fino a quando non verrà eseguito in piccoli incrementi.

Richiede inoltre una stretta collaborazione tra tutte le parti interessate per garantire che il progetto vada avanti secondo le aspettative con feedback continui e rilasci rapidi dei prodotti.

Agile prepara e richiede ai team di sviluppo/prodotto di reagire e adattarsi alle mutevoli condizioni del mercato e alle esigenze dei clienti.

Poiché Agile sostiene la trasparenza tra i membri del team ed è destinato all’auto-organizzazione dei team, ciò implica la trasparenza del lavoro svolto e delle criticità da rendere visibili per essere affrontate in modo tempestivo.

Gli sviluppatori temono che questi stessi strumenti possano essere dannosi se applicati in modo errato, portando alla micro-gestione anziché all’empowerment, all’inflessibilità anziché all’adattabilità e all’isolamento anziché alla collaborazione.

La gestione dello stress

Dati i cicli di rilascio ristretti e le scadenze del progetto, la pressione sugli sviluppatori di software per fornire continuamente nuove funzionalità e aggiornamenti in Agile è quanto mai alta.

Ciò impone molto stress agli sviluppatori, il che accade a scapito della qualità del loro lavoro e della loro vita.

Un modo in cui i responsabili di progetto possono alleviare questo problema è aumentando l’autonomia e la responsabilizzazione degli sviluppatori nella loro giornata lavorativa e dando loro più spazio per gestire le loro attività quotidiane.

Ulteriori criticità dell’approccio Agile

Uno dei motivi per cui Agile fallisce è perché non è compreso da coloro che cercano di implementarlo.

In particolare, c’è una mancanza di supporto per gestire la transizione culturale e persiste la pressione esterna a seguire le vecchie pratiche. Non rinunciare alle vecchie pratiche o seguirle a malincuore può rallentare o addirittura uccidere il processo di transizione.

L’introduzione di Agile richiede leadership e la volontà di abbracciare il cambiamento in tutta l’organizzazione.

Convincere i leader a creare un ambiente in cui la transizione può avvenire attraverso sistemi di coaching e miglioramento continuo aiuta molto nel lungo periodo.

Un’altra ragione è la paura del fallimento che deriva dall’incomprensione di ciò che costituisce davvero il successo in un progetto agile.

Ciò può portare i manager a presumere di non ottenere risultati e quindi a interrompere il cambiamento, anche quando i team mostrano buoni progressi (e quindi un valore aziendale migliore). Gli stakeholder aziendali devono essere coinvolti nella valutazione dei progressi e del successo.

D’altra parte Agile richiede regole e prassi come qualunque altra metodologia di sviluppo. Si tratta solo di decidere quale prezzo si intende pagare.