La vera agilità: passare dalle regole ai principi

Un post molto interessante di Jurgen Appelo mi ha ricordato un applet che avevo visto già alcuni anni fa, tangibile e lampante esempio dell’ordine che può emergere dal caos in base a poche regole ad un primo sguardo insufficienti a creare strutture tanto coese. La morale del post è: basta dirigere i progetti, i gruppi di lavoro, le situazioni complesse in base a regole da applicare caso per caso, cominciamo a definire solo dei vincoli e lasciamo che tutto si auto-organizzi. Cosa ha a che vedere con lo sviluppo agile tutto ciò?

I sistemi auto-organizzati sono molto frequenti in natura. Sto cercando di essere sintetico, ma intuitivamente va quantomeno riconosciuto che l’approccio paga, visto che alveari e formicai sono miracoli di organizzazione (e di design… ehm, intelligenza emergente) ottenuti per mezzo di agenti che, presi singolarmente, potremmo definire con antropocentrica tranquillità ottusi: api e formiche.

Bene, nel post di Appelo, viene spiegato molto bene come in un sistema complesso ogni singolo agente non sia governato da regole del tipo ’se accade questo allora fai questa cosa, ‘if (this) then you.do(this)’, ma sia invece soggetto solo a dei vincoli prestabiliti, più o meno generali, e possa scegliere la propria soluzione in base al proprio processo di selezione della regola corretta.

Nei processi di sviluppo agile si stabiliscono solo vincoli, che chiamiamo principii, e decidiamo per esempio di collaborare con il cliente, di consentire modifiche ai requisiti e di rilasciare solo software funzionante. Sta poi al team selezionare le regole, e implementare le pratiche corrispondenti come ’se il cliente non può venire da noi allora useremo Skype’ oppure ‘se voglio che il codice sia economico da modificare allora rispetterò un design flessibile’ o ancora ‘se faccio un commit instabile allora domani pagherò da bere a tutti’.

Questo spiega anche come mai nessun metodo agile – e nemmeno lo stesso Manifesto agile – sia in primo luogo riguardante la definizione di pratiche come il pair programming o il TDD o il versioning del codice; è chiaro che imporre pratiche significherebbe impedire agli agenti (i membri del team) del proprio sistema complesso (il processo di sviluppo) di individuare e applicare il proprio criterio di scelta della regola corretta, situazione per situazione.

Credo sia ragionevole ritenere importante ogni progetto su cui valga la pena spendere soldi. Io non affiderei mai un progetto importante a persone incapaci di prendere iniziativa con costruttività.

E tu? Investiresti mai il tuo denaro in un progetto incapace di risposte agili?

December 18 2008 02:33 am | Visione agile

2 Responses to “La vera agilità: passare dalle regole ai principi”

  1. OmarCaf on 03 Jan 2009 at 14:42 #

    Molto interessante il tuo Post Jacopo, ti faccio i miei complimenti, inizierò a leggere il tuo Blog per avvicinarmi alla progettazione Agile!

    In bocca al lupo, ti farò un pò di pubblicità ;)

    Ciao!

  2. Jacopo Romei on 05 Jan 2009 at 02:29 #

    Sono molto contento che questo post ti sia piaciuto perchè il tema dei flock, degli sciami, dei formicai e delle strutture auto-organizzate mi ha sempre coinvolto tanto… Mi auguro di raccogliere presto un tuo nuovo consenso, grazie davvero!

Trackback URI | Comments RSS

Leave a Reply