[section_title title=Sanmarco Informatica: “perdere” tempo per sviluppare meglio i software – parte 1]
Le operazioni di sviluppo del software presentano criticità che hanno a che fare con il fattore “tempo”: 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, un processo 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.
Anche il Centro di Sviluppo Software di Sanmarco Informatica ha conosciuto queste difficoltà, ma le ha superate, grazie all’introduzione graduale di un modello organizzativo basato sulla metodica Agile e più in particolare sugli strumenti Scrum. I risultati raggiunti a distanza di due anni sono soddisfacenti e diventano un interessante spunto di riflessione per tutti gli operatori del settore.
Il termine “scrum” è mutuato dal rugby dove indica il pacchetto di mischia: nel linguaggio informatico è una metafora che allude all’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-3 settimane, all’interno dei quali devono essere sviluppate delle funzioni/moduli/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, è più facile rispettare i tempi e produrre software di qualità.
Altri capisaldi della metodologia sono la condivisione delle informazioni e degli obiettivi e l’organizzazione per piccoli gruppi di lavoro multidisciplinari. Ad 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 (“Sprint Planning Meeting”) all’interno del quale vi è un confronto aperto su obiettivi da raggiungere, problematiche, tempistiche ed eventuali altre criticità. Ogni giorno inoltre vi è un’ulteriore breve riunione di verifica dello stato di avanzamento del progetto. Alla fine dello “sprint” il risultato raggiunto, funzionante, è presentato al committente e parallelamente viene svolto un incontro di analisi del lavoro ai fini del miglioramento continuo (“Sprint Retrospective Meeting”).
Continua a pagina seguente