Manuel Paccagnella about blog search Subscribe to RSS Feed

Warning! This blog's new home now is here.

Discussione - Adozione dell'Agile

09 Nov 2009

Di seguito riporto qualche appunto sull'articolo Why Agile Adoption Fails in Some Organizations apparso su InfoQ il 4 Novembre 2009.

L'agile presuppone che l'organizzazione finanzi il team e che lo sviluppo sia un'attività continuativa e considerata come un investimento. In questo contesto si riconosce l'inevitabile inaccuratezza delle stime iniziali e si procede in modo iterativo e incrementale, accumulando esperienza e imparando a prevedere le tempistiche mano a mano che si avanza con lo sviluppo. In un team agile le stime sulle tempistiche hanno scarsa importanza e il team procede a produrre valore in modo continuativo, ma non si sa con precisione a priori quanto tempo ci vorrà per completarlo.

In uno scenario diverso in cui l'organizzazione finanzia separatamente i singoli progetti, che sono visti come un costo, il management richiede delle stime sui tempi e non è disposto a finanziarlo oltre i tempi preventivati. In questo contesto, a differenza del caso precedente, si hanno dei problemi se la stima iniziale non si rivela corretta e il management è costretto a una scelta:

Le principali cause del fallimento nell'adozione di uno stile agile di sviluppo possono essere riassunte nei seguenti punti:

Date queste considerazioni, i progetti a costo fisso sono chiaramente un contesto inadatto nel quale collocare l'Agile. Spesso le aziende che ci provano finiscono per sovrapporre un façade agile su un progetto che in realtà è condotto in stile Waterfall.

In ultima analisi, se l'organizzazione è in grado di finanziare un team di sviluppo in modo continuativo, allora l'agile è un approccio vincente. Se invece i fondi sono allocati per progetto, un approccio più tradizionale è la scelta obbligata.

Discussione

Di seguito riassumo i contributi espressi nei commenti all'articolo da alcuni lettori:

Perhaps we need to start asking, "how much can we get for $X" rather than stating, "I want all this for $Y. Make that happen." -- Robert Dempsey

Commenti personali

Innanzitutto l'approccio agile (iterativo e incrementale) comporta importanti vantaggi per tutte le parti coinvolte (clienti, management, sviluppatori), ed è utile educarle tutte sui suoi vantaggi.

Inoltre, data la natura dell'agile (focus su efficienza e qualità) è applicabile anche in un contesto a costo fisso secondo me. Però qualsiasi progetto a costo fisso comporta un rischio sostenibile solo in questi casi:

Scelta pragmatica

La scelta della metodologia di sviluppo va fatta in modo pragmatico a seconda del contesto (progetto, dominio applicativo, cliente, team, ecc), non c'è un approccio universalmente migliore (Silver Bullet).

La scelta va fatta anche in base ai parametri che si vuole ottimizzare: costi, tempi, scope e qualità. E' evidente che il fissare tutti questi parametri a priori è praticamente impossibile, allora occorre trovare la combinazione più conveniente per le parti in causa. Fissando la qualità come un parametro imprescindibile e considerando che costi e tempi sono strettamente connessi, individuo i seguenti casi interessanti:

Tempo Costo Scope Commento
fisso fisso fisso Praticamente impossibile.
fisso fisso variabile Sicurezza sui costi ma scope variabile.
variabile fisso fisso Alto rischio di ROI negativo.
variabile variabile fisso Scenario ideale per l'applicazione dell'Agile.
variabile variabile variabile Efficiente con l'Agile.

Forse dobbiamo cominciare a domandare "quanto posso avere per X$" invece che affermare "voglio tutto questo per X$. Fatelo." --Robert Dempsey

Alla luce di queste considerazioni, a meno che non si tratti di un progetto a requisiti completamente specificati e immutabili, e condotto da un team esperto nel dominio applicativo, conviene adottare un approccio agile negoziando la forma contrattuale più adatta.

blog comments powered by Disqus