“Interruptores de features” são recursos que permitem que as equipes de desenvolvimento ativem e desativem as features sem lançar para produção (para o cliente final) um novo código.


Hoje, é esperado uma velocidade muito alta no desenvolvimento de software . Atualizações de features, alterações na interface do usuário e correções de bugs são feitas quase em tempo real, e o ritmo frenético é cada vez maior.

Os usuários se acostumaram a atualizações constantes dos aplicativos e esperam que todos os problemas sejam corrigidos imediatamente. Mas como correr o risco de adicionar uma nova feature que vai estar cheia de bugs? Como garantir o funcionamento correto? Bem, conheça o interruptor de feature, o melhor amigo do time de produto.

Mas de onde surgiu esse novo conceito? A introdução de novos features (e suas priorizações) ou correções de software sempre foi preocupante, mas a velocidade e a frequência dos ciclos de lançamento de hoje trazem ainda mais pressão.

Assim que o código é divulgado ao público, os usuários podem acessar instantaneamente a feature, deixando muitas variáveis fora de controle dos desenvolvedores. A melhor maneira de retomar o controle e manter a visibilidade sobre o lançamento, veio com a criação do que estou chamando de “interruptor de feature”.

Utilizando o interruptor de feature

 

“Interruptores de features” são recursos que permitem que as equipes de desenvolvimento ativem e desativem as features sem lançar para produção (para o cliente final) um novo código. Pense em um sinalizador que vai ser adicionado a novas features (ou atualização / correção de bug). Quando esse sinalizador é ativado a qualquer feature de um produto ele controla quem o vê, quem tem acesso e com que rapidez é entregue a toda uma base de clientes.

Os “interruptores de features” permitem que as empresas quebrem a tirania do lançamento de “quinta-feira à noite” (brincadeira hahaha), dividindo-o em pequenos entregaveis para controlar a exposição e permitir um movimento contínuo de lançamento. Você pode começar “liberando” apenas para usuários internos ou testadores (famosos beta testers), para poder testar no aplicativo em produção – ao vivo (TiP) para garantir que nada foi esquecido.

A partir daí, você poderá implantar gradualmente seus clientes antes de disponibilizar para 100% de seus clientes.

Lançamento controlado de features para clientes
Lançamento controlado de features para clientes

A abordagem de exposição controlada remove o pânico e a ansiedade em torno do cronograma de lançamento semanal. Ter a capacidade de desativar completamente as features significa que os “interruptores de features” também aumentam a estabilidade do aplicativo e eliminam a necessidade de correções de ultima hora (ou aquelas que surgem depois que TODOS os clientes já estão usadno).

É menos necessário ter uma reunião emergencial para discutir um problema urgente quando você puder simplesmente desativar a feature em questão de segundos. Ao utilizar os “interruptores de features” no processo de lançamento, as equipes assumem o controle de “quem”, “o que” e “quando” em termos de lançamento. Eles podem ditar tipos de usuários, dados demográficos, locais e dimensionar o lançamento da nova feature.

Dica: Conheça a diferença entre um roadmap e um plano de lançamento.

O interruptor de feature não é “outra coisa para gerenciar”

 

Fora da equipe do DevOps, os interruptores de feature também podem ser realmente poderosos para os gerentes de produto. Historicamente, o lançamento de uma nova feature significava que os gerentes de produto tinham que se coordenar com equipes multifuncionais para garantir que o lançamento fosse executado com sucesso. (Aproveitando: Você sabe o papel do gerente de produto em um time multidiscplinar?)

Essa coordenação envolvia garantir que

  • o marketing estivesse pronto para publicar um post sobre a feature,
  • a equipe de vendas soubesse como usar e vender a nova feature, (bonus: como manter o alinhamento entre vendas e produto)
  • a equipe de marketing do produto tinha documentação preparada para o funcionamento do conjunto de features (Bonus: o que é marketing de produto, e como ele te ajuda a construir produtos)
  • e tudo isso precisava ser feito perfeitamente sincronizado com timeline dos engenheiros para liberar a feature.

Os interruptores de features fornecem aos gerentes de produto as “chaves” para controlar todo esse processo. Agora, os gerentes de produto podem acessar a interface do usuário e ativar as features para alguns (ou todos) os seus clientes sem esperar que os engenheiros concluam seu proximo release. Não ter que coordenar essa parte extra do cronograma dá muito poder e tempo para o gerente de produto.

Experimentação de features: feedback do cliente orientado por dados

 

Outro aspecto do trabalho de um gerente de produto é coletar feedback. Eles precisam de respostas para perguntas relacionadas aos KPIs de negócios, como “Como essa feature está perfomando para meus clientes?”, “Os clientes são capazes de realizar a ação que a feature foi projetada para executar?” E “Estamos gerando mais receita com a feature? Os interruptores também podem ajudar nessa área.

À medida que os gerentes de produto aumentam uma nova feature, eles estão reduzindo simultaneamente o ciclo de feedback. Como os interruptores de feature permitem a segmentação – onde um grupo de clientes vê um conjunto de features e outro grupo de clientes vê um conjunto diferente, e como as principais métricas podem ser capturadas em intervalos separados para cada grupo, os gerentes de produto agora podem executar experimentos controlados como parte de um ciclo de lançamento.

Ver os KPIs alinhados com os diferentes grupos de clientes ajuda a entender quais features têm o melhor desempenho.

Nota: Para ajuda-los no seu aprendizado, recomendo a leitura do pequeno artigo (em inglês) de David Martin, “Feature Experimentation: Choosing the Best Route.“. Nesse artigo lúdico, David, te coloca no papel de um guia turístico escolhendo a melhor rota pelos Alpes Suíços, e mostra como a parceria entre os gerentes de produto e os clientes te ajuda encontrar o melhor caminho.

Conclusão: alinhando sua equipe para agregar valor

 

À medida que os gerentes de produto adotam a medição de uso associada às implementações de features, equipes inteiras podem se alinhar melhor às melhores práticas ágeis para fornecer continuamente o menor conjunto incremental de novas features. Ao entender o desempenho de todos as features, você estará melhor equipado para iterar e refinar o roadmap ideal do seu produto.

Dica final: Um roadmap equilibrado é a combinação de prioridades de curto prazo, com objetivos de longo prazo


Eu trabalhei em algumas empresas que faziam essa gestão utilizando a ferramenta Split.io, com ela você consegue fazer a gestão individual de cada feature em uma interface gráfica. Existem diversas alternativas no mercado, adiciono essa aqui para ajuda-los nessa jornada. Espero que ajude!