O que são feature toggles?
Feature toggles (também conhecidas como “feature flags” ou “alternância de recursos”, em português) constituem uma técnica de desenvolvimento de software que permite aos desenvolvedores ativar ou desativar determinadas funcionalidades a qualquer momento. Como resultado, os desenvolvedores podem implementar novas funcionalidades em um subconjunto de usuários ou em um ambiente de produção sem realmente lançá-las para toda a base de usuários. Isso permite o desenvolvimento, o teste e a implementação mais rápidos de funcionalidades sem ter que fazer alterações no código.
As feature toggles podem ser usadas para implementar novas funções gradualmente, realizar testes A/B ou ativar e desativar funcionalidades em resposta a problemas de desempenho ou outras preocupações operacionais. Elas também possibilitam um processo de desenvolvimento mais flexível e eficiente, pois as equipes conseguem trabalhar em múltiplas funcionalidades em paralelo e lançá-las gradualmente.
Como funcionam as feature toggles

As feature toggles são como interruptores para partes específicas do seu código. Elas permitem que os desenvolvedores controlem o lançamento de uma nova funcionalidade, ativando-a ou desativando-a por meio de um arquivo de configuração externo, sem que o código seja alterado. Se a feature toggle estiver definida como “ativada”, o sistema executará o novo código. Se estiver definida como “desativada”, a nova funcionalidade será ignorada e o código original será mantido.
Sua utilização é facilitada pelos serviços de feature flags, que centralizam todas as feature toggles e fornecem dados de uso e auditoria. As feature toggles também permitem que as equipes de implementação lancem uma funcionalidade para grupos específicos de usuários, com base em atributos designados. De modo geral, as feature toggles facilitam o controle do lançamento de novas funcionalidades e testam seu impacto antes de disponibilizá-las a todos os usuários.
Imagine que você esteja desenvolvendo uma nova funcionalidade que apresenta recomendações personalizadas de produtos aos clientes em seu site de comércio de roupas. A funcionalidade ainda não foi totalmente testada, e você quer implementá-la no ambiente de produção para monitorar seu desempenho no mundo real. No entanto, você não deseja disponibilizar a funcionalidade para todos os clientes ainda, pois ela pode não operar como esperado e exercer um impacto negativo sobre a experiência do usuário.
Nesse caso, você poderia adicionar uma feature toggle ao código responsável por implementar o recurso de recomendações personalizadas. Durante sua execução, o sistema verificaria a configuração e determinaria se a feature toggle estava ativada ou desativada. Se estivesse definida como “desativada”, o sistema ignoraria a nova funcionalidade e usaria a recomendação de produtos original. Se estivesse definida como “ativada”, o sistema executaria a nova funcionalidade.
Ao monitorar o desempenho do novo recurso e corrigir erros ou problemas de desempenho, você consegue ativar gradualmente a feature toggle para uma pequena porcentagem de usuários e, posteriormente, para uma parcela maior deles, até que a funcionalidade seja disponibilizada a todos os clientes.
Os três maiores benefícios das feature toggles
Implementação mais rápida
As feature toggles permitem que você implemente o código no ambiente de produção mais rapidamente, sem precisar esperar que a nova funcionalidade seja totalmente testada e validada. Isso significa que você pode apresentar novas funcionalidades aos usuários mais rapidamente e começar a receber feedbacks mais cedo. Como resultado, é possível incorporar continuamente os feedbacks e melhorar seu produto.
Redução de riscos
As feature toggles ajudam a reduzir o risco associado à implementação de novos códigos no ambiente de produção. É possível implementar novas funcionalidades para uma pequena porcentagem de usuários ou para um grupo controlado e monitorar seu comportamento e desempenho. Isso permite identificar e resolver rapidamente quaisquer problemas antes que eles impactem um grupo maior de usuários.
Melhor experiência do usuário
Com este recurso, é possível implementar novas funcionalidades de forma incremental, o que, por sua vez, melhora a experiência geral do usuário. Você pode testar as novas funcionalidades primeiro com um pequeno grupo de usuários e, depois, implementá-las gradualmente para um público maior, garantindo que elas sejam estáveis e atendam às necessidades dos clientes. Essa abordagem ajuda a reduzir o risco de introduzir erros ou problemas de desempenho que poderiam afetar negativamente a experiência do usuário.
Casos de uso para as feature toggles
Experimentos
Experimentos ou testes A/B representam um caso de uso comum para as feature toggles. É possível controlar a ativação de uma funcionalidade, habilitando-a ou desabilitando-a durante a execução do sistema. Por exemplo, ao ativar a feature toggle, a experiência A é exibida para um conjunto de usuários, enquanto ao desativá-la, a experiência B é apresentada para outro grupo de usuários.
As feature toggles mais avançadas também podem usar múltiplas toggles ao mesmo tempo para proporcionar diferentes experiências para grupos de usuários distintos. Por exemplo, uma empresa pode dividir sua base de clientes em três grupos e atribuir uma toggle exclusiva a cada um deles, promovendo experiências diferentes. Em seguida, é possível avaliar o desempenho de cada experiência e tomar uma decisão sobre qual delas implementar permanentemente.
Implantações canário
Em desenvolvimento de sistemas, as implantações canário ocorrem quando uma nova funcionalidade ou alteração de código é lançada pela primeira vez para um pequeno grupo de usuários para verificar seu desempenho. Se a funcionalidade apresentar algum problema ou falha, é possível revertê-la rapidamente. As feature toggles desempenham um papel fundamental nesse processo, pois limitam o número de usuários que podem acessar a nova funcionalidade e permitem que os desenvolvedores a desabilitem facilmente, se necessário.
Testes de produto
Antes de lançar uma nova funcionalidade, nem sempre é possível saber se os usuários a aceitarão ou não. Você pode ativar a nova funcionalidade ou uma versão preliminar dela usando uma feature toggle e lançá-la para um pequeno grupo de usuários para obter feedbacks. Esse grupo pode ser formado por entusiastas da sua marca, que estão dispostos a testar e avaliar a funcionalidade. Se ela for bem recebida, a equipe de desenvolvimento poderá expandir seu alcance ao implementá-la para mais usuários. Por outro lado, se a nova funcionalidade não atender às expectativas, a equipe de desenvolvimento poderá rapidamente desabilitar a feature toggle e, eventualmente, removê-la da base de código.
Ferramenta de interrupção do sistema
Uma feature toggle pode ser usada como uma ferramenta de interrupção do sistema, permitindo que uma aplicação web desative temporariamente todo o site para fins de manutenção ou tempo de inatividade. A feature toggle traz uma maneira controlada para as equipes gerenciarem problemas inesperados ou realizarem implementações confidenciais. Isso oferece a elas a confiança e a capacidade de realizar uma interrupção controlada, se necessária, sem afetar o funcionamento geral do site.
Como a solução VWO FullStack pode ajudar você

Com a solução VWO FullStack, você aproveita todo o poder das feature toggles em seu processo de desenvolvimento de sistemas. Com a capacidade de controlar a implementação de uma funcionalidade em tempo de execução, é possível escolher quando ativá-la ou desativá-la sem alterar qualquer código, seja para testes A/B ou implantações canário.
Além das feature toggles flexíveis, também há outros casos de uso importantes da VWO FullStack:
Testes A/B em sua stack
Uma das principais utilidades dos testes no lado do servidor é a possibilidade de realizar testes A/B em sua stack. Uma ferramenta de testes no lado do servidor é usada nos casos em que os testes são executados com elementos complexos ou dinâmicos, que estão além do escopo da interface do usuário, ou quando as modificações a serem feitas estão além do escopo de um editor visual ou de código. Digamos que você queira realizar um teste A/B nos preços de frete de uma loja de comércio eletrônico. Como os valores apresentados ao público são renderizados dinamicamente a partir do servidor, é necessário contar com uma ferramenta de teste no lado do servidor para executar um experimento como esse.
Testes de múltiplas funcionalidades e variações
A solução VWO FullStack não só permite que você teste múltiplas funcionalidades do produto, como também múltiplas variações de múltiplas funcionalidades. Desta forma, é possível experimentar intensamente, mensurar o impacto das variações e, por fim, implementar a experiência vencedora. Imagine que você tem uma empresa de SaaS e planeja oferecer um teste grátis do seu produto. Você pode criar diversas opções com diferentes durações do período de teste, determinar qual delas foi mais bem-sucedida e disponibilizá-la para todos.
Implementações de funcionalidades em estágios
A ferramenta permite segmentar seu público, lançar uma nova funcionalidade somente para uma pequena porcentagem dele, monitorar seu desempenho e disponibilizá-la gradualmente para toda a sua base de clientes. Da mesma forma, quando um erro é descoberto, uma funcionalidade pode ser revertida, corrigida e lançada novamente rapidamente. Os feedbacks e dados coletados nesses estágios podem promover a inovação contínua e acelerar a evolução das funcionalidades do seu produto.
Achou a VWO FullStack impressionante e deseja utilizá-la? A VWO é uma plataforma integrada de otimização de experiência que apresenta uma série de recursos de ponta, incluindo a solução FullStack. Com o conjunto de produtos oferecidos, você consegue levar seu programa de otimização ao próximo nível. Para descobrir como, agende uma demonstração gratuita e conheça seus recursos em detalhes.