Quando ho sentito parlare per la prima volta di Extreme Programming, ho pensato:
Non potrebbe essere più semplice! Basta seguire alcune semplici discipline e pratiche. Non ci sono problemi.
Tuttavia, visto il numero di organizzazioni che hanno provato – fallendo – a diventare Agile, ci accorgiamo che diventare Agile deve essere molto, molto difficile. Forse il motivo di tutti questi fallimenti è il fatto che in troppe organizzazioni si pensa che Agile sia qualcosa che in realtà non è.
Valori Agile
Kent Beck ha elencato i quattro valori di Agile molto tempo fa. Sono il coraggio, la comunicazione, il feedback e la semplicità.
Coraggio
Il primo valore è il coraggio o, in altre parole, un livello ragionevole di assunzione dei rischi. I membri di un team Agile non sono concentrati sulla loro sicurezza “politica” al punto da sacrificare la qualità e le opportunità. Sanno che il modo migliore per gestire un progetto software di lungo periodo consiste nell’affrontarlo con un certo grado di aggressività.
C’è una bella differenza fra coraggio e incoscienza. Ci vuole coraggio per eseguire il deployment di un insieme minimo di funzionalità. Ci vuole coraggio anche per mantenere un’elevata qualità del codice e una disciplina di alto livello. Al contrario, è da incoscienti eseguire il deployment di codice del quale non si è davvero sicuri o che abbia una struttura insostenibile. È da incoscienti adattarsi a un piano di lavoro sacrificando però la qualità.
La fede nel fatto che qualità e disciplina aumentino la velocità è coraggiosa, perché essa sarà costantemente messa alla prova da persone influenti ma ingenue che pensano solo al fatto che hanno fretta.
Comunicazione
Una comunicazione diretta e frequente che attraversi i normali canali. I membri di un team Agile sono soliti comunicare gli uni con gli altri. I programmatori, i clienti, i tester e i manager amano sedersi l’uno in fianco all’altro e interagire frequentemente fra loro e non solo nel contesto dei meeting. Non solo tramite email, chat e memo. Piuttosto, amano la conversazione diretta, informale, interpersonale.
Questo favorisce la coesione del team. È proprio nell’interazione frequente, rapida, caotica, informale che si “accendono le lampadine” e spuntano le idee. Un team in grado di stare insieme e comunicare frequentemente può fare miracoli.
Feedback
Le discipline Agile che abbiamo studiato riguardano sostanzialmente tutte l’idea di fornire un rapido feedback a coloro che prendono decisioni importanti. Planning Game, Refactoring, Test-Driven Development, Integrazione continua, Piccole release, Proprietà collettiva, Intero team e così via massimizzano la frequenza e la quantità dei feedback. Esse ci consentono di determinare anticipatamente quando le cose stanno per andare male, per correggere la situazione. Sono altamente istruttive in termini delle conseguenze delle decisioni iniziali. I team Agile si nutronodi feedback. Il feedback è quello che consente al team di lavorare in modo così efficace e che guida un progetto a un risultato positivo.
Semplicità
Un altro valore Agile è la semplicità, nel senso dell’essere diretti. Spesso si è detto che ogni problema presente nel software possa essere risolto aggiungendo un ulteriore livello di indirettezza. Ma i valori del coraggio, della comunicazione e del feedback hanno lo scopo di garantire che il numero di problemi sia ridotto al minimo. Pertanto, l’indirettezza può essere mantenuta al minimo. Le soluzioni possono essere semplici.
Questo vale per il software, ma vale anche per il team. L’aggressività passiva è indirettezza. Quando vedi un problema, ma lo passi silenziosamente a qualcun altro, crei indirettezza. Quando cedi alle richieste di un manager o di un cliente, conoscendone le pericolose conseguenze, crei indirettezza.
Semplicità è essere diretti: diretti nel codice, nella comunicazione e nel comportamento. Nel codice, una certa quantità di indirettezza è necessaria. L’indirettezza è il meccanismo mediante il quale riduciamo la complessità delle interdipendenze. Nel team, è necessaria molta meno indirettezza. La maggior parte delle volte, desideri che le comunicazioni siano le più dirette possibili.
Mantieni il codice semplice. Mantieni il team ancora più semplice.
Questo articolo richiama contenuti dal capitolo 6 di Clean Agile.
L'autore
Corsi che potrebbero interessarti
Agile, sviluppo e management: iniziare bene
Content Design - Fare una Strategia
Data governance: diritti, licenze e privacy