Nel mondo DevOps esistono concetti semplici che, se usati bene, cambiano radicalmente il modo in cui costruiamo e rilasciamo software. I feature flags sono uno di questi.
Ho deciso di scrivere questo articolo come omaggio a Mickey Gousset, DevOps Architect nel team GitHub FastTrack, divulgatore instancabile e autore di uno dei talk più chiari e onesti che abbia visto sul tema: “Feature Flags for Better DevOps”.
Non solo perché spiega cosa sono i feature flags, ma soprattutto perché spiega come usarli senza farsi male.
Mickey Gousset lavora ogni giorno aiutando team e aziende a diventare “più DevOps”, spesso partendo da GitHub come piattaforma centrale. Oltre al lavoro sul campo, è anche un content creator: blog, Twitch, YouTube, repository demo, esempi pratici.
La cosa che colpisce di più del suo approccio è che non vende magia. Parla di DevOps come di una disciplina concreta, fatta di compromessi, responsabilità e debito tecnico.
Ed è esattamente questo il tono del suo lavoro sui feature flags.
Dal punto di vista tecnico, un feature flag è banalmente un if.
Dal punto di vista DevOps, è molto di più:
Un feature flag è un meccanismo che separa il deploy del codice dal rilascio della funzionalità.
In altre parole:
Questa separazione è uno dei pilastri dei team ad alte performance.
Nel talk di Gousset vengono citati numeri che fanno riflettere:
I team DevOps più maturi:
I feature flags non sono l’unica causa, ma sono uno degli abilitatori chiave di questo modello.
Non perché rendano il codice migliore. Ma perché riducono il rischio.
Uno dei messaggi più potenti del talk è questo:
Deploy when you want. Release when you’re ready.
Senza feature flags:
Con i feature flags:
Questo apre scenari come:
Gousset descrive tre grandi approcci, che sono anche una scala di maturità:
Flag hardcoded nel codice.
Flag in file di configurazione.
Flag gestiti da un datastore o servizio centrale.
È qui che i feature flags diventano una vera capability DevOps.
Nel suo lavoro, Mickey Gousset ha esplorato entrambe le strade:
Framework open source (come FeatureToggle nel mondo .NET)
Servizi gestiti come:
Il punto non è quale scegliere, ma capire quando serve cosa:
Sempre con una regola chiara: controllo e visibilità prima di tutto.
Uno dei momenti più interessanti del talk è quando Gousset racconta un fallimento reale in casa Microsoft.
Feature attivate:
Il risultato? Un disastro live.
La lezione è brutale ma onesta:
Questa è forse la frase più importante di tutto il talk:
Un feature flag è debito tecnico dal momento in cui lo introduci.
Ogni flag:
I flag lasciati “sempre ON” o “sempre OFF” sono codice morto travestito da sicurezza.
Gousset propone alcune regole semplici ma fondamentali:
Sono pratiche noiose? Sì. Sono ciò che distingue un team maturo da uno che gioca con gli switch? Assolutamente sì.
Il valore del contributo di Mickey Gousset non è solo tecnico. È culturale.
Parla di feature flags come:
Ed è per questo che il suo lavoro continua a essere rilevante, anche anni dopo.
I feature flags sono potenti. Il DevOps è potente.
E come ricorda implicitamente Gousset:
With great power comes great responsibility.
Questo articolo è un ringraziamento a chi, nel mondo DevOps, continua a spiegare non solo cosa fare, ma come farlo senza illusioni.