Category Archives: ALM

Application Lifecycle Management

L’innata iperbole recondita dell’inutilità degli strumenti freddi

Lunedì mattina presto, viaggiando in pullman, mi sono imbattuto in una situazione già vista diverse volte, ma che in questo caso mi ha fatto riflettere: per circa un’ora, ovvero per tutta la durata del viaggio, un tizio è stato letteralmente incollato al portatile, scrivendo email di risposta ai vari colleghi. La cosa che più di tutte ha stimolato la mia riflessione, oltre l’orario, è che l’atteggiamento complessivo (postura, smorfie facciali, ecc.) dava l’impressione che questa persona si comportasse come se dovesse recuperare il “tempo perso del weekend”.

laptop travel

La sensazione è stata rafforza vedendolo tirare quasi un sospiro di piacere quando abbiamo incontrato un rallentamento… tempo in più per le mail!

Sia chiaro non è il lavorare in viaggio che mi ha stupito, visto che anch’io, quando sono in treno (nel pullman non riesco in alcun modo a causa del rumore, degli spazi limitati e del modo “fantasioso” di guidare degli autisti), utilizzo il tempo per lavorare e per approfondire le tematiche che professionalmente mi interessano.

Piuttosto, sono le particolari caratteristiche di contesto che mi hanno fatto riflettere, portandomi a ripensare a quanto siano importanti i Valori e i Principi Agili che metto le Persone al centro di tutto, evidenziando la necessità di mantenerle motivate (“Build projects around motivated individuals”). Sesso discorso per una la vista organizzativa “Energize People” di Management 3.0.

Come si può immaginare di essere produttivi e dare il meglio di sé, se il lunedì mattina alle 6.00 siamo già in queste condizioni? Arriveremo in ufficio stressati dal primo minuto, soprattutto perché l’abuso di strumenti freddi, email in primis, ci porta ad avere una sensazione dell’incompiuto perenne, quasi vergognandoci di dedicare il giusto tempo a noi stessi e ai nostri cari.

incompiuto

Non è possibile immaginare di essere sempre “immersi” nel lavoro, per quanto appagante sembri, perché questo non ci consente di respirare, confrontarci al difuori della sfera professionale, e arricchire le nostre azioni con contaminazioni esterne.

E poi… basta con tutte queste email! “Face to Face conversation”… parliamo con i nostri colleghi, con i nostri clienti, collaboriamo con loro per trovare la giusta quadra in funzione degli obiettivi e delle necessità che dobbiamo soddisfare nell’immediato, con un occhio a quelli generali.

Per darvi un’idea di come la comunicazione tramite email possa essere assurdamente istituzionalizzata, date un’occhiata alla “Email Etiquette: Guidelines for Writing to Your Professors” (https://www.math.uh.edu/~tomforde/Email-Etiquette.html), che spiega agli studenti della Houston University come scrivere una email ai propri professori.

Ad onor del vero, la “guida” si chiude con un “Do Not Use Email as a Substitute for Face-To-Face Conversation”, ma sembra più che altro una cosa buttata li per dovere.

Il succo di tutto il discorso è che non bisogna mai “vergognarsi” di ritagliarsi i propri spazi, staccare la spina e ricaricarsi: non si tratta di un plus, ma di un obbligo che anche l’organizzazione per cui si lavora deve tenere in conto. È un dovere nei riguardi del proprio collaboratore, ma anche un elemento di vantaggio competitivo, potendo contare su Persone che sentono di avere un giusto equilibrio, andando a soddisfare i propri desideri intrinseci.

Stay tuned J

Il dilemma del tentativo unico sul valore ignoto

Per quanto sia coinvolto ormai da molti anni nel mondo Agile, resto ancora spiazzato nello scoprire quanto sia difficile spiegare in parole semplici cosa sia “Agile”.

Qualche settimana fa sono stato coinvolto in una interessante discussione con un gruppo di manager, apparentemente lontani da questo mondo, e, parlando del più e del meno, ad un certo punto uno di loro mi ha chiesto: “convincimi che l’Agile è utile per quello che facciamo nel tempo che impiegheremmo ad attraversare dieci piani in ascensore”.

elevator pitch

Ok, al di là del mio velato sorriso relativamente all’Elevator Pitch, che molti di voi immagino conoscano, devo dire che condensare una risposta efficace in pochi secondi è stato più difficile del previsto.

A primo acchito ho risposto con una definizione che spesso sento usare da Giulio Roggero: “… un set di 4 valore e 12 principi che ci consentono di lavorare insieme in modo efficace ed efficiente”.

Nella mia mente sembrava una risposta chiara e limpida, ma il risultato ottenuto con il manager è stato piuttosto deludente, visto che lo stesso mi ha fatto notare che essa può essere applicata in modo praticamente identico a diversi approcci che sostengono le iniziative del business.

Cavolo… ha decisamente ragione!

Spesso siamo così immersi nel “nostro mondo” che fatichiamo a guardarci intorno e renderci conto che esistono anche altre opzioni che permettono di raggiungere risultati interessanti, in funzione del contesto Culturale in cui vengono applicate.

Resta il fatto che nei giorni a seguire ero rimasto con il cruccio di trovare una definizione o una metafora per avvallare la mia tesi con il manager in questione, e dopo diverse ipotesi ho tirato fuori il “One-Shot Dilemma” che voglio condividere con voi:

Hai a disposizione 1 euro e puoi investirlo in tre modi diversi: una bottiglina d’acqua [bisogno attuale], una penna [bisogno ricorrente] o un gratta e vinci [bisogno futuro]. Cosa scegli?

Il manager è restato sconcertato dalla domanda perché non ha colto il nesso tra le tre diverse scelte, apparentemente casuali e non associabili a problematiche di gestione (non ho chiaramente esplicitato il concetto di bisogno che sopra ho inserito tra parentesi). Dopo qualche secondo, la riposta è stata:

…onestamente non saprei… compro una bottiglina d’acqua così almeno mi disseto!”

dice

Alche, la mia reazione è stata:

Bingo!… è esattamente questo il punto: non puoi decidere cosa fare se non hai visione del bisogno da soddisfare e non hai gli strumenti adatti per contestualizzarlo. È come se sfidassi costantemente la fortuna, sperando che la tua scelta sia quella giusta.

Agile ti permette, invece, di utilizzare al meglio le risorse a tua disposizione, ottenendo valore contestuale da esse e riducendo il rischio “one-shot” perché aiuta a concentrarsi su obiettivi ragionevoli a breve termine, pur inseriti nel quadro generale.” 

La discussione è poi continuata su diversi aspetti di dettaglio che non vi racconto per non annoiarvi.

La considerazione che voglio condividere, però, è quella che in un momento in cui si comincia a parlare con insistenza di Business Agility, Modern Agile e similari, dove l’Agilità si “scrolla di dosso” quel legame forte con lo sviluppo software per divenire uno strumento con cui l’azienda può rispondere in modo più efficace alle perturbazioni di Mercato, dobbiamo imparare ad essere meno “tecnici” nelle nostre discussioni ed abbracciare un vocabolario che ci permetta di dialogare con successo con il nostro interlocutore (Ubiquitous Language!) in modo da far comprendere il Valore annesso al mondo Agile, Lean e DevOps.

Stay tuned J

La sorpresa attonita della massa superficiale

Diciamola tutta: il mondo dell’Information Technology ama le buzzword!

Le amano i commerciali, che vendono sotto “mentite spoglie” prodotti in cui poco o nulla cambia. Le amano i consulenti, che possono rivendere le proprie conoscenze (e sottolineo “conoscenze” e non “competenze”!) cambiando il titolo sulle proprie slide. Le amano gli sviluppatori, che possono atteggiarsi con l’ultimo framework javascript, anche se, probabilmente, verrà abbandonato in meno di un mese. Le amano moltissimo i manager, che intrinsecamente gioiscono nel mostrarsi alla moda.

dilbert buzzword

Relativamente al mio campo di attività, due sono le buzzword che oggi dominano la scena: DevOps ed Industry 4.0. Ci tengo a precisare subito una cosa: non c’è nulla di male, in generale, nel rendere “appetibili” concetti, approcci e tecnologie che sono maturati nel tempo e che subiscono, conseguentemente, anche una metamorfosi nella nomenclatura, rendendoli apprezzabili dalla “massa” e non solo da piccole nicchie della popolazione interessata.

Quello che però è deleterio, è vedere le espressioni di quanti pensano di aver scoperto il santo graal, e ripetere (fino alla noia e sicuri di sé) affermazioni del tipo: “Agile? Ma cosa me ne faccio, tanto io uso DevOps”… oppure “Ho comprato Arduino, riesco a misurare la temperatura… ovvio che sono Industry 4.0!”.

La cosa preoccupante è il fatto che, tali affermazioni non sono la sintesi di un percorso di approfondimento e applicazione empirica dei concetti portanti alla base delle diverse tematiche interessate. In questo caso, infatti, sarebbero comunque rispettabili, anche se opinabili. Spesso, troppo spesso, sono il risultato di una improvvisazione e della presunzione che leggere le prime 2 righe di Wikipedia faccia di noi degli esperti in grado di applicarle nel concreto e ci permetta addirittura di dibattere di esse (dico 2 righe, perché se ne sono state lette 3 allora si è “gran. farabutt. ladr. matricolat. paracul” [cit. fantozzi]).

Ma torniamo alle due buzzword con cui abbiamo iniziato, andando a sintetizzare perché le ritengo un prodotto “commerciale”, utile per parlarne, anche se nella sostanza aggiungono poco alle trasformazioni già in atto da tempo.

Per chi mi segue, non è un mistero il fatto che io non apprezzi particolarmente il termine DevOps, sia perché lega il tutto in modo esclusivo, ed errato, ai soli Developers ed Operation, sia perché, in fondo, avevamo già il termine in grado di rappresentarne l’essenza: Lean.

Ebbene si, DevOps non è null’altro che Lean applicato in modo efficace all’IT (molto più di quanto si sia riusciti con Lean Software Development dei Poppendieck), avvalendosi delle nuove piattaforme tecnologiche, in grado di automatizzare le attività e misurare i progressi ottenuti.

Non siete convinti? Provate a leggere The Phoenix Project, l’unico, e sottolineo unico, libro che dovete leggere per capire cos’è DevOps, e provate ad annotarvi quante volte incontrate il termine DevOps… curiosi? Ebbene, solo nella seconda di copertina, nella frase di introduzione al libro stesso: “A Novel About IT, DevOps, and Helping Your Business Win”.

Qualcuno potrebbe dirmi… vabbè, però la Continuous Integration e la Continuous Delivery è roba dei nostri giorni che prima non c’era… sicuri? La CI è uno dei Principi cardini di eXtreme Programming (XP), una delle principali metodologie Agili nata nella seconda metà degli anni ‘90. E sempre in XP troviamo le pratiche (corollarie) di Incremental Deployment e Daily Deployment che possiamo considerare una prima formalizzazione della Continuous Delivery.

Quindi roba “vecchia” che oggi è diventata di “moda” spesso perché “… è facile farla”, perdendo però di vista il vero scopo del “perché farla”: non faccio Continuous Integration perché è figo vedere il flag verde sulla build. Faccio CI perché in questo modo ottengo feedback rapidi che consentono ai membri del team di migliorarsi e risolvere velocemente i problemi, evitando che il costo di integrazione diventi uno spreco rilevante del budget che ho a disposizione. Se in un team di 7 persone, solo uno fa CI e gli altri creano 30 branch di GIT che si ricordano di integrare solo dopo 2 mesi… beh, immagino che non ci sia neanche bisogno di dire cosa accade all’atto dell’integrazione. Stesso discorso se non ho gli unit test: Continuous Integration senza Unit Test è come una Cena senza del buon Vino…

Ed Industry 4.0? Anche qui, proviamo a dare una definizione di quella che viene indicata come quarta rivoluzione industriale:

“Industry 4.0 connota una filosofia aziendale Customer Centric basata su produzione flessibile e ottimizzazione delle risorse.

L’obiettivo è quello di combinare l’efficienza della produzione di massa con quella on demand, inclusa l’ottimizzazione real-time della catena di distribuzione (Supply Chain)”

hmmm… a me ricorda molto un’altra definizione che condivido con voi:

[..] is a systematic method for waste minimization (“Muda”) within a manufacturing system without sacrificing productivity. Lean also takes into account waste created through overburden (“Muri”) and waste created through unevenness in work loads (“Mura”). Working from the perspective of the client who consumes a product or service, “value” is any action or process that a customer would be willing to pay for.

sapete di cosa si tratta? Lean Manufacturing (o se preferite Toyota Production System). Ovviamente, anche qui ci sono delle evoluzioni importanti, soprattutto relativamente alle tecnologie disponibili, ma l’essenza non è cambiata di molto.

Le buzzword sono quindi il male in terra? Direi di no. Come accennato sono uno strumento che, utilizzato con parsimonia, può contribuire a diffondere meglio la trasformazione che tutti i settori produttivi stanno attraversando.

Indipendentemente dal campo specifico, infatti, oggi si è giunti ad una maturazione del concetto di produzione, in cui si realizzano Servizi (e non solo prodotti) in grado di raccogliere e soddisfare le esigenze delle Persone (non utenti!), facendo attenzione a rendere i processi sostenibili dalle Persone che tali servizi sono chiamati a realizzarli.

E anche qui, Persone e Iterazioni prima di tutto!

Stay tuned J

Agile@School 2017 – Quando i progetti diventano realtà

L’ulitmo appuntamento coi ragazzi a scuola è stato veramente appagante. Mi sarei aspettato seri problemi da risolvere, questioni da affrontare. E invece è andato tutto bene. Questo è il motivo per il quale qui di seguito allegherò tante immagini. Credo proprio che sia il miglior metodo per descrivere come gli studenti stanno realizzando le loro idee. Ricordiamoci tutti però che stiamo parlando di diciottenni e non di startup!

Dicevamo, le immagini parlano più di tante parole. Ma ecco i team:

Il team I Messinesi (Alex e Amanda) sta sviluppando una chat collaborativa real time, simile al famoso Slack. Oltre a realizzare il client, lo scopo dei ragazzi è quello di approfondire le conoscenze sulle tecnologie usate nel mondo del lavoro, come il .net framework, i pattern MVC e SignalR. In parallelo a questo progetto, infatti, i due stanno seguendo un corso sull’utilizzo di Visual Studio in modo da essere preparati al mondo dello sviluppo. Il nome del progetto è Notify.

 

Il team Random (Thomas e Luca) sta creando un bot a linguaggio naturale senza intelligenza artificiale, almeno per la prima release. Esso risponde automaticamente a domande relative agli scrittori italiani del passato. Mostra link, informazioni testuali ed immagini dell’autore richiesto. Ovviamente, l’utente può “chiacchierare” con il bot, che ad oggi sembra capire molto bene il dialogo. Il nome del progetto è Italian Authors ed è stato implementato su Wit.ai. Infine, potrà essere interfacciato a Facebook Messenger via Heroku. 


Il team Scrubs (Enea e Sebastiano) sta creando un bot a linguaggio naturale senza intelligenza artificiale, almeno per la prima release. Esso risponde automaticamente a domande relative a due argomenti che tutti noi dovrebbero approfondire, visto il loro calibro e i vantaggi che possono derivare. Parliamo di Sport e fotografia. Il bot mostra link, informazioni testuali ed immagini in base al percorso scelto dall’utente. Ovviamente, l’utente stesso può interagire con il bot. Il nome del progetto è CPP ed è stato implementato su Wit.ai. Infine, potrà essere interfacciato a Facebook Messenger via Heroku anch’esso. 
 


Il team Domotic (Nicodemo e Mattia), come il nome stesso descrive, sta realizzando un’applicazione real time che interagisce con un prototipo di “Smart House”. Con un semplice tap sul cellulare è possibile aprire e chiudere porte e finestre, accendere e spegnere le luci, ed, insomma, interagire con la casa. In questa release non è possibile pulire i pavimenti in automatico, ma per questo consiglio ai ragazzi di interagire con un robot in futuro . Il nome del progetto è Future House ed è stato creato utilizzando Arduino e php soprattutto.

 

Il team Human’s Recognizer (Marco e Francesco) sta creando un’app Android che, partendo da alcune fotografie di persone, ritorna informazioni sull’età e l’umore, stampando un messaggio di reazione in base all’umore stesso. Importantissima anche la gestione della privacy del dato, argomento sempre più importante ai giorni nostri. Il nome del progetto è iFinder ed utilizza lo sdk di Android e la Face API di Microsoft. 

Il team Bar Santa (Simone e Mirco) sta facendo invece “hacking” di una automobile radiocomandata. Il risultato è una super car con una videocamera a bordo, servomotori per le ruote, sensori e via discorrendo. Il tutto è racchiuso in una carrozzeria disegnata dai ragazzi, prodotta con la stampante 3D della scuola. Il nome del progetto è, appunto, Super Car (ricordate Kit?) ed è stata implementata sfruttando Raspberry Pi3 e Python come linguaggio di programmazione.

 

Infine, non voglio annoiarvi cL’ulitmo appuntamento coi ragazzi a scuola è stato veramente appagante. Mi sarei aspettato seri problemi da risolvere, questioni da affrontare. E invece è andato tutto bene. Questo è il motivo per il quale qui di seguito allegherò tante immagini. Credo proprio che sia il miglior metodo per descrivere come gli studenti stanno realizzando le loro idee. Ricordiamoci tutti però che stiamo parlando di diciottenni e non di startup!
 

Cosa posso dire? FANTASTICO! Questo è l’umore che ho proprio adesso. Sono contento perchè credo che gli studenti “spaccheranno” all’esame . Il prossimo post vi mostrerà i pitch video che stanno creando. Sono molto ansioso di vedere il lavoro, ma devo stare zitto, altrimenti rischio di fare spoiler, quindi…

Stay Tuned! 

L’ossimoro implicito dell’ortodossia innaturale nel cambiamento stagnante

Quando si parla di cambiamento, è interessante notare come la maggior parte delle aziende ascoltano con interesse ma poi alzano subito una prima barriera dicendo “…eh… sarebbe bello, ma da noi è difficile convincere le persone a cambiare!”.

change resistance

Tale affermazione è supportata da diversi report che, annualmente, aggregano dati di centinaia di aziende a livello globale per capire lo stato di adozione dei diversi approcci ed evidenziare quelli che sono i principali problemi annessi.

change barriers

Al top della classifica c’è proprio la resistenza al cambiamento: organizzativa, culturale e personale. La questione è che, se non si trova il modo di superare questo impedimento primario, l’adozione di nuovi Approcci Culturali come Agile, Lean e DevOps perde di qualsiasi significato, riducendosi all’adozione di alcune pratiche o strumenti che portano un micro beneficio locale senza contribuire in modo sistematico al riassetto generale in funzione del business.

In queste condizioni basta un piccolo intoppo o un cambiamento al vertice per tirare conclusioni del tipo: “Mah… in fondo Agile non è che funzioni poi tanto, torniamo ad un approccio più tradizionale con maggiore controllo su ciò che accade” o anche “Vabbè, ma poi noi manager che fine facciamo in questo nuovo modo di impostare le cose? Forse è meglio attendere”.

Questo atteggiamento è estremamente pericoloso per qualsiasi azienda che voglia essere competitiva sul mercato ed è paradossalmente sbagliato per definizione: ognuno di noi, in quanto Persona, cambia implicitamente in modo costante, giorno per giorno, in relazione alle esperienze, ai problemi, alle opportunità, alle esigenze e così via. Quindi come si fa a dire che una persona non è incline al cambiamento quando lo fa di continuo?

La questione è che quando il cambiamento è esplicitato ed “comandato” dall’organizzazione, le Persone sono portate ad assumere un atteggiamento diffidente e farsi 1000 domande del perché si sta avviando tale processo.

Il tutto è ben rappresentato dal noto diagramma seguente, che trova le proprie origini nella ricerca (1969) effettuata dalla psichiatra svizzera Elisabeth Kübler-Ross in relazione alle reazioni che mostravano i pazienti quando gli veniva comunicata la prognosi di morte (si lo so è decisamente triste la sua nascita).

change acceptance

La curva indica il livello di motivazione ad accettare il cambiamento che la Persona deve “subire” e che non è sotto la sua governance, e, su di essa, sono rappresentati i principali stati (fasi) emotivi in cui viene a trovarsi.

Lo studio originale individuava 5 stati: negazione, rabbia, contrattazione, depressione, accettazione, mentre negli anni le diverse contestualizzazioni hanno portato ad avere i 7 stati indicati nella figura precedente e generalmente accettati oggi:

  • Negazione, non accettazione della novità;
  • Realizzazione, si prende atto che qualcosa è avvenuto e se ne cerca riscontro;
  • Frustrazione, ci si difende implicitamente da quanto sta avvenendo;
  • Accettazione, si assume un atteggiamento rassegnato con scarsa propositività;
  • Sperimentazione, si cerca di capire come posizionarsi nel nuovo contesto;
  • Riflessione, si scava in dettaglio su ciò che il cambiamento sta comportando, integrandosi con esso e aumentando la propria produttività;
  • Integrazione, si è a proprio agio con il nuovo contesto.

Per quanto illuminate, questa curva non risponde però ad una domanda evidente: perché in alcuni casi il cambiamento ha successo ed in altri no? Per rispondere ad essa possiamo utilizzare l’Equazione del Cambiamento (o anche Formula di Gleicher) che descrive in maniera lineare quando scatta il cambiamento:

C = I x V x P > S

Quindi il Cambiamento avviene quando la risultate dell’Insoddisfazione (I), della Vision (V) e dei Primi Passi (P) compiuti nella sua direzione è maggiore dello Status quo (S) attuale. Tali fattori devono sussistere contemporaneamente per portare al cambiamento: se, banalmente, non vivo in modo insoddisfacente la situazione attuale, non c’è leva che mi porterà a cambiare.

Ma come possiamo fare allora a spingere al cambiamento le Persone e l’organizzazione nel complesso? Uno degli approcci più apprezzati è il Change Management Process (CMP) di John Kotter, professore alla Harvard Business School e autore del libro “Leading Change”, che consta di 8 passi:

  • Sviluppare un senso di urgenza
  • Costruire il team che guiderà il cambiamento
  • Creare una visione chiara
  • Comunicare la visione
  • Rimuovere gli ostacoli
  • Creare piccoli successi nell’immediato
  • Non mollare la presa
  • Fare attecchire il cambiamento

Questi passi sono spesso anche alla base anche degli ultimi ritrovati come The Lean Change Method di Jeff Anderson e, probabilmente, ognuno di noi ne ha avvertito la presenza durante una fase di cambiamento che l’ha interessato direttamente. Da essi è possibile estrarre alcuni principi base che gli agenti del cambiamento devono tener presenti nella loro azione di promozione al cambiamento stesso:

  • Awareness, creare una consapevolezza generale del perché è necessario cambiare;
  • Desire, far emergere il desiderio al cambiamento e spinge le persone coinvolte ad avere un atteggiamento proattivo;
  • Knowledge, esplicitare come il cambiamento dovrebbe avvenire;
  • Ability, costruire nuovi modelli organizzativi che supportino il cambiamento in modo naturale;
  • Reinforcement, sostenere e supportare costantemente il cambiamento.

Come affermato da Sun Tzu: “Combatti con metodi ortodossi, vinci con metodi straordinari“… e questo è solo l’inizio….

 

Stay tuned J

La dissonanza dell’effetto Zeigarnik nello spezzatino del tempo

Ogni strategia di business richiede un programma di attuazione che abbina la flessibilità alla chiarezza degli obiettivi da raggiungere, sia in termini di mercato che di profitto. Ciò implica che una fetta, più o meno consistente, della nostra azienda si organizza per concretizzare il programma stesso e far si che esso sia sempre coerente con la Vision e Mission aziendale, contribuendo a raggiungerla.

A livello operativo è nomarle creare appositi gruppi di lavoro che pianificano, gestiscono e reagiscono alla risposta del mercato e che sono spesso dedicati in modo quasi esclusivo all’obiettivo complessivo, ritenuto troppo complesso da poter essere gestito in concorrenza. Questo focus diventa fondamentale per permettere al gruppo di tenere sempre presente l’obiettivo generale da raggiungere, andando a contestualizzare il tutto rispetto alla propria organizzazione e al mercato di riferimento. Questi ultimi, come è noto, si influenzano a vicenda.

Nel mondo dell’IT, il focus e la concentrazione su poche attività specifiche, chissà perché, è quasi sempre visto come un limite o una incapacità, se non addirittura una scarsa attitudine al lavoro. Spesso le Persone sono considerate alla stregua di automi da poter allocare su attività multiple per percentuali ridicole di tempo senza neanche rendere chiaro il senso del loro stesso lavoro.

the multitasking myth

Tutti voi condividete con me quanto sia tristemente comune imbattersi in pianificazioni che creano il fantomatico “spezzatino del tempo”: “durante le prossime settimane, Tizio sarà alloca per il 10% sul progetto A, il 25% su quello B, il 50% su quell’altro e il 20 a supporto del precedente”.. ovviamente non ci si accontenta del 100%, ma si abbonda sempre un po’, cosa che ricorda l’esilarante scena in cui Totò diceva a Peppino De Filippo di non risparmiare sull’uso della punteggiatura: “…ma sì, fai vedere che abbondiamo… Abbondandis in abbondandum” (dettatura della lettera in Totò Peppino e la Malafemmena).

La domanda è: serve a qualcosa questo tipo di pianificazione? Si, a far impazzire le Persone e a ridurre drammaticamente la loro Produttività!

crazy productive people

Ma come si può anche solo minimante pensare che una Persona possa esprimersi professionalmente al meglio se la sua attività viene trasformata in una sorta di “zapping” su task disconnessi, costringendolo continuamente a cambiare focus operativo, sia rispetto al prodotto che rispetto alle relazioni che caratterizzano l’ambiente con cui operare.

È empiricamente dimostrato che una persona può seguire al massimo due progetti in contemporanea (non lo dico io, ma diversi studi antropologici): uno principale e uno secondario che serve anche come “distrazione”. Se si comincia a saltellare da un progetto all’altro, aumenta solo l’entropia, incrementando il costo del cambiamento di contesto, e acuendo il poco noto, ma estremamente significativo, effetto Zeigarnik.

Tale effetto (osservato e formalizzato dalla psicologa lituana Bluma Zeigarnik) evidenzia come, tipicamente, quando si lascia incompiuto un compito a cui ci si è dedicati, si sperimentano pensieri intrusivi che rendono difficile concentrarsi su altro: in soldoni ci ricordiamo più facilmente delle cose che non abbiamo portato a termine rispetto a quelle completate.
Questo perché, sembra essere nella natura umana l’indole di finire quanto avviato e, se non riusciamo a farlo, tendiamo a sperimentare una dissonanza.

Quindi, più cose lasciamo in sospeso più la nostra mente cerca di ricordarcele, impedendoci di concentraci su altro.

Morale della favola: diamo alle Persone la possibilità di portare a termine, al meglio, le proprie attività, evitando di impegnarle in decine di progetti differenti solo perché “così si utilizza al meglio la risorsa”: avvaliamoci della professionalità dei nostri collaboratori senza avere la presunzione di volerne gestire il tempo.

Stay tuned J

L’esponenziale negativo dell’equazione lineare

Lavorando con aziende di medie e grandi dimensioni, mi capita spesso di imbattermi in discussioni riguardanti l’outsourcing dell’IT e di come esso rappresenti spesso una strategia utilizzata dal top management per tagliare idealmente i costi.

Sicuramente, finché esiste un buon bilanciamento tra IT interno ed outsourcing, la strategia può effettivamente rilevarsi vincente, il problema è quando si passa all’outsourcing estremo: “l’IT è esclusivamente un centro di costo, per cui lo metto fuori e pago solo per i servizi che richiedo”.

In linea teorica, questa soluzione potrebbe sembrare la panacea di tutti i mali, tanto che i costi potrebbero essere teoricamente rappresentati da una comune equazione lineare:

oustourcing cost eq lineare

costi = Δ * TCF

con TotalCostFactor (TCF) = costo servizio * n. servizi richiesti

ragionando su un costo unitario medio uguale indipendentemente dalla tipologia di servizi.

Il Δ è un valore minore o uguale ad 1 (mediamente tra 0.8 e 1) che diminuisce all’aumentare dei servizi richiesti e rappresenta lo sconto che tipicamente si chiede quando la quantità di servizi richiesti aumenta (giornate).
In realtà questa pia illusione di risparmio comincia ben presto a scontrarsi con diversi problemi:

  • Perdita del know-how;
  • Perdita della sinergia tra strategia e operatività;
  • Riduzione della capacità di reazione rispetto alle esigenze del mercato;
  • Scarsa evidenza dei rischi e delle problematiche tecnico/tecnologiche.

che formano un insieme che definiremo “Independent Debt”.

Il “Debito di Indipendenza” spesso inizialmente sfugge anche alle più attente valutazioni del management, diventando con il tempo un boomerang per l’organizzazione che può venirsi a trovare letteralmente in balia dell’outsourcer e quindi soggetta al rischio che il potere contrattuale passi proprio nelle mani di quest’ultimo.

In tale scenario, i costi, forse inizialmente più bassi perché il fornitore voleva entrare nelle “nostre grazie”, cominciano a crescere (per inteso: le richieste possono essere legittime, non dettate da pigra furbizia) e si sommano a quelli dovuti all’impatto negativo dell’insieme dei problemi di cui sopra.

outsourcing cost

Ciò trasforma la nostra equazione lineare in una equazione esponenziale in cui i costi cominciano a salire in modo rilevante senza che si abbiano più gli strumenti per contrastare il fenomeno.

outsourcing cost eq esponenziale

costi = e^TCF  

con TCF = (Δ aumento dei costi servizi * costo servizio * n. servizi richiesti) + costo del Debito di Indipendenza

Nel momento in cui il peso non sarà più sostenibile, all’azienda resterà una sola cosa da fare: riportare tutto l’IT all’interno e… ricominciare da capo!

Questo comporterà un investimento che sicuramente annullerà e supererà tutti i benefici eventualmente ottenuti con la politica di outsorcing estremo.

 

Stay tuned J

DevOps e l’ecosistema Microsoft, parte 6: Conclusioni

Questa serie di articoli ci ha permesso di raccontare come la filosofia DevOps viene ottimamente supportata dalla piattaforma Visual Studio Team Services (VSTS, on-prem con TFS) con il supporto anche di altri applicativi a corredo, sempre Microsoft o di terze parti.

Per comodità si riporta la big picture generale da cui siamo partiti, andando nuovamente a sottolineare la centralità delle quattro aree di cui si è discusso.

ms devops philosophy

DevOps on Microsoft Platform

La cosa interessante è che VSTS è una piattaforma lineare in cui le diverse funzionalità sono messe ad incastro per supportare in modo logico le fasi di delivery e le azioni specifiche della delivery pipeline annessa.

others delivery pipeline

Delivery Pipeline

Da circa due anni, VSTS è diventata la piattaforma di riferimento per operare in modo organico in ottica DevOps (Magic Quadrant for Enterprise Agile Planning Tools, 27 aprile 2017), anche grazie alla sua totale indipendenza da framework di sviluppo proprietari e all’apertura sempre più convita e consolidata al mondo open source.

others gartner2017

Magic Quadrant for Enterprise Agile Planning Tools

Sia i dev, che gli ops, che il management, possono avere una visione d’insieme di quanto sta accadendo durante tutte le fasi di realizzazione della soluzione, intervenendo direttamente e dando suggerimenti laddove dovessero ravvisare potenziali problemi.

Utile sottolineare che la disponibilità delle dashboard di progetto consentono di “disegnare” viste opportunamente pensate per il management, che può, in tal modo, avere visione di quanto sta accadendo ed intraprendere azioni a supporto nel caso ci siano degli scostamenti rispetto alle attese di pianificazione e di business.

Operativamente, resta sempre e comunque indispensabile partire da un’azione di transformation che faccia prendere coscienza all’azienda dei suoi punti di forza e debolezza, andando ad agire sulle cinque leve evidenziate dal framework CALMS:

  • Culture, gestire il cambiamento focalizzandosi sulla collaborazione e la comunicazione;
  • Automation, rimuovere le azioni manuali lungo la catena del valore;
  • Lean, utilizzare i principi Lean per velocizzare, standardizzare e rendere efficienti le attività;
  • Metrics, misurare qualsiasi cosa, utilizzando i risultati per rifinire costantemente le attività;
  • Sharing, condividere le esperienze di successo e di fallimento per una crescita diffusa.

others calms

 CALMS, Damon Edwards e Jez Humble

Questo per evitare che si abbia l’illusione che il solo adottare VSTS significhi “essere DevOps” tranne poi risvegliarsi con una situazione deludente nonostante le grandi aspettative. Le cinque leve di CALMS devono essere contemplate ad ogni step di miglioramento con l’obiettivo di livellarne la maturità nel proprio contesto.

Si chiude qui questo intenso approfondimento. Sperando di avervi dato interessanti spunti sia su DevOps che su VSTS, vi saluto e vi invito ad inviarmi i vostri feedback.

 

Post precedenti della serie:

Sapevatelo VSTS: Variable group nelle build

Indubbiamente il build system di VSTS / TFS è una delle parti che sta introducendo molte innovazioni, soprattutto dopo la completa riscrittura iniziata oramai due anni fa. Una delle funzionalità più interessanti, e che è ancora poco conosciuta sono i gruppi di variabili, descritti qui.

In poche parole potete generare un insieme di variabili e dargli un nome, per poter poi riutilizzare questo inisieme di variabili in qualsiasi build del progetto.

In questo modo l’amministrazione delle build risulta molto semplificata, soprattutto in quei casi in cui abbiamo molte build con serie di passi simili (CI, SonarQube, Package, etc). Grazie ai Variable Groups possiamo generare un gruppo di variabili valido per tutto il progetto ed usarlo semplicemente in tutte le build di cui abbiamo bisogno.

Happy VSTS.

DevOps e l’ecosistema Microsoft, parte 5: Monitor and Learn

Con la build in produzione, diventa fondamentale avere un’appropriata strategia di monitoraggio, sfruttando le informazioni ottenute per fornire rapidamente feedback al team di delivery. Grazie ad una piattaforma integrata come VSTS è possibile applicare le pratiche di IT Intelligence (così come contemplate da Disciplined Agile 2) per capire, con dati aggiornati in tempo reale, il modo in cui il team di delivery opera, come si migliora e, soprattutto, quanto è realmente allineato con gli obiettivi di business.

ms devops 4

 Monitor and Learn

Su questo fronte, la risposta di Microsoft si concretizza in Application Insight, basato su Azure, e orientato a monitorare e misurare una serie di parametri vitali del nostro servizio: Disponibilità, Performance, Utilizzo, Errori, Dipendenze. Esiste anche una specifica estensione per VSTS, dal nome omologo, che consente di aggiungere una tile nella dashboard di progetto e visualizzare una sintesi dei dati.

azure application insight

Application Insight

In realtà, gli strumenti offerti da Azure analizzano anche altri aspetti più tecnici come, ad esempio, il traffico http in tempo reale, utili per intervenire in modo puntale direttamente alla radice del problema, in perfetta chiave Root Analysis.

azure http analisys

Analisi in tempo reale del traffico HTTP

Grazie al Continuous Monitoring si è in grado di acquisire una serie di informazioni che consentono di intervenire rapidamente in caso di problemi (si pensi ad un picco di utilizzo del nostro servizio in occasione di un evento particolare), reagendo prontamente e rendendo le relative azioni di risoluzione standard/automatizzate in modo che il problema possa essere gestito in anticipo o, come detto, risolto all’origine. Questo significa, ad esempio, creare una serie di test automatizzati specifici che siano in grado di riprodurre le particolari condizioni di operatività e verificare che le contromisure adottate siano efficaci. I miglioramenti ottenuti devono sempre essere misurabili oggettivamente, cosa fattibile con una serie di indicatori. Tra i più rilevanti, il cui controllo deve essere sempre un must, si evidenziano: il Mean Time To Detect (MTTD) e il Mean Time To Repair (MTTR).

ms devops 4b

Continuous Monitoring

Oltre a garantire l’affidabilità della soluzione, è indispensabile sfruttare al meglio le informazioni per cominciare a pensare al “next step”, ovvero capire se il tutto è in linea con quanto atteso dagli utenti e se si sta effettivamente creando Valore per loro e per la propria azienda.

Risulta quindi evidente la necessità di non perdere per strada le Retrospettive e le Review, tante care al mondo Agile. Si tratta dei momenti in cui il team e i diversi stakeholder si confrontano, analizzano cosa è accaduto durante l’ultimo ciclo di sviluppo e si pongono obiettivi di miglioramento raggiungibili per il successivo.

Per supportare queste attività, ad oggi, VSTS non dispone di elementi specifici e anche il marketplace ne è sprovvisto. Quello che si può fare è adottare un workaround come l’estensione Wiki che, aggiungendo un wiki al progetto, consente di memorizzare differenti tipologie di informazioni più o meno strutturate, tra cui, ad esempio, il resoconto della Retrospettiva e gli obiettivi di miglioramento identificati.

extension wiki

L’estensione Wiki

I feedback ottenuti dagli utenti (o dai key stakeholder) durante i diversi momenti di allineamento si tramutano in input per il Grooming del Backlog e quindi vengono gestiti implicitamente dalla (ri)organizzazione delle Feature e delle User Story. Il suggerimento è quello di riportare, sempre, i punti salienti delle discussioni e a tale scopo potete nuovamente sfruttare il wiki.

Con questo quinto appuntamento ci avviamo alla conclusione della serie di articoli dedicati a DevOps e l’ecosistema Microsoft. Nel prossimo ed ultimo post andremo a trarre un quadro riassuntivo di quanto detto e faremo delle considerazioni operative a riguardo.

 

Post precedenti della serie: