Ottimizzare il flusso di lavoro con l’Agile
Oggi facciamo quattro chiacchiere con Stefania Calamai, appassionata di temi quali il miglioramento continuo, la comunicazione e l’ottimizzazione del flusso di lavoro.
Stefania ha esperienza di oltre venti anni nel mondo dello sviluppo software, e dal 2011 si occupa di metodologie Agile, partendo prima come team member, poi come Scrum Master e poi ancora come Agile Coach.
Ciao Stefania! Tu sei stata un facilitatore in Develer. Quale è stato il tuo ruolo esattamente?
In Develer ho collaborato principalmente con due team ed il mio ruolo è stato quello di Agile Coach. Il lavoro fatto è stato da una parte rivolto alla formazione sulle tematiche Agile, e dall’altra si è concretizzato in una attività di affiancamento. La parte teorica è abbastanza semplice da comprendere, ma è fondamentale poi riuscire ad applicarla al lavoro di tutti i giorni. Ciascun team è unico nel suo genere e con l’affiancamento si fa un lavoro sartoriale applicando le pratiche Agile più opportune. In più, se non adeguatamente seguite, le persone tenderanno a fare quello che hanno sempre fatto, senza dare vita ad un vero cambiamento e miglioramento nei risultati.
A questo punto la domanda è d’obbligo: che cosa è l’Agile?
Definire l’Agile in poche parole non è semplice, lo potremmo immaginare come un grande ombrello sotto al quale troviamo i principi ed i valori dell’Agile Manifesto . La forma mentis che ne deriva viene concretizzata in una serie di framework e pratiche che sono state sviluppate con l’esperienza nel corso degli anni, tra cui spiccano Scrum, Kanban, Lean, XP, ma anche pair programming, test-driven development, sprints, stand-ups… e così via. Alcune di queste pratiche sono precedenti all’introduzione del termine Agile stesso, e le varie evoluzioni avvenute negli anni hanno portato ad allargare sempre più quello che si trova sotto a questa definizione.
Agile Alliance, una delle principali organizzazioni a livello mondiale impegnate a supportare le persone che esplorano ed applicano i valori Agile, ci parla di agilità definendola come “la capacità di creare e rispondere al cambiamento. È un modo per affrontare e, in definitiva, riuscire in un ambiente incerto e turbolento.”
In questo senso, la parola Agile focalizza la sua attenzione su l’adattabilità e la risposta al cambiamento rispetto ad una gestione dei progetti più tradizionale.
Quali sono i principi cardine dell’Agile Manifesto?
L’Agile Manifesto nasce nell’ambito dello sviluppo software: il Project Management tradizionale, in questo settore, si traduce in tempi lunghi per rilasciare un prodotto funzionante, difficoltà nell’apportare modifiche a quello che è stato pianificato e, nella maggior parte dei casi, insoddisfazione sui risultati ottenuti sia da parte dei committenti che da parte degli sviluppatori. Per questo, nel tempo, si sono cercate e sperimentate nuove strade per sviluppare software. Nel 2001, da queste esperienze, in ottica di condivisione e crescita collettiva, 17 professionisti indipendenti, lungimiranti ed esperti nell’ambito dello sviluppo, si sono ritrovati per dare vita ad un manifesto al cui interno fosse contenuta l’essenza dei concetti che condividevano. Questo manifesto si concretizza in quattro valori fondamentali, a cui vengono affiancati 12 principi. .
I temi affrontati sono molteplici; spicca sicuramente l’attenzione posta nel soddisfare il cliente, che prende vita attraverso rilasci frequenti del software, nel dare la possibilità di apportare cambiamenti ai requisiti, nella trasparenza sui progressi fatti, in cicli di lavoro brevi, alla fine dei quali viene mostrato quanto ottenuto.
Un’altra caratteristica di questa metodologia è il rilascio iterativo incrementale di quanto sviluppato, per raccogliere immediatamente i feedback di chi lo utilizzerà ed inglobare da subito nel ciclo di produzione successiva le eventuali modifiche.
Particolare sguardo viene dato alla qualità di quanto prodotto: si ricerca continuamente il miglioramento in tutto quello che viene fatto.
Maggior focus è posto sugli individui rispetto ai processi, alla collaborazione continua e diretta di tutte le persone coinvolte nel processo di creazione del prodotto finale.
Uno dei principi che preferisco è il decimo che dice:
“La semplicità – l’arte di massimizzare la quantità di lavoro non svolto – è essenziale.”
Nasce nello sviluppo software e si riferisce alle architetture complicatissime e difficili da mantenere o modificare, al codice non necessario che spesso viene creato, ma mi piace pensarlo applicato anche alla vita di tutti i giorni. Spesso ci troviamo a fare o ad avere più del necessario e la gestione di questo esubero porta via tanto tempo e tante risorse oltre a farci perdere l’attenzione su quello che è importante: la semplicità è veramente un’arte.
Il principio “Less is more” che conosciamo bene!
E come si inserisce tutto questo nella cultura aziendale e che benefici apporta?
In un momento storico come quello che stiamo vivendo, le aziende hanno la necessità di poter evolvere ed andare a soddisfare le richieste di mercato in tempi rapidissimi. Abbiamo visto con quale rapidità i cambiamenti, anche di grande portata, modificano le nostre abitudini e la nostra vita. Qualità, flessibilità, competenza, ma anche creatività sono le caratteristiche che fanno la differenza. Con l’Agile si viene a creare un circolo virtuoso di miglioramento continuo che si focalizza sulla riduzione degli sprechi, l’ottimizzazione del processo di sviluppo, la maggiore attenzione alle specifiche esigenze del cliente e l’attenzione alla qualità. Le cose da migliorare sono individuate direttamente da chi ne è a contatto e le azioni atte a portare miglioramento sono messe in campo da subito. Tutto questo porta le aziende agili ad essere più competitive, capaci di una risposta concreta ed immediata al cambiamento.
Perché ha preso piede soprattutto nel nostro settore?
Lo sviluppo di software è un’attività complessa in cui entrano in gioco, oltre alle competenze tecniche, molte altre variabili. In questo scenario, un approccio manageriale classico spesso non porta i risultati sperati a causa della difficoltà nel mantenere i requisiti stabili per tempi sufficientemente lunghi. Spesso a priori non è possibile prevedere e analizzare tutto nel dettaglio e così ulteriori informazioni e nuovi scenari si affacciano mentre il lavoro è già in corso. Necessità di rielaborazioni portano quindi a ritardi nelle consegne e a risultati differenti rispetto a quanto effettivamente necessario.
Alla base dell’Agile, ci sono i processi empirici che, in sistemi ad alta complessità, permettono di avere una maggiore trasparenza su tutto il processo, una continua ispezione e un adattamento del prodotto che stiamo rilasciando, in modo da andare a contrastare le problematiche sopra elencate.
E veniamo al nostro caso concreto: in che modo hai collaborato con Develer? Su che cosa vi siete focalizzati e a quale scopo?
Devo dire che ho avuto da subito la percezione che il livello qualitativo e tecnico fosse già molto alto e le persone fossero molto competenti e di grande valore. Quando ho iniziato a collaborare con Develer, la difficoltà che maggiormente ho riscontrato era quella, da parte dei team, di riuscire a portare a termine il lavoro preventivato nei tempi previsti. Questo comportava stress e insoddisfazione che si riversava all’interno del team stesso, creando un clima non positivo. Abbiamo iniziato definendo gli obiettivi da raggiungere e le metriche che potevamo utilizzare per capire se, a posteriori, effettivamente erano stati raggiunti.
E quali risultati avete ottenuto?
Sono molto contenta dei risultati ottenuti perché siamo riusciti a creare un processo di miglioramento continuo, un maggior focus sugli obiettivi e una maggior collaborazione all’interno dei gruppi di lavoro. Tutto questo ha portato ad un clima più stimolante e a raggiungere gli obiettivi stabiliti nei tempi previsti.
Siamo partiti sia con la parte teorica sul mondo Agile che con la parte di affiancamento. Abbiamo posto la nostra attenzione sul processo, abbiamo mappato il flusso di lavoro esistente su una board condivisa, istituito degli appuntamenti ricorrenti che ci hanno aiutato nella sincronizzazione, nell’individuazione di punti miglioramento, ma anche momenti di valutazione di quello che aveva portato ad avere un risultato positivo al fine di inglobare le varie procedure nel processo standard. Abbiamo lavorato su come tenere traccia del lavoro da fare e come dare priorità ad un’attività rispetto ad un’altra.
Per aumentare la trasparenza, abbiamo lavorato su una definizione condivisa di quello che per il team poteva considerarsi un lavoro fatto (Definition Of Done) e dato degli standard a quello che poteva ritenersi pronto per entrare nel ciclo di lavoro o sviluppo (Definition Of Ready).
Molta attenzione è stata data al fine di migliorare il lavoro di team focalizzando su comunicazione, trasparenza, collaborazione e commitment.
Lato tecnico, le principali metodologie applicate sono state Scrum e Kanban; abbiamo usato board Trello, GitLab, fatto uso di documenti condivisi e strumenti di collaborazione come Miro. Essendo tutti da remoto, abbiamo mirato ad avere la massima focalizzazione nei vari meeting e ridotto i tempi di questi all’indispensabile. E’ stata davvero un’ottima esperienza.