Come Flagsmith ci ha aiutato nei primi 2 anni di Serenis
La crescita di una realtà aziendale che si basa su un prodotto tecnologico come nel nostro caso (la piattaforma che mette in contatto pazienti e terapeuti e che li aiuta a gestire rispettivamente il proprio percorso e il proprio lavoro quotidiano) passa spesso attraverso l’utilizzo di software, fornitori e tool che aiutano a velocizzare attività e processi: con questo articolo vogliamo raccontarne uno di questi, Flagsmith.
Ne abbiamo parlato con il nostro Filippo Sarzana, Tech Lead in Serenis, e con Anna Redbond di Flagsmith, per approfondire come abbiamo utilizzato i feature flag.
Li abbiamo sfruttati principalmente per supportare la continuous delivery di prodotto e gli A/B test. Grazie a Flagsmith abbiamo avuto piena libertà di implementare e testare con sicurezza; concentrando i nostri sforzi sullo sviluppo del prodotto senza avere necessità di sviluppare internamente la gestione dei feature flag.
Quali sono i casi d'uso per i feature flag in Serenis?
“Abbiamo due casi d’uso e due obiettivi diversi. Innanzitutto, lavoriamo con la continuous delivery di prodotto, quindi portiamo continuamente il nostro codice in produzione. Utilizziamo i feature flag per attivare o disattivare funzionalità per segmenti specifici e per poter testare un segmento con un piccolo gruppo di utenti prima di distribuirlo a tutta la nostra base utenti.
L'altro nostro caso d'uso sono gli A/B test. Inizialmente siamo partiti con solo due varianti di funzionalità, ma abbiamo da sempre ragionato come se potessimo fare multi-variation. Molto spesso, però, abbiamo solo una variante di una funzionalità e una di un controllo. I flag di funzionalità ci consentono di testare il comportamento di ciascuna variante e quindi di monitorare i risultati.”
Come funzionano gli A/B test in Serenis?
“Ogni funzionalità di cui disponiamo è sottoposta ad A/B test. Per esempio possiamo disattivare una funzionalità per alcuni utenti e lasciarla attiva per altri. O ancora testare una funzionalità in produzione per un segmento specifico e poi distribuirla a tutti. Ad esempio, ogni volta che pubblichiamo una nuova sezione del menu, viene prima A/B testata. Funziona così: è disattivato per tutti, lo testiamo e poi lo pubblichiamo.
Anche la verifica della registrazione e la verifica dell'e-mail sono state sottoposte ad A/B test. Attualmente stiamo testando diverse versioni del sistema di prenotazione. Stiamo anche testando diverse versioni degli algoritmi che utilizziamo internamente. Stiamo testando se le videochiamate interne funzionano meglio delle videochiamate non interne.
Effettuiamo test A/B su tutto tranne che sulle correzioni di bug. A volte però, capita di testare anche quelli. Quando la correzione di un bug è fondamentale e l'implementazione è fondamentale, vogliamo essere sicuri che la correzione funzioni correttamente, quindi effettuiamo anche qui un A/B test.”
Come si configurano tecnicamente i test A/B?
“Utilizziamo Flagsmith con i nostri strumenti interni per gli A/B test. Ad esempio, disponiamo di un data warehouse, quindi raccogliamo dati dai feature flag con i webhook Flagsmith. Le nostre identità sono gli ID utente e su questi costruiamo analisi. È poi il nostro team interno e i nostri data engineer a fornire informazioni di business basate su tutti i dati raccolti.”
Strade alternative: cosa avremmo fatto se non avessimo scelto Flagsmith?
“È difficile dirlo, ma so che non avremmo creato internamente la gestione dei flag di funzionalità. L'ho fatto in passato ed è stato un incubo. Il nostro obiettivo è concentrare il nostro tempo e le nostre energie sulla realizzazione del prodotto, non sulla realizzazione degli strumenti che fanno funzionare la piattaforma. Finiremmo per dedicare così tanto tempo a costruire e mantenere gli strumenti cruciali per la nostra azienda, e questo non è per nulla efficiente quando qualcun altro ha già gestito e costruito un tool per farlo.
È più funzionale a mio avviso pagare per un sistema in grado di gestirlo per te, anche considerando i costi di una risorsa dedicata. Inoltre, uno strumento a pagamento può gestire le complessità che uno strumento interno non è in grado di gestire.
Ad esempio, acquistare uno strumento come Flagsmith significa che tutto è già pronto e impostato. È molto semplice impostare segmenti per i test: possiamo impostare un segmento di test automatizzato in modo che gli utenti vengano assegnati automaticamente e possiamo testare cose come il modo in cui gli utenti si comportano con o senza un pulsante, il tutto con un paio di clic.”
Configurazione e distribuizione di Flagsmith: le integrazioni
“È stato davvero facile per noi impostare tutto. Utilizziamo la versione hosted su Flagsmith Cloud con il database Aurora AWS.
Utilizziamo il multitenant Flagsmith. Abbiamo un unico progetto, che è Serenis, ma abbiamo anche sviluppi in produzione con tantissime feature flag. Utilizziamo flag programmati, richieste di modifica e tutte le funzionalità di gestione in modo da poter andare in produzione continuamente, senza problemi.
In termini di integrazioni, utilizziamo l'integrazione con Slack in modo che tutti ricevano una notifica su eventuali modifiche ai feature flag. Utilizziamo anche i webhook. L'integrazione con Mixpanel ci consente di inviare i dati dei feature flag alla nostra behavioral data platform in modo da poter unire i behavioral data degli utenti (clic, visualizzazioni, ecc.) con i dati delle feature flag.”
Utilizzo degli SDK di Flagsmith
“Utilizziamo gli SDK React e React Native e l'SDK Node.js. Avere questi SDK e la capacità di integrazione con i nostri strumenti esistenti (ad esempio Mixpanel) era il nostro requisito principale quando stavamo decidendo su quale tool utilizzare.”