Caro Product Owner, di cosa sei realmente owner?

Avete presente la differenza tra un prodotto, una specifica funzionalità ed un componente di prodotto?
Questa distinzione – magari non immediata per tutti – è alla base della classificazione che Roman Pichler adotta per chiarire l’ambito di intervento del Product Owner.
Ancora oggi infatti c’è una certa confusione su questa figura perché si tratta di un ruolo complesso, sfaccettato e che può essere applicato in modo differente a seconda dei contesti organizzativi e della dimensione dell’azienda.

Ma partiamo dalle basi…
Di cosa si occupa il Product Owner?
Il Product Owner è colui che gestisce il prodotto per conto dell’organizzazione.
Avrà quindi due referenti principali: da una parte gli utenti o clienti, dall’altra l’azienda stessa che commercializza il prodotto.
Il prodotto è un mezzo per creare valore.
Qualcosa in grado di risolvere un problema o generare un beneficio per gli utilizzatori e i clienti, ma anche un asset tangibile dell’azienda in grado di generare revenue o stimolare la vendita di altri prodotti/servizi.

Secondo questa definizione è legittimo chiedersi se il Product Owner gestisca uno o più prodotti e se ciò che gestisce sia davvero un prodotto.
L’ambiguità è data dal fatto che spesso le funzionalità e i componenti – che sono parti del prodotto – vengano considerati essi stessi prodotti, pur non essendo in grado di generare valore da soli.

Analizziamo più nel dettaglio questi concetti.
Una funzionalità è un attributo del prodotto con cui l’utente può interagire.
Parliamo ad esempio di una funzione di ricerca e navigazione, del log-in o del check-out per effettuare un acquisto.
Tutti questi sono step dello user journey, non prodotti essi stessi.
Il valore per l’utente è dato dall’esperienza complessiva, non dalla singola funzionalità (avete mai sentito discorsi di questo genere? “Non sono riuscito ad acquistare il prodotto che volevo, ma sono rimasto soddisfatto del semplicissimo processo di registrazione”. Mai visto!).
Colui che gestisce singole funzionalità di prodotto è un Feature Owner.

D’altra parte un componente è un building block del prodotto, un elemento della sua architettura come ad esempio un database management system, un data access layer o la user interface stessa.
Anche in questo caso si tratta di una parte del prodotto (uno strato a ben vedere), non del prodotto nell’accezione di veicolo di valore.
Qui il concetto nella testa dell’utilizzatore finale si fa sempre più labile. Come è organizzato tecnicamente il prodotto non ha alcun importanza per il cliente (“Basta che funzioni!”).
Chi gestisce singoli elementi dell’architettura del prodotto è un Component Owner e di norma ha un background tecnico dato l’ambito specializzato di intervento.

Anche a livello della product ownership vera e propria è possibile fare una distinzione.
Un conto è gestire un prodotto a livello strategico, altra cosa è gestirne l’evoluzione day-by-day.
Pur essendo questi due livelli intercomunicanti, le skill e le competenze richieste sono profondamente diverse.
Pichler parla in questo caso di “Big Product Owner” e “Small Product Owner”.

Il Big Product Owner è responsabile sia della strategia sia della tattica, ma delega l’esecuzione della seconda ad altre figure.
E’ colui che elabora la vision di prodotto e ne definisce gli obiettivi. Deve sapere come il prodotto crea valore, chi sono i clienti, qual è la sua value proposition distintiva e come si differenzia rispetto ai competitor.
Il Big Product Owner definisce la roadmap di prodotto, gestisce gli stakeholders, interagisce con i customer e gli user, produce forecast e tiene traccia delle performance.

Lo Small Product Owner è responsabile di attività di tipo tattico.
Gestisce e prioritizza il backlog, scrive le user stories, si occupa del release planning, partecipa alle cerimonie Scrum e lavora a diretto contatto con il team di sviluppo e lo Scrum master avendo prevalentemente a che fare con i vincoli di prodotto (tempi, costi e ambito).

Ovviamente il tipo di Product Owner adottato in un determinato contesto è in stretta correlazione con l’organizzazione dei team di lavoro e la dimensione dell’azienda.
Se l’azienda adotta component team avremo dei Component Owner, se utilizza feature team potremo avere sia Feature Owner sia Product Owner.
La differenza tra Big e Small Product Owner può dipendere anche dalla dimensione dell’azienda: in start-up, realtà medio-piccole e aziende grandi dove sono stati adottati framework di scaling sono più facilmente presenti Big Product Owner (figure più vicine all’ambito del product management classico); in realtà di medie dimensioni dove sono presenti più prodotti o prodotti maturi la responsabilità è più spesso ripartita tra Small Product Owner, mentre il vero controllo del prodotto è tenuto dal management o da figure dedicate (es. Head of Product, Business Owner, ecc.).

E voi che tipo di Product Owner siete? Avete sperimentato questi diversi livelli di gestione? Avete preferenze a riguardo? Mi piacerebbe confrontarmi con chi ha esperienze di prima mano su questo tema.

Per approfondimenti sull’argomento trovate a questo indirizzo la registrazione del webinar di Roman Pichler sul ruolo del Product Owner che ha ispirato questo post.

Come gestire user stories tecniche

Tre approcci ai requisiti tecnici

Capita a tutti di dover inserire tra le attività del team task di tipo prettamente tecnico.
In questo articolo vi porto l’esempio di 3 modi differenti di gestire questo tipo di richieste.
Innanzi tutto ha senso parlare di user stories tecniche?
Mhhh, dipende…
Se siamo in grado di individuare nella richiesta un soggetto, un oggetto e un beneficio esplicito è utile definirla attraverso il format della user story.
Se non è così e ci si spacca la testa per far rientrare una richiesta in un modello che non le appartiene in alcun modo meglio evitare del tutto. Non l’ha prescritto il medico che tutto ciò che entra nel backlog sia esclusivamente una user story!
Ci può essere molto altro, ad esempio task di bug fixing, attività architetturali, prototipi, spike e via così.

Ha senso tracciare queste attività tecniche?
Assolutamente sì! Il team spende del tempo su questi task così come sull’implementazione di nuove funzionalità ed è importante tenerne traccia per monitorarle e pianificare il modo migliore di gestirle nel tempo.

Come affrontare user stories tecniche

Sprint funzionali e sprint tecnici

Quando nel corso del tempo non c’è stata un’attenzione continuativa alla qualità e al refactoring possono presentarsi casi in cui il codice legacy ha raggiunto livelli decisamente problematici.
In alcuni di questi casi mi è capitato di vedere i team di sviluppo alternare sprint in cui venivano implementate nuove funzionalità e sprint tecnici dedicati soprattutto al refactoring e alla “messa in sicurezza”.
Ad esempio a 3 sprint funzionali seguiva uno sprint tecnico.
Dico subito che non sono una fan di questa soluzione perché per la mia esperienza produce più svantaggi che vantaggi.

Svantaggi
E’ di difficile “digestione” da parte del business che fatica a comprendere uno stop forzato ogni mese e mezzo; è spesso difficile individuare un chiaro obiettivo dello sprint tecnico; il product owner ha difficoltà a misurare il valore di questo tipo di interventi (che peraltro poco si prestano a demo); richiede una maturità di gestione se possibile ancora più elevata da parte del team.
Infine spesso e volentieri questo sforzo non porta comunque un miglioramento effettivo in tempi brevi del codice legacy.

Vantaggi
Il team è fortemente focalizzato sulla risoluzione degli aspetti tecnici, li gestisce in totale autonomia e non subisce interruzioni.

User stories funzionali e tecniche nel medesimo sprint

Questa modalità di gestione è piuttosto frequente.
Il tempo disponibile dello sprint è suddiviso tra sviluppi funzionali e attività di tipo tecnico. Diciamo che il team concorda con il product owner di dedicare ad esempio l’80% del tempo ai primi ed il restante 20% ai secondi.
E’ il classico esempio di “un colpo al cerchio e uno alla botte”…

Svantaggi
Il team fa contest switching all’interno dello sprint (si tratta spesso di attività a sé stanti rispetto al resto); è difficile individuare un unico sprint goal.
Richiede comunque tempi lunghi per vedere effettivi benefici a livello di legacy.

Vantaggi
E’ un compromesso più che accettabile per il business perché non richiede periodicamente uno stop delle attività; questa modalità di gestione può essere adottata in ogni sprint; al termine di ogni iterazione consente di avere workable software da mostrare durante le demo.

Aspetti funzionali e tecnici nella medesima user story

Questa è un’altra possibilità e devo dire che tra tutte è quella dalla quale sento di aver tratto maggior beneficio.
In sostanza in ogni storia il team stima una quota parte di refactoring del codice e/o dei test. Questo si traduce in prima battuta in user stories che vengono valutate con un peso maggiore (e quindi in una diminuzione iniziale della velocity del team), ma in un tempo relativamente breve la situazione torna alla normalità e – addirittura – a migliorare.
E’ importante notare che richiede grande maturità tecnica ai membri del team e la capacità di fare solo ciò che è opportuno e nulla di più (no virtuosismi se non sono necessari).

Svantaggi
Il refactoring viene effettuato sulle sole storie funzionali lavorate nel corso dello sprint; iniziale diminuzione della velocity.

Vantaggi
Non ha effetti collaterali sugli stakeholder; questa modalità di gestione può essere adottata continuativamente; aumenta da subito la qualità del software e l’attenzione del team a questo aspetto; nel tempo porta grande confidenza ai dev sulle parti che hanno toccato e maggiore velocità di sviluppo.

E voi quale tipo di approccio adottate?
Quale ritenete più utile per il vostro caso? Avete esplorato altre possibilità?
Ci sono casi in cui per risolvere problemi di legacy avete dovuto adottare approcci più radicali?
Sono curiosa di sentire le vostre esperienze…

Il panorama delle certificazioni Agile

Ritorno sul tema certificazioni – già affrontato in un post precedente – perché vedo crescere un discreto interesse nei gruppi Lean e Agile in rete e sono certa che i potenziali interessati hanno molte domande in merito.

L’occasione per parlarne è un articolo sull’argomento letto proprio ieri in cui sono presentati alcuni dati e di cui riassumo i punti salienti.

Certificazioni Agile: quante sono?

E’ difficile rispondere in maniera esaustiva a questo quesito.
Non è possibile dare un numero perché il panorama cambia velocemente.
La lista è corposa e potremmo dire che nuove certificazioni “spuntano come funghi” (in fondo è un business come un altro…), ma è necessario tenere presente che molte di queste nascono e muoiono nel giro di breve tempo.

Oltre alle certificazioni offerte da organizzazioni consolidate è infatti presente sul mercato una pletora di società di formazione che “cavalcano l’onda” dell’Agile. In quest’ultimo caso si tratta spesso di Training Providers – a volte riconosciuti a volte no – che arricchiscono il proprio catalogo con topic “di moda” con l’intento di ampliare la propria fetta di mercato.

Esistono inoltre – soprattutto negli Stati Uniti – certificazioni in-house, ovvero attestati che vengono rilasciati per corsi di formazione svolti sul tema Agile in azienda. La maggior parte di questi documenti tuttavia non ha un valore professionale spendibile all’esterno della società stessa.

In sintesi la gamma delle certificazioni è ampia e le più note competono tra loro.

Certificazioni Agile: quali sono le più diffuse?

E’ possibile esporre qualche dato sulle certificazioni più note e riconosciute sul mercato.
I dati sono relativi al numero di certificazioni attive rilasciate sino a gennaio 2015 e sono stati forniti dalle rispettive società (ad eccezione di Scaled Agile Inc. che non fornisce numeri di dettaglio).

Titolo Rilasciato da N° certificazioni (a gen 2015)
Certified Scrum Master (CSM) Scrum Alliance 309,309
Professional Scrum Master (PSM-I) – Level 1 Scrum.org 31,580
PMI-Agile Certified Practitioner (PMI-ACP) Project Management Institute 6,987
Certified Scrum Practitioner (CSP) Scrum Alliance 2,627
SAFe Agilist (SA) Scaled Agile Inc. 1,000+
SAFe Program Consultant (SPC) Scaled Agile Inc. 1,000+
SAFe Practitioner (SP) Scaled Agile Inc. 1,000+
Professional Scrum Master (PSM-II) – Level 2 Scrum.org 198
Certified Scrum Coach (CSC) Scrum Alliance 63

Il CSM – Certified Scrum Master è in assoluto l’attestazione più diffusa e anche la più “antica” delle certificazioni Agile.
Crescono i numeri anche delle certificazioni più”giovani”: il PMI-ACP introdotto dal Project Management Institute nel 2011 e SAFe, il framework per scalare Agile e applicarlo nelle grandi aziende.

Non sono presenti in questo prospetto le certificazioni relative alla figura del Product Owner, ovvero CSPO (Certified Scrum Product Owner) di Scrum Alliance e PSPO (Professional Scrum Product Owner) di Scrum.org. Tuttavia una breve ricerca su Linkedin ci può fornire un ordine di grandezza degli attestati rilasciati dalle due organizzazioni.
Ad oggi sono presenti sul popolare network professionale più di 16.000 CSPO e ca. 1.600 PSPO (numeri ben ridotti a confronto con i 160.000 CSM e 50.000 PSM indicizzati su Linkedin).

Certificazioni Agile: cosa certificano?

Quasi tutte le certificazioni presenti sul mercato attestano la conoscenza del candidato, ovvero il fatto che abbia appreso i principi e le linee guida della metodologia Agile.
Poche pochissime ne valutano invece l’esperienza, cioè l’applicazione pratica di queste conoscenze nel contesto professionale.
Solo il PMI-ACP e la certificazione per coach (CSC) fanno un assessment dell’esperienza, seppur in modo puramente quantitativo (in base al numero di ore erogate “sul campo”).
Nessuna delle certificazioni attualmente più diffuse fornisce una garanzia sulla competenza del candidato, relativa quindi alla qualità dei risultati che è in grado di produrre.

Certificazioni Agile: tra le tante quali scegliere?

Anche in questo caso non esiste una risposta valida per tutti indistintamente. Bisogna valutare quale può essere la soluzione più adatta in base agli obiettivi della persona e al contesto di riferimento.
Se un amico mi chiedesse un consiglio inizierei porgendogli semplici domande:

    1. Prima di tutto a cosa sei più interessato? In quale ruolo senti di poter esprimere al meglio le tue capacità? Come Scrum Master, come Product Owner o come Coach?
    2. Per quale motivo senti di aver bisogno di una certificazione? Perché vuoi approfondire la conoscenza di queste tematiche o perché te l’ha chiesto/imposto l’azienda (ma non sei granché interessato)?
    3. Come preferisci che sia erogata la formazione? On-site, online, in aula?
    4. Pensi di sfruttare la certificazione come un vantaggio competitivo sul mercato del lavoro? Quanto vuoi differenziarti dagli altri professionisti del settore?

Queste sono solo alcune delle domande che dovrebbero aiutarvi a chiarire le idee.
In ogni caso il mio consiglio è di investire sempre sulla credibilità e l’affidabilità sia della certificazione sia del formatore.
Se avete curiosità specifiche sulla certificazione da Product Owner non perdetevi questo articolo!