Che cosa si intende per spirito Agile autentico? Esiste o può esistere una falsificazione del metodo Agile? A cosa serve e cos’è il time to market?
A interrogarsi sulla natura di una metodologia di sviluppo, per altro uninimanente riconosciuta come massimamente efficace ed efficiente, sono proprio gli addetti alla realizzazione del software e di tutte le derive applicative associate.
In un periodo in cui è chiaramente l’intelligenza del software a fare la differenza del business, la velocità dello sviluppo è uno dei requisiti fondamentali per il time to market di una qualsiasi applicazione. Il metodo Agile garantisce la qualità del prodotto finale ma anche la velocità del rilascio attraverso un percorso integrato e collaborativo che prevede la scrittura del codice a blocchi e testing conseguenziale in modo da evitare colli di bottiglia o sorprese nel fine tuning applicativo.
Time to market: Agile, ma non così agile
A fronte di un riconoscimento della qualità Agile, esistono diversi esempi di imbastardimento del metodo.
Può succedere, ad esempio, che non riuscendo a ottenere i giusti requisiti e in attesa di verificare che la codifica arrivi al suo completamento, alcuni team di sviluppo bypassino i test di regressione dopo la correzione del bug finale pur di arrivare alla consegna finale del prodotto.
I dettami dell’Agile autentico, al contrario, indicano come il rilascio debba invece avvenire esclusivamente dopo che l’iter di test sia stato definitivamente completato e non prima. Ciò che accade è che questa accelerazione del rilascio escluda una fase di test necessaria a un obiettivo di qualità. La conseguenza è che quanto più diffusa diventi questa pratica quanto più l’approccio sbagliato contribuisce alla falsificazione del metodo originale Agile.
A questo punto la domanda fondamentale è: che cosa è l’Agile autentico?
Che cos’è uno sviluppo Agile autentico
Un pratica di sviluppo Agile autentica rende onore allo spirito Agile che non è costituito da un atto di fede quanto, piuttosto, da una serie di approcci determinati e, soprattutto, corroborati e validati per l’ottimizzazione dello sviluppo.
1) Rilascio del software in modalità incrementale:
Lo spirito di Agile autentico parte da un criterio di fornitura dell’applicazione per fasi successive in cui il codice viene scritto man mano, in modo incrementale. Questo, per altro, evitando sprechi di risorse, attraverso una modalità di collaborazione che porta a esplodere e a condividere ogni aspetto pertinente al progetto.
Si noti bene l’uso del termine: incrementale, il che non significa sequenziale. Se la pratica di sviluppo adottata è fedele allo spirito di Agile, infatti, la consegna del software viene fatta lavorando attraverso piccoli incrementi. Non è necessario aspettare il completamento di una fase per iniziarne un’altra così come non si lavora con l’obiettivo di arrivare alla fine per forza. L’obbiettivo è sempre la qualità dello sviluppo non la scadenza di un lavoro.
Il metodo Agile insegna che la fretta è una pessima motivazione nello sviluppo perché se il software non è a posto, il lavoro successivo di analisi e di risoluzione dei bug e delle imperfezioni costa maggiore fatica e risorse, allungando i tempi con un’impatto assolutamente negativo rispetto al prodotto e all’attività.
Allo stesso tempo lo spirito Agile riconosce il time to market del business e le motivazioni sottese a un mondo di scadenze, calendari e appuntamenti. quella materia. Dunque è possibile continuare a lavorare nel modo Agile, riconoscendo le domande del business? La sfida è proprio questa.
2) Evitare attività non essenziali
La seconda pratica che porta a rimanere fedele allo spirito Agile è quella di evitare uno spreco di risorse inutile. Questo significa che una squadra addetta allo sviluppo si impegna a ridurre al minimo il numero di piani e documenti utili alla definizione del progetto.
In estrema sintesi, invece di parlare di ciò che si sta per fare e poi scriverlo, basta farlo. In caso contrario, si sta sprecando e non si ottimizza il tempo e non c’è una corretta gestione del tempo, su quello che gli esperti definiscono un lavoro sul lavoro. Lo spirito Agile favorisce il lavoro vero e proprio, ovvero lavorare alla fornitura di un software. Molto apprezzata anche la comunicazione faccia a faccia rispetto allo scmabio di e-mail e di altri documenti scritti.
3) Collaborazione
A seconda delle necessità e dei casi, i membri del team di sviluppo interagiscono continuamente tra loro e con gli stakeholder coinvolti nel progetto, a seconda delle necessità. Tutta la squadra è responsabile e in grado di risolvere qualsiasi problema prima ancora che insorga. Le squadre che rimangono fedeli allo spirito Agile sono auto-organizzanti e si ripartiscono il lavoro che deve essere fatto.
Ogni singolo membro si assume compiti adatti alle rispettive competenze, ma rimane sempre e comunque in contatto con il resto della squadra, affinchè il lavoro sia concertato tra tutti i membri con una visione che rimane sempre massimamente condivisa.
La squadra non può andare avanti nel progetto senza il contributo significativo delle parti interessate, business ed esperti esterni inclusi come, ad esempio, gli specialisti dell’interaction design e dell’esperienza utente.
4) Verità e trasparenza
Per rimanere fedeli al metodo Agile autentico, la squadra addetta allo sviluppo si impegna a dire la verità su tutto quanto sia pertinente al progetto. La trasaprenza è fondamnetale per la buona riuscita di un software: per questo è molto importante che ogni membro espirma chiaramente dove può avere lacune in alcuni settori fondamentali di competenza, come, ad esempio, sull capacità di codifica per i test di script.
Massima chiarezza ci deve essere anche sulla capacità reale in termini di produttività. Una squadra deve dire se ha la capacità di fare certe cose in uin determinato lasso di tempo così come deve riconoscere i propri errori. Dire la verità è impegnativo, perché si teme che, ammettendo un difetto, si possa apparire deboli. Ma lo spirito Agile capisce che la verità è al contrario un atto di grande forza. Bisogna avere fiducia in se stessi ma anche nei colleghi e solo riconoscendo i problemi è possibile lavorare in modo efficiente per risolverli.
Questo è lo spirito Agile autentico che favorisce il time to market: fornire software in modo incrementale, evitare sprechi di risorse in attività non essenziali, lavorare nella massima collaborazione e dire la verità su tutte le cose pertinenti al progetto. Rilasciare un software che funziona e fa quello che l’azienda vuole, è il modo milgiore per rispondere più rapidamente alle esigenze che quel prodotto deve risolvere.