O que é engenharia de lançamento?
A engenharia de lançamento, ou releng, é o processo de preparação de um software de computador completo para distribuição. Isso pode envolver muitas disciplinas separadas de programação e engenharia, e nem todas as definições de engenharia de versão são as mesmas em diferentes empresas. Algumas das tarefas que podem estar envolvidas na engenharia de versão incluem compilar código fonte, rastrear e manter ferramentas e ambientes de desenvolvimento, manter uma biblioteca de versões durante toda a vida de um programa e, algumas vezes, implementar a implantação de software em um servidor ou sistema ativo. Alguns dos benefícios de ter um engenheiro de lançamento dedicado no ciclo de desenvolvimento de software são uma experiência melhor para os usuários finais - porque os métodos de lançamento são testados pela primeira vez - melhor documentação geral do programa em todas as atualizações e um tipo de controle de qualidade em situações nas quais diferentes partes de um programa são originárias de fontes separadas.
Durante o desenvolvimento do software, chega um momento em que o aplicativo é concluído e precisa ser distribuído aos clientes ou instalado em um servidor ativo para que possa ser usado. Sem um engenheiro de versão, esse processo pode envolver a compilação de um programa por meio de ferramentas de desenvolvimento e, em seguida, mover os binários para a mídia ou servidor de destino. Alguns dos problemas que podem ser encontrados com esse processo são que o programa pode ter dependências não quantificadas, alguma mudança pode ser esquecida ou, finalmente, o processo pode não ser necessariamente reproduzível no futuro.
Uma das maiores partes da engenharia de versões é acompanhar o progresso de como um programa se desenvolve. Isso pode significar usar um sistema de versão ou empregar outro software, não apenas para rastrear e rotular cada etapa de um programa durante seu desenvolvimento, mas também para armazenar instantâneos do programa para que possam ser recuperados mais tarde. Além de apenas manipular o código-fonte, a criação bem-sucedida de um programa exige que as informações sobre as ferramentas utilizadas e as diferentes bibliotecas ou outros recursos empregados também sejam armazenadas. O objetivo final é poder recompilar um programa em qualquer estágio do desenvolvimento, independentemente dos sistemas de desenvolvimento usados para criá-lo.
Outra parte possível da engenharia de lançamento está preparando um aplicativo para distribuição aos clientes. Depois que o programa é compilado em binários, métodos para instalar o programa no computador de um usuário final são desenvolvidos e explorados. Isso pode envolver a gravação de um programa de instalação ou o teste em diferentes situações, se estiver ativo, para garantir que esteja funcionando de acordo com as especificações. A engenharia de versão às vezes envolve realmente instalar um programa várias vezes em vários sistemas para garantir que diferentes configurações ou erros sejam tratados da maneira correta.