← Torna a tutti gli articoli
Sfide

Il Product Owner nei Team di Ingegneria Pesante: Come Farlo Funzionare

Di Marc Molas·28 settembre 2023·10 min di lettura

Il ruolo di Product Owner è stato progettato per i team di funzionalità che costruiscono prodotti rivolti agli utenti. Il PO parla ai clienti, capisce i loro problemi, scrive storie che descrivono i risultati desiderati, e il team di ingegneria trova il modo di costruirle. Quando funziona, è una chiara separazione delle responsabilità: il PO possiede il cosa e il perché, il team possiede il come.

Poi si tenta di applicare lo stesso modello a un team di piattaforma, un team di infrastruttura, o qualsiasi team in cui la maggior parte del lavoro è profondamente tecnico e invisibile agli utenti finali. Il PO scrive storie come "Migliorare le prestazioni del database" perché non capisce i dettagli. Il team ignora le storie e lavora sul backlog mentale del tech lead. Le sprint review diventano un teatro imbarazzante dove gli ingegneri fanno demo di cose che il PO non può valutare in modo significativo. Nessuno è contento.

Ho visto questo pattern svolgersi decine di volte. Il problema non è il PO e non sono gli ingegneri. È che il modello PO standard non è stato progettato per questo contesto, e nessuno lo adatta.

La Tensione Centrale

In un team di funzionalità, il PO porta la conoscenza del dominio che gli ingegneri non hanno. Conoscono il cliente, il mercato, i vincoli di business. Lo scambio di valore è chiaro: il PO fornisce il contesto su cosa costruire, gli ingegneri forniscono l'expertise su come costruirlo.

In un team di ingegneria pesante, questa dinamica si rompe. I "clienti" potrebbero essere altri team di ingegneria. Il "prodotto" potrebbe essere un API gateway, una pipeline CI/CD o una piattaforma dati. La conoscenza del dominio risiede negli ingegneri, non nel PO. Il PO è ora la persona con il minore contesto su cosa dovrebbe lavorare il team, che è esattamente l'opposto di come dovrebbe funzionare il ruolo.

Questo crea tre specifiche modalità di fallimento:

Il PO timbra. Il PO delega completamente al tech lead, approvando tutto ciò che il team propone senza input significativo. La sprint planning è una formalità. Il PO esiste sulla carta per soddisfare il processo ma non aggiunge valore.

Il PO frustrato. Il PO cerca di applicare i propri istinti di prodotto ma viene continuamente bloccato. "Non capisci i vincoli tecnici." Si sente escluso e risponde o disimpegnandosi o affermando la propria autorità attraverso l'unica leva che ha: la priorità.

Il PO bloccante. Il PO insiste nel controllare le priorità senza contesto tecnico. Declassifica il lavoro tecnico critico perché non si mappa a risultati di business visibili. Il debito tecnico si accumula, la piattaforma si degrada e alla fine qualcosa si rompe in produzione.

Pattern di Comunicazione che Funzionano

La soluzione non è rimuovere il PO dai team di ingegneria pesante. È ridefinire cosa contribuisce il PO e come comunica il team.

Tradurre il lavoro tecnico in impatto sul business

Ogni pezzo di lavoro tecnico ha una ragione di business. Il compito del team è renderla esplicita. Non come esercizio politico — come genuino sforzo di connettere ciò che stanno costruendo al perché è importante.

Male: "Refactorizzare il consumer della coda messaggi per usare l'elaborazione batch." Meglio: "Ridurre la latenza di elaborazione degli ordini da 12 secondi a meno di 2 secondi, che influisce direttamente sulla conversione al checkout."

Male: "Migrare da Jenkins a GitHub Actions." Meglio: "Ridurre la nostra pipeline di deploy da 45 minuti a 12 minuti, consentendo ai team di spedire 3 volte più frequentemente con la stessa fiducia."

Questo non è semplificare le cose. È completare il pensiero. Gli ingegneri che sanno articolare l'impatto sul business del loro lavoro tecnico sono più efficaci, indipendentemente da chi è il loro PO.

Usare spike story per l'incertezza

Quando il team non conosce l'approccio giusto, non fingere che lo sappia. Una spike story è un compito di ricerca time-boxed con un output definito: non codice funzionante, ma una raccomandazione.

"Spike: Valutare tre approcci all'elaborazione eventi in tempo reale. Output: ADR con raccomandazione. Time-box: 3 giorni."

Il PO può capire e priorizzare questo. Ha un deliverable chiaro e un investimento di tempo chiaro. Quando lo spike si completa, il team e il PO discutono insieme la raccomandazione, e le storie di implementazione che seguono sono meglio definite perché l'incertezza è stata risolta.

Stabilire un budget per le storie tecniche

Questo è il singolo pattern più efficace che ho visto per gestire il lavoro tecnico all'interno di un processo guidato dal PO. Il team e il PO concordano su un'allocazione fissa — tipicamente il 20% della capacità dello sprint — dedicata al miglioramento tecnico che il team prioritizza indipendentemente.

Le regole sono semplici:

  1. Il team sceglie cosa va nel 20%. Non serve approvazione del PO.
  2. Il team comunica su cosa sta lavorando e perché (trasparenza, non permesso).
  3. Il 20% non è negoziabile. Non viene saccheggiato quando si avvicina una scadenza.
  4. Il restante 80% segue la normale prioritizzazione del PO.

Questo funziona perché rimuove la negoziazione costante. Il PO non deve capire perché il team ha bisogno di aggiornare l'ORM o refactorizzare il middleware di autenticazione. Hanno già concordato che il 20% della capacità è del team da allocare. E il team non deve giustificare ogni decisione tecnica a qualcuno che non ha il contesto per valutarla.

Diritti Decisionali: Chi Decide Cosa

L'ambiguità su chi decide cosa è la causa principale della maggior parte dei conflitti PO-ingegneria. Rendetelo esplicito:

Il PO decide:

  • Quali problemi di business risolvere e in quale ordine
  • La tempistica del rilascio relativa alle esigenze di business
  • I compromessi di scope quando il tempo è limitato ("spedire con soluzione manuale ora, automatizzare dopo")
  • Se una funzionalità è "abbastanza completata" dal punto di vista dell'utente

Il tech lead decide:

  • Come implementare una soluzione
  • Scelte di architettura e tecnologia
  • Standard di qualità tecnica (copertura dei test, requisiti di code review)
  • Se qualcosa è tecnicamente pronto per la spedizione (nessun bug critico noto, prestazioni accettabili)

Decidono insieme:

  • Cosa è fattibile entro un determinato periodo di tempo
  • Quando il debito tecnico dovrebbe essere prioritizzato rispetto alle funzionalità
  • Come gestire gli incidenti e il loro follow-up
  • Allocazione della capacità del team tra lavoro sulle funzionalità e lavoro tecnico

Scrivetelo. Mettetelo sul wiki del team. Fatevi riferimento quando sorgono conflitti. La maggior parte dei disaccordi tra PO e tech lead deriva da una delle parti che prende una decisione che l'altra ritiene di sua competenza. Un framework esplicito lo previene.

Quando il PO Dice "Fai Solo Funzionare"

Ogni ingegnere ha sentito questo. Un PO che non capisce la complessità tecnica la liquida: "Non mi importa dell'implementazione, fallo funzionare entro giovedì."

La tentazione è di arrabbiarsi o di conformarsi e tagliare gli angoli. Nessuno dei due aiuta. Quello che funziona è tradurre il vincolo in opzioni.

"Capisco che ne hai bisogno entro giovedì. Ecco tre opzioni:

  1. Soluzione completa: 2 settimane. Gestisce tutti i casi limite, è ben testata, production-ready.
  2. Soluzione all'80%: entro giovedì. Copre il flusso principale, necessita di intervento manuale per i casi limite, aggiunge 3 giorni di debito tecnico che dovremo affrontare nel prossimo sprint.
  3. Prototipo: entro mercoledì. Dimostra il concetto, non sicuro per la produzione, dovrebbe essere ricostruito."

Ora il PO ha una vera decisione da prendere. Potrebbe scegliere l'opzione 2, il che va bene — ma sta facendo un compromesso informato, non una richiesta ignorante. E il debito tecnico è registrato, non nascosto.

Il Modello di Partnership

Le migliori relazioni PO-ingegneria che ho visto funzionano come una partnership tra il PO e il tech lead, non una gerarchia dove uno riporta all'altro.

Si parlano ogni giorno, non solo nelle cerimonie. Il tech lead avvisa il PO dei rischi tecnici emergenti. Il PO dà al tech lead segnali precoci sulle priorità di business che cambiano. Presentano un fronte unito al team e risolvono i loro disaccordi privatamente.

Questo richiede due cose: un PO che rispetti genuinamente la complessità dell'ingegneria senza dover capire ogni dettaglio, e un tech lead che rispetti genuinamente il contesto di business senza liquidarlo come "non tecnico."

Chez Conectia, i nostri ingegneri si uniscono a team con tutti i tipi di dinamiche PO — da partnership perfettamente funzionanti a team in cui la relazione ha bisogno di lavoro. Poiché i nostri ingegneri sono senior, sanno come comunicare le decisioni tecniche in termini di business, come respingere rispettosamente quando le priorità non tengono conto della realtà tecnica, e come costruire la fiducia che rende produttiva la relazione PO-ingegneria. Questa non è una competenza di processo — è una competenza di seniority.

Il ruolo del PO nei team di ingegneria pesante non è rotto. Ha solo bisogno di essere adattato. E l'adattamento non è complicato: pattern di comunicazione chiari, diritti decisionali espliciti e due leader che rispettano il dominio dell'altro.


Hai bisogno di ingegneri senior che sappiano lavorare con i product owner, non intorno a loro? Parla con un CTO — i nostri ingegneri LATAM portano le competenze comunicative e la profondità tecnica che fanno funzionare davvero i team cross-funzionali.

Pronto a costruire il tuo team di ingegneria?

Parla con un partner tecnico e distribuisci sviluppatori validati da CTO in 72 ore.