# Feature flag come infrastruttura di engineering

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

Published: 2025-02-14

## 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.
