Um bom exemplo do que estou tentando perguntar seria o novo recurso de linha do tempo do Facebook. No começo, apenas alguns selecionados tinham acesso à linha do tempo. À medida que o recurso se solidificava no funcionamento e os bugs eram corrigidos, usuários adicionais tiveram acesso ao recurso. Posteriormente, um grande grupo de usuários teve acesso ao recurso e agora é um recurso geral para todos os usuários. Como uma equipe de desenvolvimento gerencia esse tipo de recurso?
Eu brinquei com a idéia de usar as definições de configuração para controlar seletivamente o acesso se algo estiver em teste ou em produção por meio de um arquivo de configuração e com instruções condicionais if no código. Agora, enquanto isso é válido para recursos simples, acredito que, se tentássemos implementar isso em um conjunto maior de recursos, isso se tornaria incontrolável.
Qual seria a melhor maneira de gerenciar lançamentos de recursos dessa maneira?