Attività di Continuo Miglioramento e come svolgerle da remoto

Mia-Platform Team 02 aprile 2020

I momenti di formazione sono molto preziosi per restare aggiornati sulle novità tecnologiche, allenarsi nelle hard skills, migliorare i processi e creare contaminazione e coesione tra diversi team.

Per questo, in Mia-Platform abbiamo un fitto calendario di formazione continua che coinvolge i diversi ruoli. 

 

Quello di continuo miglioramento è un concetto che arriva da lontano: dal Kaizen giapponese. Kaizen deriva infatti da KAI (cambiamento, miglioramento) e ZEN (buono, migliore) ed è l’impegno ad apportare sempre piccoli cambiamenti e miglioramenti in tutti gli ambiti della struttura aziendale e a tutti i ruoli. Piccoli cambiamenti continui possono portare a profonda innovazione e a un beneficio tangibile per tutti.

Kaizen

 

Il tema del continuo miglioramento, inoltre, rientra nella metodologia Agile, che si basa proprio su un adattamento continuo e su un miglioramento continuo sia individuale che del team. 

Le attività di continuo miglioramento nascono dai bisogni specifici di un’organizzazione. Quelli che abbiamo individuato per noi sono: imparare, confrontarsi, allinearsi, condividere, crescere.

Siamo quindi partiti coinvolgendo alcuni dei ruoli presenti nella nostra azienda: i Product Owner, gli Scrum Master e i Developers e abbiamo così strutturato un calendario di incontri.

 

In questo articolo vogliamo condividere le nostre attività affinché possano essere di ispirazione ad altre realtà che vogliano inserire questi momenti nella propria routine. In questo particolare momento storico, le attività di continuo miglioramento sono state riadattate alla modalità da remoto. Oltre ad essere un modo per migliorare le proprie competenze, possono quindi essere potenziate nella loro importanza come momento di coesione nonostante la distanza.

Per la stesura di questo articolo abbiamo intervistato alcune delle persone che in Mia-Platform si occupano delle attività di continuo miglioramento: Livia Rossetto, People & Culture; Federico Oldrini, Tech Leader; Antonio La Salandra, Scrum Master; Francesca Carta, Product Owner.

 

Per gli sviluppatori

 

La mob programming

”All the brilliant people working on the same thing,
at the
same time, in the same place,
and on the same computer.”

 Woody Zuill

La mob programming è un approccio allo sviluppo software dove un gruppo di persone lavora contemporaneamente utilizzando un solo computer e focalizzandosi nel dare il proprio contributo nel raggiungimento di un obiettivo comune. 

La mob programming è una delle attività che svolgono gli sviluppatori di Mia-Platform per fare continuo miglioramento.

Vengono organizzate principalmente a livello di team: la responsabilità dell’organizzazione e la supervisione sui contenuti è affidata al Tech Leader del team, che è una figura più senior. I singoli appuntamenti però vengono guidati a turno dai vari componenti del team, che hanno così modo di proporre contenuti e sperimentare come gestire un momento di gruppo.

 

Non c’è un canovaccio fisso, l’unica regola è che sia un evento formativo tecnico

Solitamente, in una mob programming, si può:

  • Fare una review di qualcosa già sviluppato in precedenza
  • Migliorare un pezzo di codice che è stato già scritto
  • Studiare qualcosa di nuovo
  • Risolvere insieme un problema che si è presentato

Più raramente può capitare di svolgere una mob programming più didattico/teorica; di solito però si preferisce affrontare qualche aspetto pratico.

Le mob programming possono essere svolte anche cross-team: lo scambio di conoscenze in questo modo può essere arricchito dalle diverse esperienze che affrontano i vari team sui diversi progetti. Si può organizzare una mob programming unica per due team, oppure un team può unirsi alla mob programming di un altro e dare lì il proprio contributo.

 

Come gestire il continuo miglioramento per gli sviluppatori da remoto?

Proseguire nelle attività di miglioramento continuo da remoto è sicuramente una sfida da affrontare, ma è anche una grande occasione per tenersi aggiornati nel team, mantenere momenti di contatto e migliorare ulteriormente le proprie competenze.

La comunicazione faccia a faccia semplifica una mob programming, ma se vogliamo sperimentarla da remoto, allora sarà importante prestare maggiore attenzione ai seguenti aspetti:

  • Orario dell’evento: è sempre meglio non mettere questo evento a fine giornata o a fine settimana. È importante la collaborazione e il coinvolgimento di tutti con la massima attenzione. Partecipare a una mob programming può dare stimoli per il nostro lavoro che possono essere messi subito in pratica anche nella stessa giornata.
  • Contenuti: scegliere accuratamente i contenuti e prepararsi molto bene sono aspetti rilevanti. Sarà importante scegliere dei contenuti sui quali tutti possano partecipare anche da remoto, che non siano troppo complessi per essere seguiti e sui quali il moderatore sia ben preparato per evitare perdite di tempo.

 

Continuo_Miglioramento_Mia-Platform

 

I kata 

Un Kata è un esercizio di programmazione che aiuta ad affinare le competenze grazie alla pratica e alla ripetizione.
Il termine è stato introdotto in letteratura per la prima volta da Dave Thomas nel libro “The Pragmatic Programmer” rifacendosi al concetto di kata nelle arti marziali.

I kata, in Mia-Platform, sono una delle attività svolte dagli sviluppatori all’interno del programma di continuo miglioramento.
Quella dei kata è un’attività che viene molto spesso svolta in sessioni di pair programming, ed è stata per noi la più complessa da riprendere da remoto. Una volta trovata la formula, però, si è rivelata efficace e stimolante nonostante la modalità nuova di partecipazione.

 

Come svolgere un Kata da remoto?

In questo caso, la scelta di un argomento che non prevedesse sessioni di pair programmi ha facilitato la partecipazione di tutti da remoto.
L’argomento scelto è stato il refactoring; in poche parole: l’abbellimento del codice senza cambiarne le funzionalità, e cioè rendendolo più comprensibile, manutenibile, ecc.

Questo kata è stato ispirato da un talk di Martin Fowler, uno dei massimi esperti di refactoring, ed è stato organizzato fornendo ciascuno di un pezzo di codice che andava migliorato secondo le tecniche conosciute e seguendo il proprio intuito. Non sono state quindi fornite istruzioni preliminari sulle possibili evoluzioni che quel codice avrebbe avuto.

Il kata ha seguito essenzialmente due fasi:

  • Prima fase: ciascuno fa refactoring in modo libero, con l’unico limite di utilizzare uno dei quattro linguaggi scelti in precedenza, e cioè javascript, java, kotlin e python. Ciascuno annota su Miro le azioni di refactoring scelte. Dietro le quinte, Luca Marzi -coordinatore di questo kata-, si è occupato di organizzare le varie azioni in famiglie di argomenti per preparare la discussione che deve avvenire successivamente.
    Mia-Platform_Kata
    Una volta finito il tempo del refactoring, quindi, i partecipanti spiegano e discutono le varie scelte prese.
    Da questa prima fase ne è emerso un glossario, che può essere adottato a livello aziendale per le merge request o per le sessioni di mob programming.
  • Fase 2: In questa seconda fase si introduce un elemento di complessità, spiegando che il refactoring acquista maggiore valore quando il codice deve evolvere, e quindi sono state proposte al gruppo delle feature evolutive. Ciascuno ha potuto valutare la bontà del proprio refactoring basandosi sulle evolutive richieste e discutendone con gli altri.

Ognuno ha potuto caricare poi la propria versione su GitLab.

 

Gli strumenti utilizzati per il kata sono stati quindi Mirò per poter appuntare le azioni di refactoring, organizzare le idee e facilitare la discussione, Google Meet per incontrarsi virtualmente e poi Google Chat per avere una stanza condivisa dove scrivere senza disturbare la telefonata di gruppo.

 

Per gli Scrum Master

Anche gli Scrum Master si incontrano per attività di continuo miglioramento: due incontri al mese, ciascuno delle durata di un’ora.

Gli Scrum Master si incontrano solitamente la settimana successiva quella della retrospettiva dei singoli team per confrontarsi su ciò che è emerso dagli incontri, valutare i punti più rilevanti e trovare delle soluzioni a eventuali problematiche emerse.

Questa diventa un’occasione anche per confrontarsi sulle modalità di gestione della retrospettiva stessa: una retrospettiva delle retrospettive.

 

Per quanto riguarda il continuo miglioramento degli Scrum Master, inoltre, i singoli incontri sono focalizzati su un tema specifico, e cioè su uno dei momenti dello Scrum: apertura sprint, standup, backlog refinement, ecc. 

Per ogni incontro c’è un owner diverso che si occupa di fare uno studio teorico sul tema e di portare punti di attenzione che possano avviare la discussione. Si unisce quindi, allo studio teorico, il piano pratico di come certi momenti vengono gestiti all’interno di ciascun team.

L’output non è quello di definire delle linee guida uguali per tutti i team, ma di essere tutti allineati sul piano teorico per poter gestire ancora meglio le diverse esigenze che possono emergere in ciascun team. Ciascun team, che varia per numero, tipologia di progetto e competenze, può avere necessità diverse che meritano una flessibilità che sia però accompagnata da una solida conoscenza teorica.

 

Come gestire il continuo miglioramento per gli Scrum Master da remoto?

In Mia-Platform, a dir la verità, eravamo in procinto di far partire questa serie di incontri quando è iniziata la quarantena. Abbiamo deciso di avviare comunque l’attività di continuo miglioramento anche da remoto, con il supporto degli strumenti che abbiamo a disposizione.

I file in condivisione, in particolare Google Sheet, si stanno rivelando preziosi alleati per la gestione degli incontri, insieme, ovviamente, a strumenti di chiamata e condivisione schermo come Hangout.

 

 

Per i Product Owner

Anche i Product Owner si incontrano periodicamente per le attività di continuo miglioramento, vediamo come funziona per loro.

I PO di Mia-Platform si incontrano una volta al mese per un momento di formazione orizzontale. Come abbiamo visto negli altri momenti, anche qui per ogni incontro c’è un moderatore che, a turno, si prepara con del materiale da condividere e degli spunti per un momento di confronto e dibattito.

 

Alcuni degli argomenti che vengono affrontati negli incontri dei PO sono: migliorare nella scrittura delle user stories, come rendere le riunioni più efficaci, nuovi modelli e framework di gestione e molto altro.

Uno degli ultimi incontri, gestito da remoto, è stato sulla scrittura delle user stories. L’owner dell’incontro si è preparato con del materiale e una breve presentazione per il team, che è stata seguita da un momento di confronto su come ciascun team scrive le user stories, quale sarebbe il metodo da adottare e come questo può essere declinato alle esigenze di team e di progetto.

 

Come gestire il continuo miglioramento dei PO da remoto?

Stiamo sperimentando in questo periodo nuove modalità di gestione delle nostre attività di formazione.

Ci sono alcuni punti di attenzione molto importanti emersi dall’incontro tra i PO e sono:

  • La durata dell’incontro può essere ridotta per arrivare il prima possibile al momento del confronto, dove tutti sono coinvolti e partecipi
  • Scrivere i feedback che si stanno raccogliendo su un documento in condivisione: questo rende più semplice sia seguire sia dare il proprio contributo

 

 

PO e Tech Leader: riunioni efficaci per il continuo miglioramento del prodotto 

Un ultimo breve capitolo è da dedicare non solo al continuo miglioramento delle persone e dei team ma anche all’attività di continuo miglioramento del prodotto.

Questa attività è molto strutturata, più delle altre, perché più frequente e più breve.

I Tech Leader di tutti i team incontrano, una volta a settimana, il PO e i Tech Leader del team di R&D. Durante la settimana che precede l’incontro, i Tech Leader raccolgono feedback, richieste e punti di particolare attenzione. La riunione ha una durata di 30 minuti, nei quali ciascun tech leader ha un momento per esporre la propria parte. Conclude il team di R&D con un aggiornamento sugli avanzamenti di prodotto.

Diventa di fondamentale importanza, per questo incontro, che ciascuno arrivi molto preparato per poter avere tutti il tempo necessario di esprimersi e di uscire con degli output.

In un contesto di lavoro da remoto, poi, può essere ancora più utile condividere il materiale prima della riunione e svolgere la riunione con il video acceso. Quest’ultimo aspetto, se non si è in troppi a partecipare, può agevolare molto la comunicazione e il coinvolgimento.

 

In conclusione, le attività di continuo miglioramento, se svolte realmente con una struttura e una periodicità, permettono di apportare quei piccoli cambiamenti che sul lungo periodo portano grande innovazione sia al prodotto che alla cultura aziendale. Cultura intesa come clima di lavoro e come processi ottimali.

Siamo consapevoli che una modalità faccia a faccia agevoli qualsiasi momento di formazione. Allo stesso tempo, trovare il giusto equilibrio per svolgere alcune attività da remoto può portare molti benefici sia dal punto di vista della formazione individuale che dal punto di vista della coesione del team.

Il nostro suggerimento è quindi quello di provare a sperimentare un calendario di continua formazione, partendo da piccoli gruppi e poi ampliare l’offerta formativa.

 

Leggi il Paper 

Post Correlati

Principi e pratiche di Continuous Delivery

Ogni sviluppatore ha provato, almeno una volta nella vita, quella sensazione di tensione che accompagna il Delivery Day. Conoscendo l...
Mia-Platform Team 09 gennaio 2020

La delicata fase di onboarding e come svolgerla da remoto

Il primo giorno di lavoro inizia molto prima della data effettiva definita dal calendario. Per il nuovo arrivato così come per l’azie...
Mia-Platform Team 14 aprile 2020

Unconference: cos’è e come svolgerla da remoto

L’unconference è un evento non convenzionale basato sull’Open Space Technology. Si tratta di una conferenza molto diversa da ciò cui ...
Mia-Platform Team 12 maggio 2020