Skip to content
Berktug Berke Ates
Berktug Berke Ates

Software Engineer

Blog

Feature flag come infrastruttura di engineering

· 7 min di lettura

I flag non sono hack temporanei. Sono il modo in cui i team moderni separano il deploy dal rilascio.

Il deploy deve essere noioso

Spedire codice in produzione ed esporre una funzionalità agli utenti sono decisioni diverse. I feature flag permettono di fare merge in continuo controllando il raggio d’impatto. Combinati con l’osservabilità, trasformano i rilasci in esperimenti reversibili piuttosto che in eventi binari.

Funziona solo se i flag sono trattati come infrastruttura: nominati chiaramente, di proprietà di un team, con default sicuri e rimovibili secondo un calendario.

Progetta per l’operabilità

Ogni flag ha bisogno di un default per quando il servizio di gestione non è disponibile. I percorsi critici devono fallire chiusi o aperti intenzionalmente, mai a caso. Le regole di targeting devono essere testabili e auditabili, soprattutto per clienti enterprise e workflow regolamentati.

Evita di avvolgere comportamenti non correlati in un solo flag. Flag grossolani creano cleanup aggrovigliati. Flag fini creano costi di testing combinatorio. Raggruppa per capability visibile all’utente.

  • Registra chi ha cambiato un flag e perché
  • Imposta date di rimozione quando i flag vengono creati
  • Tieni la valutazione dei flag fuori dai tight loop quando possibile
  • Testa sia i percorsi abilitati sia quelli disabilitati

Gli esperimenti hanno bisogno di igiene

Quando i flag alimentano esperimenti, definisci ipotesi, metrica primaria e criteri di fine prima del lancio. Non lasciare esperimenti a metà in esecuzione indefinita; inquinano l’analytics e aumentano il carico cognitivo.

Segmenta con attenzione. Esperimenti sovrapposti sullo stesso journey possono invalidare le conclusioni e creare esperienze utente confuse.

Il cleanup fa parte della delivery

Un flag che sopravvive a lungo dopo il rilascio completo di una funzionalità diventa configurazione morta e branching nascosto. Pianifica il cleanup con la stessa serietà del lancio. Elimina i percorsi inutilizzati così il codebase riflette la realtà.

I team maturi vincono con i flag non perché hanno più toggle, ma perché possono rilasciare in sicurezza e lasciare il sistema più semplice dopo.


Pubblicato il 14 febbraio 2025 da Berktug Berke Ates.