Feature Flags e lançamentos graduais
Feature flags permitem que você faça deploy de código sem que o usuário veja a funcionalidade. Isso separa duas atividades que sempre foram tratadas como a mesma coisa: entregar código e liberar funcionalidade.
O problema do deploy = release
Sem feature flags:
- Código vai para produção
- Feature fica visível para todos imediatamente
- Se algo der errado: rollback doloroso
- Resultado: medo de deployar e estimativas infladas
Com feature flags:
- Código vai para produção (através da flag)
- Feature fica invisível até ativar
- Se algo der errado: desativa a flag em segundos
- Resultado: confiança para deployar frequentemente
Impacto nas estimativas
Sem feature flags
“Precisamos garantir que tudo funciona perfeitamente no deploy. Isso adiciona 3 pontos de trabalho extra.”
Com feature flags
“Se der problema, desativamos a flag. Estimativa reflete só o esforço de construir.”
Menos risco = estimativas mais realistas
Times com feature flags estimam com menos medo porque sabem que o rollback é trivial.
Tipos de Feature Flags
| Tipo | Uso | Duração |
|---|---|---|
| Release | Controlar lançamento de features | Semanas |
| Experiment | A/B testing e validação | Dias/semanas |
| Operação | Performance e fallback | Horas/dias |
| Permissão | Acesso por plano/cargo | Permanente |
Estimativa de features com flags
Quando uma feature usa flag, considere na estimativa:
- Lógica da flag (1 ponto extra) — adicionar o toggle
- Testes da flag (1 ponto extra) — testar com flag on e off
- Analytics (1-2 pontos) — tracking de uso da feature
- Remoção — agendar para remover a flag depois de estabilizada
Ferramentas
- LaunchDarkly — mais completa, enterprise
- Unleash — open-source, self-hosted
- Split — focado em experimentação
- Flagsmith — alternativa simples e open-source
- Solução própria — boolean flag no banco de dados
Boas práticas
- Nomes claros —
enable-new-checkout-flownãoflag1 - Remova flags velhas — se a feature já está estável, remova a flag
- Dashboard central — todas as flags visíveis e gerenciáveis
- Limites por ambiente — flags de operação não ativadas em produção sem aprovação
- Documente — cada flag deve ter dono e data de remoção
Feature Flags e Sprint Planning
Com feature flags, o Sprint Planning muda:
- Mais confiança — rollback é fácil então planeje com menos buffer
- Entrega incremental — features podem ser liberadas parcialmente durante o sprint
- Review mais flexível — demo com flag ativada em staging
Conclusão
Feature flags são um multiplicador de velocidade e confiança. Separam deploy de release, reduzem o medo de errar e permitem que times estimem com mais precisão porque sabem que o rollback é instantâneo.