do more with less
news, esperienze, esempi da condividere e qualcosa su di me

mercoledì 27 marzo 2013

Formazione per contagio o virale

Introdurre in una software house una nuova tecnologia porta con se alcune criticità che possono scoraggiare il management. Quello che in genere frena l’adozione di una nuova tecnologia è la curva di apprendimento (learning curve) a cui devono sottostare i membri del team di sviluppo. Una possibile tecnica per ridurre i costi sottointesi dalla learning curve è rappresentata dalla tecnica della formazione virale. Proviamo a chiarire il concetto con un esempio.

Ipotizziamo di trovarci davanti a un team di sviluppo composto da 9 membri con seniority differenti. Pensare di affrontare la formazione su tutto il team nel medesimo periodo genererebbe una paralissi del sistema produttivo dell’area di sviluppo. Per ovviare a questo si può applicare questa checklist:

image

  1. Individuare, nell’esempio ipotizzato, le 3 risorse con la maggior seniority e costituire un mini team interno al team di sviluppo principale;
  2. Utilizzando una metodologia (e.g. Scrum) affrontare la formazione suddividendola in interazione successive di dimensioni contenute (e.g. 10 gg lavorativi)
  3. Nella prima iterazione si può affrontare una formazione di tipo tradizionale finalizzata all’apprendimento teorico/pratico della nuova tecnologia da adottare.
  4. Nella seconda, ed eventualmente nella terza, utilizzare la formazione teorica acquisita per applicarla in un caso reale da implementare con la tecnica del training on the job. Lo scopo deve essere quello di realizzare un componente o una funzionalità rilasciabile al termine dell’iterazione. Questo stimola il mini team a produrre al meglio delle proprie possibilità massimizzando la formazione ricevuta nella precedente iterazione.
  5. Al termine della seconda iterazione, applicare gli eventuali correttivi formativi e metodologici necessari a migliorare la qualità dell’iterazione succesiva. Quindi procedere con la terza iterazione se prevista.
  6. Nella terza iterazione procedere come fatto nella seconda applicando gli eventuali correttivi identificati nello step precedente.
  7. Terminata la fase formativa del mini team si può procedere con l’applicazione della formazione “per contagio” o “virale”. Per farlo andranno costituiti, nell’ipotesi di questo esempio, 3 mini team composti ognuon da 3 persone. In ogni team deve essere presente uno dei membri del primo mini team, formato in precedenza, in modo da garantire il contagio formativo.

image

  1. Il membro “infetto” fungerà da formatore e tutor degli altri 2 membri per un numero di iterazioni da definire in base alla seniority dei 2 sviluppatori da formare. Minore sarà la seniority maggiore sarà il numero di iterazioni da eseguire per garantire il successo della formazione virale.
  2. La prima iterazione dei 3 mini team dovrà essere in parte teorico/pratica e in parte basata sul training on the job. In questa seconda parte il membro senior, già formato, dovrà prodigarsi come tutor per garantire che gli altri membri da formare colmino il loro gap formativo possibilmente senza tralasciare gli obiettivi di sviluppo previsti. Ricordo che l’inserimento degli obiettivi di sviluppo dell’iterazione nasce dalla necessità di tenere il team focalizzato su obiettivi reali che lo rendono più produttivo rispetto a sterili scenari formativi di tipo tradizionale.
  3. Nelle iterazioni successive si dovrà consolidare la formazione continuando con il training on the job producendo funzionalità o componenti che abbiano valore per il business attenuando così i costi formativi con il rilascio di elementi utilizzabili e “rivendibili”.

In questi anni di attività ho potuto provare con successo questo sistema in diversi team di dimensioni diverse e su tecnologie eterogenee. Il vantaggio percepito dal business è quello di una formazione più efficace in grado di rendere i membri del team produttivi in tempi più rapidi rispetto agli approcci tradizionali. In realtà i vantaggi sono dati da cosa viene prodotto nella fase di training on the job (cosa che cambia la percezione del management) e dal fatto che gli sviluppatori sono stimolati dagli obiettivi assimilando così meglio i nuovi concetti tecnologici.

Il tempo complessivo non cambia ma cambiano i risultati formativi che potremmo riassumere in:

  1. rilascio di valore per il business (percezione di maggior efficacia del sistema formativo);
  2. assimilazione delle tecnologie più rapida da parte dei membri del team .