Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti

Nel numero:

314 marzo
, anno 2025

Un backlog non tanto buono

I parte: Un progetto con qualche difficoltà

Pino Decandia
Pino Decandia

Appassionato di software fin da ragazzino, ne ho fatto una professione che mi ha sempre entusiasmato.
Presto mi sono reso conto che mi piaceva ancora di più ragionare in termini di processi di produzione del software e delle relazioni che lo circondano: il passo successivo è stato trasformare l’interesse in una professione, quella di Agile Coach.
Sono passato attraverso moltissime esperienze — tecniche, consulenziali e imprenditoriali — che mi consentono di avere una "cassetta degli attrezzi" piuttosto ampia e, soprattutto, flessibile.

backlog non tanto buono

Un backlog non tanto buono

I parte: Un progetto con qualche difficoltà

Picture of Pino Decandia

Pino Decandia

  • Questo articolo parla di: Lean/Agile, Organizzazione aziendale, Project Management

Introduzione

In questi due articoli, vorrei raccontare quel che è accaduto nel corso di un progetto al quale ho preso parte in qualità di Agile Coach, o di “consulente” se volete, e che ha rappresentato un episodio secondo me abbastanza istruttivo perché ha comportato una serie di “deviazioni” dagli standard.

Assecondando una delle massime più citate in ambito Agile, ossia “Rispondere al cambiamento più che seguire un piano prestabilito”, è stato necessario arrivare a un assetto funzionante attraverso parecchie deviazioni rispetto a quel che inizialmente era stato previsto dagli attori in gioco. Si è trattato di un lavoro “sartoriale”: del resto, lo ripetiamo sempre, nel nostro campo la soluzione pronta all’uso e adatta per tutti non esiste.

Ma prima di vedere che cosa è successo, cerchiamo di descrivere il contesto.

 

Il contesto

Il cliente che ci ha contattato è una società finanziaria: ha investito nella creazione di un prodotto software che gli consentisse di esercitare in maniera coordinata le proprie attività. Nel loro caso si tratta di prestiti personali e finanziamenti per l’acquisto presso negozi: detto così potrebbe apparentemente sembrare semplice, ma ci sono invece tutte le complicazioni relative.

Terze parti

Come succede spesso, e per motivi di struttura, la società finanziaria, che poi ci ha contattato per seguire il progetto, si è affidata a terze parti per l’esecuzione di sezioni del lavoro; queste suddivisioni del lavoro erano state pensate in maniera assolutamente sensata, almeno in un’ottica “tradizionale”.

Quindi la situazione prevedeva che ci fosse

  • un fornitore per l’analisi funzionale;
  • un fornitore per lo sviluppo software;
  • un fornitore per la piattaforma di credito;
  • un fornitore per il documentale.

Ad ognuna delle società era stata richiesta una valutazione preliminare su requisiti di alto livello e, subito dopo, un’offerta “a corpo” sulla base della comprensione di quello che c’era da fare.

 

La gestione del progetto

Quando siamo arrivati noi in qualità di “esperti di Agile”, il progetto era alla fine della fase di analisi e prevedeva un meccanismo di governance standard: un piano di progetto, aggiornato con intervalli di due settimane con lo stadio di avanzamento.

Figura 1 – Il cronoprogramma del progetto, secondo una impostazione di Project Management tradizionale…
Figura 1 – Il cronoprogramma del progetto, secondo una impostazione di Project Management tradizionale…

 

Fino a questo punto, l’unico fornitore che effettivamente stava lavorando era quello incaricato dell’’analisi funzionale e tecnica. Il fornitore di sviluppo partecipava a meeting di allineamento su base regolare, ma non aveva cominciato a rilasciare software funzionante, in attesa della conclusione della fase di analisi. Era anche stata stabilita una data di consegna, sulla base delle ipotesi di durata delle varie fasi stabilite dai diversi fornitori per quel che atteneva alla parte di loro competenza.

 

La crisi del settimo… mese

Subito dopo il nostro arrivo, quando abbiamo cominciato a lavorare davvero a questa situazione, eravamo esattamente alla fine dell’analisi funzionale e dunque abbiamo assistito direttamente alla prima settimana di inizio dello sviluppo. O meglio, siamo stati testimoni del fatto che il responsabile dell’azienda di sviluppo, aveva cominciato a leggere approfonditamente di documenti di analisi funzionale. E della sua reazione: dichiarare che la data proposta per la consegna del prodotto finito non aveva senso e che il piano andava rivisto. Di fatto, gli sviluppatori stavano mandando un messaggio chiaro ma poco digerible: con queste premesse, non consegneremo nei tempi da voi previsti.

Chiaramente questa presa di posizione creava scompiglio: i sette-otto mesi di analisi sembravano persi, il team tecnico dichiarava che, ora che iniziava lo sviluppi, l’analisi non rispecchiava lo stato delle cose da fare.

Da parte sua, l’azienda principale, la finanziaria che ci aveva coinvolto e che, in ultima istanza, era il nostro cliente, si interrogava sul senso di aver fatto delle riunioni in precedenza, i vari attori cercavano di capire di chi fosse la responsabilità per questo grosso intoppo e si puntava il dito sulle possibili incomprensioni.

La litania delle riunioni

Ma occorreva trovare una via d’uscita. E il nostro cliente ha reagito con una serie di iniziative: riunioni da cui dovevano uscire azioni immediata, coinvolgimento di tutti gli attori già presenti nel progetto e anche di altri esterni, in una progressiva escalation.

Inutile dire che le varie riunioni erano diventate tese e ripetitive: invece di cercare soluzioni pratiche, si assisteva a un rimpallo di responsabilità, ad accuse neanche tanto velate, a una vera e propria litania di frasi tipiche di queste situazioni:

“L’analisi non è chiara”

“No, l’analisi è chiarissima, siete voi che non la capite”

“Questa cosa però non l’avevate detta”

“Ma il contratto è chiaro”

“No, su questo il contratto non è chiaro per niente”

“Questa è una change request”

“È che non siete adeguati, non avete il team adatto”

“Sì, comunque dobbiamo passare a RedShift”

“Che roba è RedShift?”

“…”

“Di chi è la colpa?”

Fatalmente le persone mostravano una crisi di fiducia reciproca. Era iniziata la corsa alla protezione.

 

Cosa c’entra Agile

A questo punto, i lettori si staranno chiedendo: “Sì, ma in tutto questo, cosa c’entra Agile?”.

Niente.

Almeno a prima vista. Perché le dinamiche erano lontanissime da quelle necessarie per uno sviluppo con approccio agile. Non nego che era molto forte la tentazione di dire: “Prima finite di litigare e mettetevi d’accordo almeno sulle basi… e poi cominceremo a lavorare insieme…”

Il buon coach agile, in queste situazioni, dovrebbe puntare a far emergere le soluzioni più adatte al contesto direttamente dagli attori coinvolti più che proporre dall’alto cosa fare e non fare. Ma, in questo caso, agire in questo modo era abbastanza difficile, visto che avevamo un mandato abbastanza “confinato”: lavorare principalmente sull’azienda finanziaria, e poter agire sono in misura molto ridotta sugli altri attori, cioè i fornitori dell’azienda principale. Non era una situazione ottimale.

 

Strategia per uscirne

Di fatto, ero lì e dovevamo fare qualcosa. Trovare una strategia per uscire dall’impasse, o perlomeno una serie di azioni che potessero riportare i partecipanti a concentrarsi sul prodotto da realizzare, più che stare a dibattere indefinitamente su eventuali “colpevoli” o sul punto in cui il meccanismo si era inceppato.

Visto che il nostro referente fondamentale era il nostro cliente, l’azienda finanziaria, abbiamo cercato di capire cosa desiderasse veramente il cliente. E il cliente voleva sostanzialmente due cose:

Primo: il progetto doveva andare avanti. Non era possibile interromperlo e annullarlo, perché c’erano degli investimenti di un certo tipo che l’azienda non poteva permettersi di far fallire.

Secondo: voleva una chiarezza sulla data di consegna. Perlomeno, non voleva scoprire a un punto avanzato del progetto che le date ipotizzate non sarebbero state rispettate. Questo era comprensibile, perché è un desiderio che tutti hanno. Occorreva capire in che modo “formulare” quella data. Alla fine, non erano neanche così rigidi sulle date, che diventavano “trattabli”, ma volevano avere sicuramente maggiore chiarezza sulla roadmap.

Obiettivi comuni

La prima idea che ho avuto, sperando che potesse contribuire a rimettere il progetto nella giusta direzione, è stata quella di individuare dei possibili obiettivi comuni su cui focalizzarsi e che avrebbero avuto la forza di tenere insieme le persone, orientandole verso un’interazione collaborativa ed efficace.

In teoria, sembrava un’ottima idea. Ma quali erano questi obiettivi comuni? La buona riuscita del progetto? Ma che significa “buona riuscita”? Per le diverse parti in causa poteva addirittura avere significati che nei fatti si dimostravano contrastanti.

Il sucesso sul mercato di questa iniziativa poteva apparire un obiettivo più concreto e “unificante”: ma come lo avremmo misurato nell’immediato, visto che era qualcosa di lontano nel tempo?

In più ognuno aveva proposto e sottoscritto un contratto “a corpo”, modalità che minava il ragionamento.

Di fatto, gli obiettivi comuni delle varie parti del progetto non erano comuni per niente: le persone intanto continuavano a litigare e questo mi ha definitivamente convinto che parlare di obiettivi comuni era prematuro e inutile finché gli animi non si fossero calmati.

 

Immersione nella realtà

Messi da parte gli obiettivi comuni, ho fatto una valutazione generale del quadro, sperando che dalla realtà dei fatti emergessero quelle iniziative che potessero corrispondere ai desideri del cliente: andare avanti con il progetto e avere un’idea affidabile di roadmap, con date di consegna attendibili, per quanto flessibili.

Occorreva pertanto trovare un meccanismo che:

  • riconoscesse lo sforzo di analisi già fatto;
  • valorizzasse le attività tecniche preparatorie;
  • portasse il linguaggio degli incontri a un livello comprensibile a tutte le parti (senza gerghi tecnici/funzionali laddove possibile);
  • riducesse la complessità del tutto.

E, in tutto questo, occorreva salvaguardare le persone, perché, anche se magari a loro non era chiaro, a me cominciava a risultare abbastanza evidente che, alla fine, tutti stavano cercando di fare il loro lavoro bene. Anche se adesso litigavano.

Per andare un po’ più a fondo, se vogliamo individuare il problema, questo era in parte nel meccanismo di organizzazione del progetto e di scelta dei fornitori da parte dell’azienda finanziaria. Che, sia chiaro, aveva agito in perfetta buona fede, ma replicando un meccanismo che aveva funzionato in altre occasioni, per esempio nell’ambito della gestione finanziaria: analizzo le necessità, individuo chi o cosa meglio risponde a queste necessità, guardo al mercato e acquisto i “pacchetti”, i “moduli” che si domostrano migliori. Li combino e funzionano. Ed è quello che era stato fatto in questa occasione: scelgo chi è bravo a fare l’analisi funzionale, chi sa sviluppare bene software, faccio un contratto con chi cura il documentale e tutto fuzionerà a dovere. Ma nei sistemi complessi non va esattamente così.

Figura 2 – Il modello dell’acquisto dei moduli software che viene riproposto sugli attori di un progetto complesso.
Figura 2 – Il modello dell’acquisto dei moduli software che viene riproposto sugli attori di un progetto complesso.

 

Quindi bisogna dire chiaramente che nessuno stava sabotando deliberatamente il progetto: non era quello il problema. Il tema era diverso, ma di fatto le persone avevano smesso di parlarsi.

Ipotesi alternative

Ho provato quindi a ipotizzare altre soluzioni: cosa si poteva fare per prendere un gruppo di persone e “costringerle” in qualche modo a guardare tutte in una stessa direzione?

Fare un team cross funzionale? Ideale in termini agili, ma nel concreto impossibile in questa situazione, con aziende diverse che, anche per motivi contrattuali, non erano molto disponibili.

Fare in modo che le persone si mettessero una nei panni dell’altra? Sempre giusto, ma sarebbe stato necessario anzitutto che si parlassero. E, sempre per i motivi di suddivisione dei compiti non solo fra persone diverse, ma fra persone di diverse aziende, la cosa era abbastanza improponibile.

 

La soluzione non convenzionale

Scartate le ipotesi appena elencate, ho provato comunque a vedere se esistessero alcuni artifacts agili che in grado di aiutare. Ed è qui che mi è venuta in mente un’idea, che lì per lì ho anche valutato come orribile, ma che in questa peculiare situazione poteva avere un senso.

In definitiva, era necessario che le persone iniziassero a concentrarsi su qualcosa di diverso rispetto a quello che era stato fatto fino a quel momento, pur salvaguardando e riconoscendo gli sforzi di ognuno.

Qual è il modo più rapido, e anche effimero, di spingere le persone a unirsi e a comportarsi in maniera coesa, lasciando alle spalle divisioni e incomprensioni?

È qualcosa che, nella storia delle vicende umane, si è visto tante volte e che, nelle nostre società postmoderne, ancora continua a funzionare: creare un nemico comune. Esattamente: percepire qualcosa come minaccia da combattere avrebbe spinto le persone a concentrarsi su quello e a superare conflitti e divisioni. Non si trattava propriamente di un obiettvo comune, quanto piuttosto, appunto, di un nemico comune. Un bel diversivo: qualcosa che costringesse le persone delle varie aziende a parlare di questo nemico e di come sconfiggerlo.

La mia speranza era che poi, piano piano, parlando tra di loro di un nemico comune, alla fine le persone si accorgessero che dall’altra parte c’erano altre persone che fanno il loro lavoro cercando di dare il meglio, e questo avrebbe contribuito a disinnescare le tensioni.

Ovviamente, però, il nemico non doveva essere un’azienda o, peggio ancora, una persona, ma doveva essere qualcosa di più effimero.

E qui, invece, l’Agile c’entra, perché il candidato più adatto a ricoprire il ruolo di “nemico comune” era un bel Product Backlog. Anzi, un brutto, quasi orribile, Backlog. Un “irraggiatore di informazioni” su cui i diversi attori avrebbero potuto concentrarsi.

 

Conclusioni

Ma di come si è comportato il nostro “nemico comune”, ossia di come questo specifico backlog-non-tanto-buono è stato creato, di come è stato proposto e degli effetti che ha sortito sull’andamento del progetto parleremo nella seconda parte, concludendo il nostro racconto.

 

 

Facebook
Twitter
LinkedIn
Pino Decandia
Pino Decandia

Appassionato di software fin da ragazzino, ne ho fatto una professione che mi ha sempre entusiasmato.
Presto mi sono reso conto che mi piaceva ancora di più ragionare in termini di processi di produzione del software e delle relazioni che lo circondano: il passo successivo è stato trasformare l’interesse in una professione, quella di Agile Coach.
Sono passato attraverso moltissime esperienze — tecniche, consulenziali e imprenditoriali — che mi consentono di avere una "cassetta degli attrezzi" piuttosto ampia e, soprattutto, flessibile.

Picture of Pino Decandia

Pino Decandia

Appassionato di software fin da ragazzino, ne ho fatto una professione che mi ha sempre entusiasmato. Presto mi sono reso conto che mi piaceva ancora di più ragionare in termini di processi di produzione del software e delle relazioni che lo circondano: il passo successivo è stato trasformare l’interesse in una professione, quella di Agile Coach. Sono passato attraverso moltissime esperienze — tecniche, consulenziali e imprenditoriali — che mi consentono di avere una "cassetta degli attrezzi" piuttosto ampia e, soprattutto, flessibile.
Tutti gli articoli
Nello stesso numero
Loading...

Il web al tempo della GEO (Generative Engine Optimization)

I parte: Struttura e ricerca delle informazioni

DDD, microservizi e architetture evolutive: uno sguardo d’insieme

X parte: Il ruolo del Software Architect

FIWARE: Open APIs for Open Minds

IV parte: Sistema di ricarica intelligente per veicoli elettrici

Nella stessa serie
Loading...

Un backlog non tanto buono

II parte: Caratteristiche e ruolo del backlog.

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a redazione@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte