Insight

CULTURA AGILE… PERCHÈ ESSERE UN’AZIENDA AGILE?

Il nuovo millennio ha portato con sé una rivoluzione nel mondo IT. Questa rivoluzione si chiama Agile. Con una serie di articoli approfondiremo l’argomento per spiegare come mai la nostra azienda ha adottato la cultura agile ed applica un framework che si basa su di essa a tutti i livelli aziendali, non solo nello sviluppo del software.

 

Cosa significa Agile?

La cultura Agile nasce sul finire degli anni ‘90, nel mondo IT, per rispondere più facilmente ai cambiamenti in itinere del prodotto finale.

Come qualsiasi movimento culturale, il movimento Agile è rappresentato da un manifesto che ne enuncia i principi e i valori. Nel 2001, 17 progettisti e guru dell’informatica, che già da molti anni lavoravano “agilmente”, hanno firmato e pubblicato il manifesto Agile.

Il manifesto Agile non vuole, tuttavia, creare un nuovo processo lavorativo, attraverso pratiche da seguire, ma è nato solo per rispondere alle esigenze crescenti in ambiti complessi, come quello della progettazione software. Questa è un’attività esposta ad un altissimo tasso di variabilità e cambiamenti repentini. Agile rappresenta l’abilità di aggiustare la rotta con il minimo sforzo, mantenendo fissi obiettivi e qualità.

Nel corso degli anni, dalla cultura Agile è emersa una moltitudine di metodologie, che permettono di ottenere un feedback continuo dal cliente, il quale diventa il punto centrale del progetto e del team, e così i team possono modificare e migliorare il prodotto. Grazie alle diverse metodologie Agile, i team di sviluppo possono continuamente migliorare il prodotto, secondo le esigenze reali del cliente, portando ad un aumento del valore finale del software.

 

Principi e valori della cultura Agile

Come abbiamo, la cultura Agile è stata formalizzata e sottoscritta in un manifesto che ne contiene i principi e i valori.

I valori sui cui si fonda questa metodologia sono quattro e servono a mitigare le problematiche che si riscontrano nello sviluppo del software. Sono valori euristici, in quanto l’applicazione concreta dipende da progetto a progetto:

 

  1. gli individui e le interazioni più che i processi e gli strumenti
  2. software funzionante più che la documentazione esaustiva
  3. la collaborazione col cliente più che la negoziazione dei contratti
  4. rispondere al cambiamento più che seguire un piano

Questi quattro valori, sono seguiti nel manifesto da 12 principi

(fonte http://agilemanifesto.org/iso/it/principles.html ):

  1. La massima priorità è soddisfare il cliente rilasciando software di valore, fin da subito e in maniera continua.
  2. Accogliere i cambiamenti nei requisiti, anche a stadi avanzati dello sviluppo. I processi agili sfruttano il cambiamento a favore del vantaggio competitivo del cliente.
  3. Consegnare frequentemente software funzionante, con cadenza variabile da un paio di settimane a un paio di mesi, preferendo i periodi brevi.
  4. Committenti e sviluppatori devono lavorare insieme quotidianamente per tutta la durata del progetto.
  5. Bisogna fondare i progetti su individui motivati. Bisogna dare loro l’ambiente e il supporto di cui hanno bisogno e confidiamo nella loro capacità di portare il lavoro a termine.
  6. Una conversazione faccia a faccia è il modo più efficiente e più efficace per comunicare con il team ed all’interno del team.
  7. Il software funzionante è il principale metro di misura di progresso.
  8. I processi agili promuovono uno sviluppo sostenibile. Gli sponsor, gli sviluppatori e gli utenti dovrebbero essere in grado di mantenere indefinitamente un ritmo costante.
  9. La continua attenzione all’eccellenza tecnica e alla buona progettazione esaltano l’agilità.
  10. La semplicità – l’arte di massimizzare la quantità di lavoro non svolto – è essenziale.
  11. Le architetture, i requisiti e la progettazione migliori emergono da team che si auto-organizzano.
  12. A intervalli regolari il team riflette su come diventare più efficace, dopodiché regola e adatta il proprio comportamento di conseguenza.

 

In sintesi, i principi sopraelencati, mettono in evidenza che il metodo agile si basa su:

 

  1. la creazione di piccole unità incrementali, che portano valore al prodotto finale e rendendo più facile la modifica;
  2. l’importanza della comunicazione con il committente, ma che evidenzia il bisogno di preferire una comunicazione faccia a faccia per eliminare equivoci;
  3. lo sviluppo basato su priorità, ad ogni funzionalità viene assegnato un grado di priorità, che può variare in corso d’opera;
  4. le persone, che devono essere altamente motivate, inserite in un ambiente lavorativo dinamico e invogliante e devono essere anche molto preparate;
  5. team autorganizzati e cross-funzionali, che analizzano il proprio metodo di lavoro e lo migliorano in itinere.

 

Agile rappresenta un’alternativa ai modelli di sviluppo software utilizzati fino ad ora. Tra questi, il più famoso e diffuso è il metodo waterfall, o a cascata in italiano. Andiamo ora a vedere le differenze tra questi due modelli organizzativi del lavoro.

 

Agile vs Waterfall

Il metodo waterfall, o a cascata, è un modello di progettazione o sviluppo del software costituita da diverse fasi, realizzate in maniera sequenziale.

Questa metodologia nasce negli anni ‘50 e trova successo negli anni ‘70, tanto che viene sempre più applicato fino a diventare parte integrante dell’ingegneria del software.

E’ un approccio lineare allo sviluppo costituito da fasi specifiche:

 

  1. raccolta e analisi dei requisiti;
  2. sviluppo del prodotto
  3. implementazione,
  4. verifica (o validazione)
  5. manutenzione.

 

In pratica, questa metodologia sostiene che i sistemi complessi, come lo sviluppo di un software, possono essere costruiti in un unico flusso lavorativo, senza riconsiderare le idee o i requisiti del progetto in vista di cambiamenti delle condizioni del business o delle tecnologie. Quindi, il cliente viene coinvolto nel progetto soltanto all’inizio, per l’acquisizione delle informazioni e alla fine per la presentazione del software e delle sue funzionalità.

 

Per questo, col passare del tempo tale approccio viene lentamente abbandonato a favore di altri più articolati e flessibili (es. modello agile). I vantaggi che i nuovi modelli portano, espongono i limiti di questo modello vecchio, che viene etichettato come “problematico” e “limitativo”.

Nonostante tutto, è ancora utilizzato da alcuni sostenitori della sua efficacia, però da molti è ormai considerato una soluzione inefficace.

Il metodo agile, invece, si fonda maggiormente sulle interazioni tra le persone, fra i membri del team e il cliente, e su uno sviluppo del codice flessibile.

L’obiettivo di questa filosofia è quello di ridurre il rischio di fallimento del progetto, racchiudendo lo sviluppo del software in archi di tempo limitati chiamati iterazioni, che possono durare da una a quattro settimane. Ogni finestra di tempo rappresenta un progetto vero e proprio con una specifica pianificazione, analisi dei requisiti, progettazione, test ed implementazione. In pratica, ogni iterazione ha lo scopo di rilasciare un piccolo incremento che aumenti la funzionalità del software.

La particolarità importante di questo nuovo modello è il fatto che si preferisce una comunicazione in tempo reale con il cliente/committente. Inoltre, si adatta facilmente alla complessità del sistema grazie a:

 

  1. trasparenza, ogni membro del team di sviluppo sa cosa stanno facendo gli altri sviluppatori
  2. iteratività, presentazione e feedback sull’incremento costante
  3. auto-organizzazione, i team possono auto-organizzare il proprio lavoro, proprio grazie alla trasparenza.

 

Conclusioni

Interlogica ha adotta la cultura Agile da anni, e ci ha portato a raggiungere uno stato di “agilità”, cioè uno stato di alta reattività, velocità e capacità di adattamento di un’organizzazione. Grazie ad un procedimento costituito di piccoli passi, Agile fa sì che il team possa produrre il software:

 

  1. in tempi più ridotti,
  2. abbattendo i costi di produzione
  3. riducendo i rischi
  4. garantendo una maggiore soddisfazione del cliente.

 

Agile è nato specificatamente per rispondere a delle problematiche che alcuni sviluppatori e guru dell’informatica incontravano durante il loro lavoro, però con il passare degli anni, questa metodologia ha preso piede anche in settori molto distanti da quello dell’IT. Nei prossimi articoli, vedremo proprio quali settori potrebbero beneficiare di questa metodologia e quelli che già hanno iniziato ad adoperarla.

 

Qui ad Interlogica siamo dedicati alla divulgazione di questa nuova filosofia aziendale, che può portare miglioramenti a tutti i livelli, dal design al marketing, per questo stiamo anche organizzando un evento Meetup a Venezia il 15 Maggio, per maggiori informazioni e per iscriversi clicca qui!

    Tag

  • Agile
  • business agility
  • cultura agile
  • Interlogica
  • sviluppo software