L’innovativa esperienza condotta da Sanmarco Informatica presso il proprio Centro Sviluppo Software, con l’utilizzo della metodologia di lavoro Agile Scrum, suggerisce alcuni interessanti spunti di riflessione.
A due anni dalla sua introduzione, l’innovativa esperienza condotta da Sanmarco Informatica presso il proprio Centro Sviluppo Software, con l’utilizzo della metodologia di lavoro Agile Scrum, suggerisce alcune considerazioni che rappresentano interessanti spunti di riflessione per gli operatori del settore, in quanto individua veri e propri paradossi nello “stile” di lavoro di tipo tradizionale.
di Luigi Ortese
Chiunque sia coinvolto nei processi di sviluppo del software, o abbia un minimo di familiarità con questo tipo di ambiente di lavoro, avrà sicuramente presenti alcune caratteristiche ricorrenti: la necessità di massimizzare la scrittura di codici, per far fronte a richieste e tempistiche sempre più pressanti, la tendenza ad arrivare comunque in ritardo rispetto alle scadenze concordate con il cliente o con prodotti non ancora completi di tutte le funzionalità attese dal committente, uno sviluppo che procede a singhiozzo, tra accelerazioni e pause, con la necessità di riprendere in mano più volte il lavoro svolto nelle settimane e nei mesi precedenti.
“Pur con tutti i distinguo del caso”, spiega Sergio Mieli, responsabile del Centro Sviluppo Software di Sanmarco Informatica (www.sanmarcoinformatica.it), dove lavorano circa 90 specialisti tra i circa 300 addetti dell’azienda veneta, “si tratta di uno scenario comune nella gran parte delle aziende di sviluppo che adottano un’organizzazione del lavoro di tipo tradizionale. Uno scenario che comporta criticità presenti in una certa misura anche nella nostra azienda, finché, due anni fa, non abbiamo introdotto un modello organizzativo basato sulla metodica Agile e, in particolare, sugli strumenti Scrum. Il percorso di implementazione è stato graduale, e oggi, guardando il percorso compiuto, possiamo dire di aver raggiunto importanti risultati. Allo stesso tempo, possiamo trarre alcune conclusioni che possono servire come spunti di riflessione per gli operatori del settore”.
Un’esperienza, quella condotta da Sanmarco Informatica con la metodologia Agile Scrum, che conferma l’attenzione dell’azienda di Grisignano di Zocco, in provincia di Vicenza, per la valorizzazione delle risorse umane e per l’innovazione. “Due anni fa abbiamo intrapreso questo percorso”, sottolinea l’ingegner Renato Bardin, presidente di Sanmarco Informatica, “convinti della necessità di creare un ambiente di lavoro il più possibile aperto al confronto costruttivo e stimolante, nel quale siano favoriti la condivisione e il trasferimento delle conoscenze. Solo così rutenuamo sia possibile far crescere i giovani e, più in generale, tutti i nostri collaboratori. Inoltre, essere un’azienda innovativa non significa solo utilizzare tecnologie all’avanguardia o dedicare ingenti risorse finanziarie alla ricerca e allo sviluppo, ma si traduce anche nell’essere aperti al cambiamento, pronti a sperimentare in prima persona anche nuove soluzioni organizzative”.
L’organizzazione del lavoro per piccoli gruppi, nella metodologia Agile Scrum, evita fraintendimenti e riduce gli errori nella fase di sviluppo, e rende più semplice e rapido il trasferimento delle competenze, creando un maggior grado di conoscenza diffusa.
LA METODOLOGIA AGILE SCRUM
Come è noto, la metodologia Agile fa riferimento a una serie di principi e linee guida fondamentali per lo sviluppo del software, enunciati nel 2001 da un gruppo di programmatori in un vero e proprio manifesto. Nell’ambito di Agile, sono stati via via affinate alcune metodologie innovative, tra cui Scrum. Questo termine, mutuato dal rugby – dove indica il pacchetto di mischia –, è una metafora che indica l’importanza di avere un team di sviluppo in grado di lavorare insieme in modo che tutti gli attori del progetto spingano nella stessa direzione, agendo come un’unica entità coordinata.
In estrema sintesi, la metodologia Scrum prevede di suddividere il progetto in blocchi (sprint) di 2 o 3 settimane, all’interno dei quali devono essere sviluppate delle funzioni, moduli e applicazioni complete e pronte per la potenziale installazione da parte del cliente. In questo modo, un progetto lungo e complesso viene parcellizzato in una serie di fasi, con molteplici benefici: grazie alla verifica molto più frequente del lavoro svolto, è infatti più facile rispettare i tempi e produrre software di qualità.
Inoltre, altri capisaldi della metodologia sono la condivisione delle informazioni e degli obiettivi e l’organizzazione per piccoli gruppi di lavoro multidisciplinari: a ogni “sprint” lavorano infatti analisti, sviluppatori e tester, nonché le figure più direttamente a contatto con il cliente. All’inizio di ogni “sprint” viene svolto un incontro per la discussione e la pianificazione del lavoro – lo “Sprint Planning Meeting” –, all’interno del quale si apre un confronto aperto su obiettivi da raggiungere, problematiche, tempistiche ed eventuali altre criticità. Ogni giorno, inoltre, viene svolta un’ulteriore breve riunione di verifica dello stato di avanzamento del progetto. Alla fine dello “sprint” il risultato raggiunto, funzionante, viene presentato al committente e, parallelamente, viene svolto un incontro di analisi del lavoro svolto ai fini del miglioramento continuo – lo “Sprint Retrospective Meeting” –.
I benefici che si ottengono sono molteplici: “Abbiamo registrato un miglioramento generale dell’ambiente di lavoro”, racconta Sergio Mieli, “con livelli più elevati di motivazione, spirito di gruppo e positività. È scaturita una maggiore chiarezza su che cosa va fatto e perché, a tutti i livelli, ed è aumentata la focalizzazione sugli obiettivi: ovvero, si lavora solo su ciò che serve davvero. E ancora, sono stati ridotti malintesi tra le diverse funzioni interne ed è risultato possibile prevenire alcune problematiche, tipiche di un modello organizzativo tradizionale, che appaiono dei veri e propri paradossi”. E come in tutti i paradossi, al di là della provocazione, includono significativi elementi di verità: vediamone i principali.
TRE ELEMENTI SU CUI RIFLETTERE
Il primo paradosso si può così sintetizzare: si lavora per l’efficienza dei clienti in modo altamente inefficiente. Buona parte dei software sviluppati ha come fine ultimo quello di migliorare l’efficienza dei processi dell’utilizzatore, qualsiasi sia la natura della sua attività. Eppure, mentre si lavora con il massimo dell’impegno per produrre efficienza, spesso lo si fa con modalità altamente inefficienti. “Con un modello organizzativo di tipo tradizionale o a cascata, dove i vari specialisti svolgono la propria funzione in modo poco o per nulla integrato, potrebbe capitare, ad esempio, di sviluppare software per centinaia di ore, salvo poi bloccarsi perché i tester vengono impegnati su altri progetti. Nel frattempo, le priorità potrebbero cambiare, con il risultato che, a volte, alcuni codici sviluppati nemmeno arrivino alla fase di testing”.
Il secondo paradosso è così riassumibile: si mettono in rete i computer, ma non i cervelli. “L’organizzazione del lavoro per piccoli gruppi, nella metodologia Agile Scrum, evita fraintendimenti e riduce gli errori nella fase di sviluppo, e, più in generale, ha anche un’altra valenza, in quanto rende più semplice e rapido il trasferimento delle competenze e consente di creare un maggior grado di conoscenza diffusa, evitando così che all’interno del team di sviluppo vi sia solo una persona a conoscenza di determinati aspetti”. La metodologia tradizionale, invece, mette in rete i computer, ma non i cervelli!
Il terzo paradosso è più che mai chiaro: “perdere tempo” migliora l’efficienza. “Naturalmente”, conclude Mieli, “tutto questo ha un costo, inteso come tempo dedicato agli incontri quotidiani e a quelli di pianificazione e follow up. Rispetto a un modello tradizionale, nel quale i vari specialisti si dedicano al proprio specifico compito e basta, si potrebbe dire che “perdiamo un sacco di tempo”. Eppure l’efficienza complessiva del processo, a medio e lungo termine, è estremamente superiore, proprio perché questa metodologia consente di evitare gli errori, le contraddizioni e le diseconomie viste in precedenza. La sfida, naturalmente, sta nel rendere i vari momenti di incontro, in primis quelli quotidiani, il più produttivi possibile”.
L’efficienza complessiva del processo risulta superiore, perché la metodologia Agile Scrum fa “perdere tempo” in incontri, consentendo di evitare gli errori, le contraddizioni e le diseconomie dei metodi tradizionali di lavoro.