Skip to main content

Ammettiamolo: gestire un prodotto software in fase di crescita può essere un compito travolgente sia per i principianti che per i veterani. Man mano che introduci nuove funzionalità per supportare una base utenti più ampia e in crescita, i giorni d’oro in cui si gestivano solo poche funzioni sono ormai un ricordo lontano.

Aumentano le pressioni dagli utenti finali e dagli stakeholder interni mentre esplori nuove strade per offrire valore ai tuoi clienti. Senza un controllo adeguato, potresti ritrovarti a dover affrontare il feature creep.

Avendo lavorato in diversi ruoli di product management durante la mia carriera, ho visto in prima persona i vantaggi dell’utilizzo dei feature flag. Dalla semplificazione dell’a/b testing, alla gestione più agevole dei lanci di prodotto, fino al mantenimento di una pratica di delivery continua: i feature flag aiutano davvero i product manager a prendere il controllo di un prodotto in crescita con sicurezza. 

Cosa Sono i Feature Flag?

I feature flag (noti anche come feature toggle o feature flipper) agiscono come "guardiani" di funzionalità specifiche all’interno della tua applicazione durante il runtime—il che significa che puoi disattivare o attivare l’accesso a funzioni specifiche per gli utenti quando vengono soddisfatti determinati criteri. Permettono di controllare l’accesso in tempo reale senza dover effettuare nuovi deploy di codice—immagina che libertà!

Want more from The CPO Club?

Sign up for a free membership to complete reading this article:

Step 1 of 2

This field is for validation purposes and should be left unchanged.
Name*
This field is hidden when viewing the form

Quali criteri intendiamo qui? È proprio qui che la potenza dei feature flag diventa ancora più evidente. Puoi decidere di concedere o bloccare l’accesso in base a moltissimi parametri, come segmenti specifici di utenti, l’ora del giorno, la geolocalizzazione, oppure puoi anche randomizzare l’accesso per condurre degli esperimenti.  

Benefici dell’Utilizzo dei Feature Flag

Semplifica A/B Testing ed Esperimenti

Quando esegui esperimenti per prendere decisioni di prodotto informate, hai bisogno di poter testare diversi approcci su segmenti di pubblico ben definiti. Puoi utilizzare i feature flag per condurre questi test con facilità, focalizzandoti sui metriche e sugli esperimenti che vuoi eseguire, invece che sulla suddivisione tecnica degli utenti.

Ad esempio, pensa a migliorare l’esperienza utente in un workflow importante del tuo prodotto. Invece di distribuire i cambiamenti a tutta la base utenti, puoi identificare specifici segmenti di utenti da coinvolgere in questa nuova esperienza. Successivamente puoi raccogliere feedback e dati dal gruppo di test per confrontarli con quelli dell’intera base utenti prima di decidere se estendere i cambiamenti a tutti.

Se stai testando modifiche a layout, interazione o gerarchia visiva, prototipi di design responsive possono aiutarti a validare più velocemente le tue idee. Dai un’occhiata a i migliori strumenti per prototipazione di design responsive per creare flussi testabili prima di attivarli per gli utenti reali.

We’ve collected the goods — AI prompts, exclusive deals, and a library of resources for product leaders. Unlock your account for access.

We’ve collected the goods — AI prompts, exclusive deals, and a library of resources for product leaders. Unlock your account for access.

This field is for validation purposes and should be left unchanged.
Name*
This field is hidden when viewing the form

Gestisci Rilasci e Lanci di Nuove Funzionalità

Una vera e propria superpotenza dei feature flag è la possibilità di avere il controllo sui lanci di prodotto complessi—ti consentono di adottare un approccio graduale e pianificato. Invece di affidarti solo ai test interni, puoi iniziare a distribuire parti della nuova funzionalità in produzione, così da assicurarti che conviva bene con le funzionalità e il codice già esistenti.

Questa pratica viene talvolta definita canary release, in cui puoi osservare l’impatto di nuovo codice e funzionalità prima di coinvolgere tutta l’utenza. I rilasci delle funzionalità non devono più essere motivo di preoccupazione quando vedi già che funzionano per utenti reali in ambiente di produzione. È un approccio più "chirurgico", simile alle pratiche di continuous integration, piuttosto che rischiare downtime per i tuoi utenti.

Un ottimo esempio è l’introduzione della funzione picture-in-picture nell’app di YouTube su iPhone. Invece di renderla disponibile immediatamente per tutti, YouTube ha introdotto la funzionalità gradualmente a un sottoinsieme di utenti, consentendo ai developer di risolvere bug e problemi di user experience prima di una distribuzione più ampia.

Articolo correlato: 12 Strategie di Successo per il Lancio di Prodotti (+Esempi) 

Sperimenta con i Livelli di Prezzo

Se ti sei mai trovato a dover definire la struttura di prezzo per il tuo prodotto, sai che può essere un equilibrio delicato tra offrire il giusto valore al giusto prezzo. Quando l’equilibrio è sbagliato, rischi di incassare troppo poco e perdere ricavi—oppure di allontanare potenziali clienti con prezzi troppo alti. 

I feature flag ti consentono di gestire i livelli di prezzo molto più efficacemente rispetto ai metodi manuali. Poiché i piani di prezzo spesso rappresentano l’accesso a specifici set di funzionalità per determinati segmenti di utenti, l’utilizzo dei feature flag ha molto senso.

Mettiamo che tu voglia introdurre un nuovo piano che pensi possa attrarre una fetta di mercato poco servita. Puoi impostare un feature flag per proporre questo nuovo livello di prezzo a un piccolo gruppo di utenti, e monitorare se si ottengono riscontri positivi o negativi su quel piano. Usare feature flag ti offre maggior fiducia nella struttura di prezzo del prodotto, aiutandoti a togliere molta dell’incertezza dal processo. 

Promuovi le Best Practice nel Ciclo di Vita dello Sviluppo Software

I product manager sanno che team di ingegneria felici significano clienti felici! I feature flag riducono la pressione sugli sviluppatori nel supportare rollout complessi e, cosa ancora più importante, semplificano la gestione dei cambiamenti catastrofici che terrorizzano qualsiasi sviluppatore reperibile durante il fine settimana. 

Poiché i feature flag impongono una segmentazione attenta del codice, gestire il rollback delle implementazioni diventa molto più facile in caso di problemi. Consentono a te e ai tuoi team di essere più agili nel reagire a eventi imprevisti. Rendono davvero più concreto l’obiettivo della distribuzione continua, o anche quella progressiva—i benefici dei cicli di feedback dei clienti possono diventare realtà quanto più controllo hai sull’accesso e sul rilascio delle funzionalità (questo è anche un aspetto su cui l’IA nel release management può aiutare).

Se stai lanciando una nuova funzionalità, un feature flag ti offre un semplice interruttore di spegnimento. Ad esempio, se ti rendi conto che nonostante tutti i test fatti una nuova funzionalità distribuita in produzione sta dando risultati imprevisti ai tuoi utenti—puoi subito disattivare l’accesso. Operazioni che prima erano una confusione di branch, hotfix e distribuzioni d’emergenza, ora si possono gestire meglio grazie ai feature flag.

Come Iniziare con i Feature Flag?

Identificare le Dipendenze

Per prima cosa, devi verificare se il tuo codice consente un’introduzione semplice dei feature flag. Vecchi monoliti pieni di "spaghetti code" possono rappresentare grosse sfide iniziali. Diventa difficile disaccoppiare le funzionalità da altre parti dei processi e quindi isolarle. 

Sarà necessario un confronto approfondito tra team di sviluppo e devops per iniziare. Anche se i benefici sono molto interessanti, ricorda che introdurre i feature flag è un lavoro che toglie tempo allo sviluppo delle funzionalità attuali. Tuttavia, a lungo termine dà i suoi frutti, quindi vale la pena avviare la discussione il prima possibile. 

Da Dove Iniziare a Isolare

Potrebbe essere allettante voler isolare e mettere un feature flag su tutto, ma un approccio più metodico ti aiuterà a fare progressi senza sacrificare tutto il resto che stai già sviluppando. 

Quando pensiamo alle funzionalità, spesso immaginiamo le interazioni lato client dell’utente, quindi potresti pensare di iniziare da lì. Può essere un buon punto di partenza, ma non dimenticare il supporto lato server presente nella tua API. Modificare l’API può assicurare che i cambiamenti al codice non rompano i comportamenti attesi sul back-end prima ancora di introdurre la nuova funzionalità agli utenti nell’interfaccia. 

Stabilire Come Gestire l’Accesso

Anche se abbiamo parlato di permettere l’accesso a certe funzionalità a specifici gruppi di utenti, puoi impostare diversi criteri per fornire accesso condizionale a una funzionalità. Ad esempio, puoi decidere di attivare un feature flag solo in determinati orari, aree geografiche o addirittura in modo casuale per un test veloce! Definire fin dall’inizio su quali criteri vuoi basarti ti aiuterà a impostare feature flag che diano la massima flessibilità a te e al tuo team.

Mappare i vari criteri già noti può aiutare a identificare i primi su cui lavorare. 

Ricorda di Iniziare in Semplicità

Anche se la tua immaginazione corre già verso tutte le possibilità offerte dai feature flag (abilita questa funzione per utenti premium con Chrome che indossano scarpe blu di martedì 😅), ricorda di partire con controlli più semplici. 

Un modo diretto per cominciare è introdurre feature per segmenti di utenti sulla base dei permessi già esistenti. L’esempio classico è utenti paganti contro utenti gratuiti. 

Feature flag più complessi e multivariati (cioè che usano una combinazione di criteri per determinare l’accesso) possono essere un obiettivo futuro—ma prima di tutto metti in piedi le basi. 

Strumenti di Gestione dei Feature Flag

In passato, i feature flag venivano gestiti lato back-end e richiedevano il coinvolgimento degli sviluppatori ogni volta che si voleva abilitarli o disabilitarli. Fortunatamente, sono nati strumenti che semplificano la gestione dei feature flag—per poterli attivare o disattivare con facilità e per gestire i vari criteri che definiscono i tuoi differenti segmenti.

Oggi esistono numerose piattaforme per i feature flag, tra cui Optimizely, LaunchDarkly e l’opzione open source Flagsmith. Alcune organizzazioni potrebbero anche scegliere di creare internamente i propri strumenti se hanno esigenze particolari non coperte da queste piattaforme.

Pur differendo nelle funzioni e caratteristiche, questi strumenti promettono una gestione semplificata dei feature flag, dandoti maggiore controllo e sicurezza su rollout e iterazioni.

Gestisci le Funzionalità con Fiducia

Con i feature flag nel tuo toolkit, affronterai i lanci con più sicurezza, ridurrai la pressione sui team di sviluppo e troverai la giusta combinazione di funzionalità che offrono il massimo valore ai tuoi clienti. 

Fateci sapere nei commenti come avete utilizzato (o pensate di utilizzare) i feature flag nei vostri prodotti!

Potete trovare altri strumenti, suggerimenti e tecniche per far progredire la vostra carriera come product manager iscrivendovi alla newsletter di The CPO Club.

Lettura correlata: 8 migliori pratiche per l’utilizzo dei Feature Flag che dovresti conoscere

Consigliato anche: Il miglior software per la gestione dei requisiti di prodotto