Nel mondo dello sviluppo di prodotti digitali, la collaborazione tra UX e sviluppo è spesso più un ideale che una realtà. Eppure, è proprio da questa sinergia che nascono i prodotti più performanti, quelli che non solo soddisfano le esigenze degli utenti, ma danno anche un senso al lavoro di chi li crea. Questo articolo è un caso di studio su come una collaborazione rafforzata tra UX e sviluppatori possa trasformare un prodotto in difficoltà e dare nuova vita a un team.
Il punto di partenza: un prodotto in pericolo e un team sotto pressione
La nostra storia inizia con uno strumento digitale essenziale per i responsabili di punto vendita e i responsabili di reparto di Decathlon. Progettato per ottimizzare le performance economiche e l'efficienza temporale, questo strumento è utilizzato da circa 20.000 persone in 78 paesi.
Dal 2017, il team che lavora a questo prodotto ha operato in silos, con una cultura agile superficiale. Gli sviluppatori specializzati (front-end, back-end, dati) lavorano su micro-task senza una visione d'insieme, il che porta a infiniti ritardi nella consegna e all'accumulo di debito tecnico. A titolo di esempio, e uno dei fattori scatenanti di quanto segue, una funzionalità che si stimava avrebbe richiesto tre settimane per essere consegnata ha richiesto quasi un anno (e anche allora, era instabile!).
Dal lato del prodotto, i problemi erano altrettanto evidenti: scarsa adozione, utilizzo forzato da parte degli utenti a causa della mancanza di alternative e delle pressioni del management e, soprattutto, disponibilità inaffidabile. I tempi di caricamento erano eccessivamente lunghi e l'applicazione risultava spesso inaccessibile in momenti chiave, causando notevole frustrazione negli utenti. Infine, la complessità dello strumento rendeva difficile la comprensione sia per i nuovi sviluppatori che per i nuovi utenti. La conclusione era chiara: il legame tra sviluppatori, prodotto e utenti era fragile, se non inesistente.
La strategia di trasformazione: autonomia e conoscenza
Di fronte a questa situazione critica è intervenuta la squadra Mayday, un'iniziativa interna di Decathlon nota per il suo approccio pragmatico.
La soluzione non poteva essere puramente tecnica. Era necessario un cambiamento radicale, un approccio olistico per ristabilire l'equilibrio. Il team di supporto, composto da quattro sviluppatori e un ricercatore UX, è intervenuto. La strategia ruotava attorno a due assi principali: migliorare l'autonomia del team et aumentare la conoscenza degli utenti e dei prodotti.
1. Sviluppare l'autonomia del team attraverso l'agilità e la competenza del software
L'obiettivo era quello di passare da una cultura di "progetto" a una cultura di "prodotto", in cui il team si sentisse pienamente responsabile del valore che fornisce.
- Nuova formazione della squadra: Il team deve evolvere verso una cultura full-stack e full-task. L'idea è quella di eliminare le interdipendenze incoraggiando la versatilità e la capacità di guidare i progetti dalla progettazione alla produzione.
- Rafforzare la collaborazione di squadra e favorire lo sviluppo delle competenze: Vengono organizzate sessioni di programmazione in coppia per condividere conoscenze e best practice. Le revisioni collaborative del codice aiutano a standardizzare le convenzioni e a migliorare la qualità del codice.
- Auto-organizzazione dei rituali di squadra: I rituali Agile vengono rivisitati per ripristinarne lo scopo. La riunione quotidiana sta diventando un aggiornamento sullo stato di avanzamento dei risultati in produzione, piuttosto che un semplice report delle attività. Si tengono retrospettive periodiche per identificare e risolvere i problemi del team. Un workshop settimanale di affinamento del backlog è programmato per specificare e valutare la maturità degli argomenti da sviluppare.
- Integrazione di un Product Owner (PO) con una visione a 360 gradi: Un nuovo Product Owner si è unito al team, apportando una visione olistica che integra esigenze degli utenti, vincoli normativi e strategia aziendale. Il suo ruolo è diventato cruciale nel canalizzare e arbitrare le richieste, imparare a dire "no" quando necessario e stabilire le priorità di sviluppo con il team.
- Abilitatori di flusso: Pratiche come i limiti WIP (limitare il lavoro in corso) e l'approccio "smetti di iniziare, inizia a finire" consentono di concentrarsi sul completamento delle attività. Come accennato in precedenza, la programmazione in coppia promuove la condivisione e la complementarità delle competenze.
- Consegna continua: La semplificazione dei rami di codice (sviluppo basato su trunk) e l'automazione dei test (passaggio da manuali a quasi completamente automatizzati) hanno ridotto significativamente il time-to-market, consentendo più rilasci giornalieri, se necessario. Si tratta di una "distribuzione senza eventi", in cui gli strumenti consentono un deployment fluido dalla postazione di lavoro dello sviluppatore all'utente.
2. Aumentare la conoscenza dell'utente e del prodotto
Il ruolo del ricercatore UX è stato fondamentale nel trasmettere al team la realtà degli utenti e nel comprendere il prodotto dall'interno.
- Immersione diretta con gli utenti: Il primo passo è stato organizzare interviste con gli utenti, a cui sono stati invitati anche gli sviluppatori. Questo ascolto diretto ha contribuito a creare una connessione e a dare significato al lavoro di tutti.
- Implementazione dell'analisi dell'utilizzo: Prima dell'intervento, non erano disponibili strumenti di analisi. Sono stati implementati dei tracker per comprendere il comportamento effettivo degli utenti sul prodotto. È stato organizzato un workshop sulle convenzioni di denominazione accessibili in modo che tutti, sviluppatori inclusi, potessero esaminare e interpretare questi dati.
- Monitoraggio dello stato di produzione: Oltre all'analisi dell'utilizzo, è stata creata una dashboard collaborativa per monitorare gli errori e i tassi di disponibilità della produzione. Ciò ha permesso al team di comprendere lo stato di salute del prodotto e di prendere decisioni informate, ad esempio identificando se i problemi fossero originati internamente al team o da partner esterni.
- Approccio di Design Thinking avanzato: L'approccio si è basato su un modello di Design Thinking avanzato, integrando l'intero team in ogni fase:
- Comprendere le esigenze: Interviste, analisi.
- Validazione e definizione dell'ambito: Formalizzare le intuizioni e condividerle con l'intero team.
- Ideazione e costruzione: Workshop collaborativi con il team (idee peggiori, otto pazzi, brainstorming, valori delle caratteristiche, …).
- Modellazione e test continui: Sono stati implementati test A/B per confrontare due versioni del prodotto e osservare le statistiche di utilizzo. Il feature flag ha permesso di offrire una versione specifica del prodotto a un campione di utenti per raccogliere feedback qualitativi. La collaborazione tra i team di UX e sviluppo è essenziale in questo caso, con gli sviluppatori che apportano modifiche all'interfaccia e i designer UX che guidano tali modifiche e gestiscono le interazioni con gli utenti.
L'obiettivo dell'UX non è diventare indispensabile, ma facilitare il feedback dal campo e garantire che la ricerca di risposte dagli utenti diventi una seconda natura per tutti gli sviluppatori. Si tratta di garantire che vitalità (da parte degli stakeholder), il faisabilité (dagli sviluppatori) e il desiderabilità (da UX) vengono presi in considerazione fin dall'inizio del processo.
Risultati iniziali: un prodotto e un team trasformati
Le azioni intraprese hanno avuto un profondo impatto sul team e sul prodotto.
Da un team che si limita a svolgere compiti, passiamo a un team che genera valore e dà senso al proprio lavoro quotidiano. Interagisce direttamente con i propri utenti ed è attrezzato per rispondere alle esigenze emergenti, anziché limitarsi a eseguirle. Il time-to-market è stato notevolmente ridotto. Il team non è più composto da più persone che lavorano fianco a fianco, ma da persone che comunicano e collaborano quotidianamente per prendere decisioni consapevoli.
Da un prodotto che non riusciva a gestire il carico di un numero eccessivo di utenti, siamo passati a un prodotto disponibile in qualsiasi momento. Mentre in precedenza cercavamo di rivolgerci a un pubblico ampio, offrendo in definitiva scarso valore a ciascuno, ora offriamo un valore definito ai gruppi target prioritari identificati. Il prodotto è diventato molto più facile da comprendere sia per gli sviluppatori che per gli utenti.
Collaborazione UX-Dev: una leva per l'arbitrato e il significato
In conclusione, la trasformazione dello strumento e del suo team è il risultato di uno sforzo congiunto. Le azioni intraprese dagli sviluppatori hanno rafforzato la loro autonomia (definizione di rituali, miglioramento del backlog, supporto agli utenti, continuous delivery, attivazione/disattivazione delle funzionalità). Le azioni intraprese dall'UX hanno accresciuto le conoscenze (audit, osservazioni, interviste, personaggi, percorsi utente). Ma è... stretta e continua collaborazione tra UX e sviluppatori, attraverso workshop congiunti, analisi analitiche e test condivisi (test A/B, feature flag), che hanno permesso di dare un senso a tutte queste azioni.
Questa collaborazione è essenziale per la arbitratiNon si tratta di "fare tutto", ma di scegli le tue battaglie Con una comprensione completa del progetto e del prodotto. Che si tratti di adattare il livello di supporto, decidere sulla qualità del codice o dare priorità ai bug, queste decisioni vengono prese con una comprensione reciproca delle sfide tecniche, degli utenti e aziendali.
Non abbiamo inventato nulla, ma abbiamo implementato le best practice di Agile e Software Craftsmanship. La cosa più importante è che ci siamo concentrati su appassionato e non solo sul formaDare un significato a ogni decisione, a ogni riga di codice, a ogni interazione con l'utente è ciò che trasforma un progetto in un prodotto ad alte prestazioni e un team in un motore di innovazione. Rendendo la ricerca di risposte sul campo una seconda natura per tutti gli sviluppatori e integrando la fattibilità tecnica fin dalla fase di progettazione, UX e sviluppo possono davvero collaborare per creare prodotti che contano.

Florine Auffrait, Ricercatore UX presso UX-Republic



