Kangaroo Factor: il Fattore Canguro nell’agilità del dualismo Ruolo e Posizione

Se vi siete imbarcati nella lunga strada che porta all’Agilità, e avete deciso di adottare uno dei framework più comuni (Scrum, DA, SAFe, ecc…), vi sarete sicuramente scontrati con un problema estremamente comune in tale scenario: il cambiamento e l’associazione dei Ruoli.

Per evidenziare il concetto, prendiamo come riferimento Scrum che, come ben sapete, prevede tre ruoli fondamentali: Scrum Master, Product Owner e Developers.

scurm roles

Scrum Roles

Quello su cui tipicamente ci sono le maggiori difficoltà, sia da un punto di vista aziendale dell’inquadramento sia nel riconoscerne l’ambito in modo da lasciarlo operare attivamente e full-time rispetto a propri compiti, è il ruolo dello Scrum Master.

Molto spesso non si intende il ruolo dello Scrum Master come un “ruolo”, ma come una “posizione” che viene assegnata al più bravo degli sviluppatori, come se fare lo SM desse potere e rappresentasse una scalata nella gerarchia organizzativa. Si può facilmente intuire come questo porti ad innumerevoli rischi, mettendo in crisi l’adozione del framework selezionato (e prima ancora il percorso di trasformazione Agile) a causa di una serie di disfunzioni primarie:

  • Tipicamente “il più bravo tecnicamente” non è detto che abbia i soft skill (caratteriali) e gli hard skill (know-how agile) necessari… anzi!
  • Se anche le condizioni del punto precedente fossero verificate in positivo, il “più bravo tecnicamente” è tipicamente preso, per la maggior parte del suo tempo, dalle attività di sviluppo e nel relativo supporto ai propri colleghi, occupandosi dell’Agilità nei tempi morti… praticamente mai!

Possiamo sintetizzare il discorso, evidenziando come la disfunzione di avere un ruolo di Scrum Master non ricoperto da una persona dedicata in modo esclusivo (o praticamente esclusivo) attivi il Fattore Canguro (Kangaroo Factor), costringendo la stessa a “saltellare” tra più attività con il risultato di perdere costantemente concentrazione ed eleggere sempre e comunque un ambito di focus primario: tipicamente quello tecnico. In tal modo l’azione di coaching e supporto costante in chiave Servant Leader dello Scrum Master è solo un miraggio, un bell’intento scritto in letteratura.

kangaroo

Fattore Canguro (Kangaroo Factor)

Per essere pragmatici, è comunque doveroso evidenziare come l’associazione del ruolo di SM al technical leader ha dalla sua almeno un vantaggio, ovvero il fatto che gli altri membri del dev team sono generalmente portati ad ascoltarlo, vedendo in lui una figura di riferimento rispetto alle proprie attività.

Il consiglio, in linea con quanto suggerito da DAD (in cui il technical leader è definito Architecture Owner, mentre lo SM assume il nome di Team Lead), è quello di optare per questa scelta solo se il team è di piccole dimensioni, non è necessario confrontarsi con gli aspetti di scaling e anche il progetto è relativamente piccolo.

In tutti gli altri casi, ma direi in generale, evitiamo tale scelta e poniamoci come obiettivo quello di eliminare l’effetto canguro non solo per il ruolo dello Scrum Master, ma per tutte le figure della nostra organizzazione: meglio uno Scrum Master che segue due team (se il problema è economico/giustificativo) che uno Scrum Master allo 0,00001%!

Stay tuned J

Agile@School – Inizio

Il club delle 6

Anche l’ITI F.Viola/Marchesini di Rovigo si è unito ufficialmente al progetto esperimento/laboratorio Agile@School basato sull’idea e il supporto di Alessandro Alpi.

Immagine

Il tutto è stato inserito nelle attività ufficiali di alternanza scuola-lavoro dei ragazzi delle due quinte dell’istituto rodigino.

Il laboratorio ha come obiettivo introdurre i ragazzi ai concetti Agile e di lavoro in team: si mettono le mani in pasta e si utilizzano strumenti all’avanguardia del mondo professionale per realizzare un’app con Xamarin.

Nelle tre ore di laboratorio abbiamo toccato svariate argomentazioni e devo fare i complimenti ai ragazzi per essere stati complici e attivi in questo inizio di percorso tutto da esplorare.

  • Abbiamo introdotto i primi concetti e terminologia del mondo Agile e delle sostanziali differenze di cosa vuol dire fare un software per hobby/studio e farlo professionalmente.
  • Abbiamo esplorato le funzionalità di base di VSTS (Visual Studio Team Services) creando varie tipologie di PBI e mettendole…

View original post 158 more words

Agile@School – sesta lezione

Il club delle 6

Sono ripresi oggi gli appuntamenti all’ITI F.Viola / Marchesini di Rovigo di Agile@School dopo le vacanze: siamo al sesto episodio su dieci. Come ripromesso negli episodi precedenti abbiamo ripreso in mano dei principi Agile/DevOps che negli ultimi incontri erano stati parcheggiati in favore di approfondimenti tecnologici su Xamarin Forms.

Continuous Delivery

View original post 219 more words

La perfezione alchemica del numero 7 che porta alla disciplina

Disciplined Agile (Delivery) è un framework di cui parlo spesso, sia perché apprezzo l’approccio estremamente pragmatico all’Enterprise Agility, sia perché mi risulta molto utile per parlare ai diversi livelli organizzativi di elementi e “fasi” che possono paragonare all’organizzazione in essere.

Nel corso dell’ultimo anno, il DA Consortium ha fatto un importante lavoro per rendere consistente il passaggio da Disciplined Agile Delivery (lifecycle) a Disciplined Agile che si occupa dell’intera organizzazione.

In particolare, come da tradizione del mondo Agile e Lean, partire dai Principi è un approccio consolidato che consente di chiarire la linfa essenziale che contraddistingue il framework o la metodologia specifica. DA definisce 7 Principi essenziali, incarnazione della perfezione alchemica, rappresentati in una struttura a nido d’ape:

da values

Alcuni sono in diretta relazione con quando presentato da Modern Agile ed Heart of Agile, di cui abbiamo già discusso nei nostri approfondimenti.

Vediamo di dare più corpo a tali principi:

  • Delight Customer (meravigliare il cliente), questo principio affonda le proprie radici nel primo principio Agile “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software”, declinandolo in un’ottica maggiormente Lean Oriented con la consapevolezza che per fidelizzare i clienti bisogna fornirgli quel quid in più, andando a sorprenderli oltre le proprie aspettative;
  • Be Awesome (essere incredibili), il nostro successo aziendale dipende dalla capacità di aiutare le persone ad essere vincenti e renderli in grado di risolvere problematiche grazie alle proprie capacità. Come affermato da Richard Branson: “Take care of your employees and they’ll take care of your business”;
  • Pragmatism (pragmatismo), le persone devono confrontarsi continuamente con situazione che sono tutt’altro che ottimali. Diventa, quindi, indispensabile trovare la propria “Agile way”, accettando il fatto che sia necessario individuare il giusto equilibrio ed il giusto compromesso rispetto ad un possibile approccio ideale;
  • Context Counts (tener conto del contesto), contesti diversi richiedono strategie diverse. Questo comporta che, qualunque sia la pratica o il processo scelto, è necessario ricamarlo nel contesto specifico, andando a creare una cultura orientata al Continuous Learning ed Experimentation;
  • Choice is Good (poter scegliere è sempre positivo), ogni persona, ogni team ed ogni organizzazioni è unica. I team devono poter gestire e plasmare i processi, sperimentando cosa funziona realmente nel proprio ambiente, micro e macro;
  • Optimize Flow (ottimizzare il flusso complessivo), un’organizzazione è un Sistema Adattativo Complesso (CAS) composto da team che interagiscono tra loro e che evolvono costantemente influenzandosi a vicenda. La sfida è quella di trovare il giusto equilibrio e il ritmo che consenta di ottimizzare il flusso complessivo delle attività;
  • Enterprise Awarness (essere parte integrata dall’azienda), tutte le persone appartengono ad un unico ecosistema: l’azienda. I team possono trarre vantaggio da quanto fatto dagli altri, contribuendo al valore complessivo di quanto realizzato.

Tutti questi principi guidano l’Agilità all’interno di una visione olistica della sua adozione, creando le basi per l’approccio Goal-Driven caratteristico di DA.

Stay tuned J

Attenzione a non farvi distrarre dalla Big “A” dell’Agile

Il raggiungimento dello status quo è uno dei grandi rischi del mondo Agile.

Pensare di aver completato il proprio cammino è sintomo stesso che c’è ancora tanto lavoro da fare perché, probabilmente, non abbiamo capito in profondità il senso stesso dell’Agilità. Non dovremmo mai affermare “sono diventato Agile”, ma piuttosto “siamo continuamente al lavoro per far si che la nostra azienda sia in grado di rispondere sempre al meglio alle sfide di contesto”.

D’altronde una delle pratiche prese in prestito da Lean, ovvero il Kaizen, ci porta proprio a dire che bisogna migliorare continuamente a piccoli passi, in modo da limitare e gestire gli impatti senza per questo rinunciare a evolversi giorno per giorno. Stesso discorso per il dodicesimo principio.

kaizen

Ecco, in tal modo l’Agilità diventa un meccanismo implicito, uno strumento al servizio dell’obiettivo primario, e non l’obiettivo stesso.  È un aspetto fondamentale, ma che spesso sfugge, rendendo di fatto vano il percorso di rinnovamento e rischiando di sostituire il processo in essere con qualcosa che ha una maggiore tendenza, ma svuotato dell’essenza.

Se spalmassimo una trasformazione Agile sul quadrante di un cronometro, dopo aver raggiunto i primi risultati apprezzabili è come se la lancetta dei secondi fosse sulla prima unità aggregativa (tipicamente il 5) e, osservandolo, capiremmo quanto c’è ancora da fare. Ma la stessa metafora è utile anche per ricordarci che il tempo scorre velocemente e che rischiamo di restare indietro, se quanto stiamo facendo non è contestualizzato al dominio in cui ci muoviamo.

5chrono

Identificare un percorso di azione è fondamentale per consentire di avere sempre chiari almeno due obiettivi: quelli a breve e quelli a medio termine. In tal modo si evita di andare a naso e si riesce a comunicare ai diversi livelli interessati quelle che sono i “touch point” da attraversare per proiettarci e prepararci ai “momenti di verità”.

Troppo spesso si corre appresso alla “big A” di Agile, ovvero appresso alla brandizzazione di un approccio, una tecnica, un tool, che danno la falsa sensazione di essere al sicuro e di poter essere certi che il percorso intrapreso porti a risultati certi. Una sola sentenza: statene alla larga! Concentratevi su quando porta reale utilità e su quanto riesce a portare sul carro quanti più viaggiatori possibili.

Ovviamente, nessun dubbio che l’Agilità sia un’arma potentissima, ma come tale va maneggiata con cura per evitare che diventi un’occasione perduta e che non si riesca ad attuare i miglioramenti che ci si aspetta.

Stay tuned J

Agile@School – quinta lezione

Il club delle 6

Oggi siamo giunti al giro di boa per all’IIS Viola/Marchesini di Rovigo col progetto Agile@School e Xamarin: quinta lezione su dieci.

Il clima natalizio si è sentito e gli studenti erano tutti di buon umore e carichi.

IMG_20171220_162553

View original post 406 more words

Agile@School – quarta lezione

Il club delle 6

La settimana scorsa si è compiuto il quarto incontro di laboratorio di Agile@School + Xamarin all’IIS Viola/Marchesini di Rovigo. Purtroppo l’affluenza in questa lezione è stata molto bassa a causa di alcuni impegni personali di molti studenti.

Screenshot_1.png

View original post 219 more words

L’Incognita costellazione sottesa dalla “i” di Agile

La storia potrebbe cominciare così: una nuova organizzazione ci chiama, ci racconta come percepisce sé stessa, dicendoci dove vorrebbe migliorarsi, e ci chiede di supportarla.

Qui parte la “sfida previsionale”, dell’organizzazione e di noi stessi, sfida che deve accettare di buon grado il fatto di non potersi sottrarre alle regole implicite del Cono di Incertezza (Cone of Uncertainty), tanto decantate ed utilizzate quando si parla di Stime e Pianificazioni Agili.

cone of uncertainty

Cone of Uncertainty

Il Cono di Incertezza è uno strumento fondamentale, “portato” nel mondo del software da Barry Boehm come “Funnel Curve” e basato su una serie di lavori che hanno origine nell’ambito di uno studio sul Risk management nell’ingegneria chimica promosso dall’American Association of Cost Engineers alla fine degli anni ’50 del secolo scorso.

Il nome Cone of Uncertainity viene coniato da Steve McConnel, dopo che il lavoro di Boehm è stato raffinato, tra gli altri, dalla US Air Force e dalla NASA.

La potenza di questo strumento si trova nell’essenza stessa dello sviluppo dei sistemi appartenenti alla sfera del “Complesso” e dall’accettazione che le conoscenze relative aumentano in relazione al grado di avanzamento stesso del progetto: è praticamente impossibile, dati gli strumenti e gli approcci attuali, conoscere in anticipo con certezza quanto impiegheremo per la realizzazione di un progetto software.

Ogni progetto è unico, nella sua realizzazione, e si fonda sul lavoro di Persone, che sono uniche a loro volta ed evolvono costantemente.

Quindi, tornando ad un’azione di trasformazione: come possiamo dare un tempo certo per raggiungere il risultato, se l’ecosistema a cui ci riferiamo è costellato da una serie così ampia di incognite? La risposta è semplice: non possiamo!

multiple time

Quello che è possibile fare è sfruttare anche per le azioni di trasformazione i principi fondanti del Cono di Incertezza e considerare le stesse come un progetto (o meglio un programma) in cui si identificano degli obiettivi progressivi che consentono di attuare due aspetti primari:

  • Innestare nel contesto elementi di trasformazione e crescita progressiva, in modo da sviluppare il percorso di cambiamento;
  • Aumentare costantemente il nostro know-how di contesto, valutando i feedback ed i segnali che arrivano direttamente e indirettamente da quanto approcciato e dalle persone coinvolte.

In tal modo è evidente come un’azione di trasformazione debba realizzarsi a step progressivi, individuando finestre temporali (chiamatele Sprint o Iteration se preferite J) sufficientemente ampie da poter rendere significativa l’azione specifica, ma al contempo sufficientemente strette da poter intervenire rapidamente per correggere il tiro.

Al termine di ogni finestra temporale, è fondamentale validare quanto raggiunto, riflettere sugli step successivi e, di conseguenza, capire come allocare sufficienti risorse per raggiungere i nuovi obiettivi: approccio Lean Startup docet!

E qui si lega anche la classica domanda: ma come contrattualizzare il tutto?

La tematica è molto ampia, ma, in generale, valgono le stesse considerazioni e la maggior parte degli approcci che vanno sotto il cappello di “Contratti Agili”, dai più tradizionali Fixed-Price Contracts ai Cost-Plus Contracts.

Un approccio progressivo e legato alle evidenze, è un approccio che, nella mia esperienza, piace molto alle aziende, sentendosi “coccolate” e contando su un’azione “ricamata” sulle loro necessità e progressivamente rivista in funzione dei risultati ottenuti, piuttosto che essere vincolati ad un Piano realizzato up-front e poi preso a riferimento di tutte le scadenze a discapito del Valore prodotto…. waterfall memento!

Stay tuned J

La finta illusione dell’escapologia organizzativa indotta nella “e” di Agile

Avviare una trasformazione profonda come quella che porta un’azienda a scoprire la propria Agilità, diventando un’organizzazione in grado di adattarsi continuamente ai cambiamenti, richiede un Programma di forte intensità che incide sull’essenza stessa dell’“io organizzativo”.

Non di rado capita che si decida di “testare con mano” gli effetti del cambiamento, creando l’arcinoto Progetto Pilotta. Se a molti sembra un passaggio ovvio e dovuto, bisogna evidenziare che il successo di un progetto pilota non implica automaticamente il successo nell’adozione sistemica di quanto sperimentato, anzi!

pilot project

Il problema è che spesso si cade nella trappola di “proteggere” tale progetto, creando un ambiente specifico dissociato da quello reale, non soggetto proprio alle dinamiche che invece si vorrebbero risolvere con il cambiamento ipotizzato. Si tratta di una vera e propria azione di escapologia organizzativa, ovvero la capacità di isolarsi dal contesto specifico, creando le condizioni ideali che ci portano ad un successo apparente, ma non replicabile in quello reale.

Partendo da questa premessa, diamo un sguardo ai fattori primari di cui dovremmo tener conto affinché un progetto pilota sia realmente significativo:

  • Contesto. In un progetto pilota tutti ne conoscono la natura e i diretti interessati, e sentendosi “osservati” possono comportarsi come atteso piuttosto che come farebbero normalmente, falsando completamente il risultato;
  • As-Is. L’outcome del progetto dovrà confrontarsi con i processi esistenti ed abbattere la tipica resistenza al cambiamento prima di poter essere assorbito come sistemico. Bisogna sempre tenere in considerazione, inoltre, che quanto valido a livello locale potrebbe non funzionare a livello globale;
  • Risorse. Tipicamente sono sufficienti solo per il progetto stesso e l’estensione dei risultati richiede un programma di investimento specifico;
  • Coinvolgimento. Chi resta fuori dal progetto pilota può sentirsi escluso e fare quanto in suo potere, in modo più o meno esplicito, per affossare il tutto;
  • Tempo. Non esiste una diretta correlazione tra il tempo impiegato per il progetto pilota e il tempo che sarà necessario per rendere i risultati organici a tutta l’azienda;
  • Coraggio. Bisogna avere persone “illuminate” che non temono il cambiamento e non si arenano sul “… tanto qui non cambia mai nulla!”.

Questi fattori, non esclusivi, sono sempre presenti e ci portano a riflettere su quanto possiamo fare per porci almeno nelle condizioni di avere un progetto pilota che possa avere successo. L’obiettivo è che tale progetto deve rappresentare un valore concreto per la nostra organizzazione, andando a toccare almeno i seguenti elementi chiave:

  • Massimizzare gli elementi positivi. Bisogna sempre selezionare i progetti più promettenti che consento di validare rapidamente i risultati, senza costi e rischi eccessivi;
  • È fondamentale individuare Persone energiche ed entusiaste, tipicamente prone all’innovazione e al cambiamento. Inoltre, si deve avere a bordo uno sponsor aziendale di alto livello che senta propria l’iniziativa, aiutando a trovare le risorse necessarie;
  • Benefici di business. Il progetto pilota dovrà evidenziare chiaramente i benefici aziendali ai diversi livelli, dimostrando come il relativo saldo con gli investimenti sia positivo. I vantaggi ottenuti devono sempre riguardare sia le singole Persone che il contesto organizzativo complessivo;
  • Oltre il perimetro. Al progetto vanno associati un ambito preciso e obiettivi ragionevoli, evitando di “volare alla cieca” e dando un senso alle diverse azioni di pivot che generalmente lo accompagnano. Resta comunque fondamentale che il tutto sia “estendibile” al contesto complessivo e che non abbia senso solo nello specifico;
  • Apprendimento. Il progetto pilota non ha successo se produce qualcosa (o almeno non solo): si ha successo se chi lo attua e l’organizzazione tutta è in grado di imparare da esso, anche in caso di fallimento. Ricordate: “fail often, fail fast”;
  • Training e Coaching. Nessun progetto pilota può avere successo se non è accompagnato da opportune azioni di training e coaching. Il tutto è tanto più evidente e rilevante quanto più l’innovazione introdotta è dirompente;
  • Visibilità. Rendere il progetto visibile anche a chi non è direttamente coinvolto è fondamentale per cominciare a disseminarne i risultati e rimuovere la presunzione di “proprietà” che, tipicamente, chi non è coinvolto tende ad associare al Team pilota.

Infine, ricordate sempre che se il progetto pilota non ha più senso di continuare, allora è meglio interromperlo subito, rivolgendo la nostra attenzione a qualcosa di più utile per la nostra organizzazione.

Stay tuned J

Agile@School – Terza lezione

Il club delle 6

Eccoci giunti alla terza lezione su dieci del laboratorio Agile@School dell’IIS Viola/Marchesini di Rovigo

Screenshot_1

Stand-up meeting

Anche questa volta abbiamo fatto pratica con lo stand-up meeting in cui abbiamo fatto un piccolo riassunto della puntata precedente ed è stato introdotto a grandi linee il programma della giornata. La partecipazione al riassunto sugli argomenti passati è stata tiepida ma ugualmente ci ha fatto scontrare col fatto che per riassumere gli episodi precedenti bisogna scegliere l’adeguato livello di astrazione: né troppo elevato, né troppo dettagliato. A seguire ho introdotto gli argomenti della giornata e una previsione sulla lezione futura.

MVVM – Comandi

Abbiamo ripreso il filo della lezione precedente introducendo il concetto di comandi nel mondo MVVM. Con l’occasione abbiamo letto insieme la documentazione MSDN dell’interfaccia ICommand, abbiamo ripassato il concetto di delegati e studiato un’implementazione di ICommand. Ancora una volta il livello di preparazione delle quinte mi ha stupito perché la…

View original post 233 more words