Uma das práticas estabelecidas na Entrega Contínua de Jez Humble é que você deve criar um pacote e liberá-lo para cada ambiente no qual implantar, para que a implantação e os artefatos tenham sido testados várias vezes antes de iniciar a produção.
Eu apoio totalmente essa ideia.
Por outro lado, as compilações no modo de depuração que fornecem rastreamentos de pilha com números de linha são incrivelmente úteis em ambientes de teste, assim como a capacidade de depuração remota. Mas você deseja enviar uma compilação de versão para produção.
Então, para as pessoas que seguem o primeiro princípio, em que momento você alterna da depuração para a liberação das compilações?
É antes da primeira implantação em um ambiente de teste, calculando que vale a pena pagar o custo de perder o modo de depuração para garantir que você esteja testando o candidato real à versão antecipada? Ou você constrói novamente em algum momento do processo de promoção, imaginando que confiará no processo de construção sobre o software? Ou você simplesmente estraga tudo e implanta versões de depuração na produção?
Nota: Eu sei que isso realmente não se aplica a linguagens interpretadas, porque geralmente você pode pressionar o switch na configuração, em vez de fazê-lo no momento da construção.