Problemas que ocorrem em empresas, geralmente criam necessidades tecnológicas para a resolução. As empresas de TI atuam como solucionadores destes problemas, através da disponibilização de serviços e/ou criação de softwares. Para o desenvolvimento de softwares, existem várias tecnologias Open-Source ou pagas disponíveis. Mas nem sempre o problema para uma empresa de TI é qual a tecnologia que irá ser utilizada para desenvolver o software e sim a forma como gerenciá-lo até o seu fim.
Imaginando um cenário de caos dentro de uma empresa de TI, que está em pleno desenvolvimento de um ou mais softwares, vamos criar alguns problemas:
- Falta de possibilidade da reprodução de um erro ocorrido em produção no cliente - Imagine que um cliente acaba de contactar a empresa para reclamar que a geração de nota fiscal no faturamento não está funcionando. Você têm que reproduzir o erro para tentar corrigí-lo, mas a empresa não possui o código fonte "guardado" de forma organizada, ele está distribuído nas máquinas dos desenvolvedores.
- Bugs que persistem em reaparecer - A empresa não possui um controle das mudanças ocorridas no software, nem tão pouco sabe o que está sendo impactado com uma mudança feita.
- Funcionalidades desaparecem - Funcionalidades já testadas e implementadas simplesmente desaparecem por não possuir um controle de mudança nem histórico de alterações.
- Problemas com trabalho paralelo - Dificuldades para integrar implementações feitas em 2 máquinas diferentes.
- Entre muitos outros...
Mas enfim, o que é Gerência de Configuração?
Gerência de Configuração (GC) é um conjunto de atividades de apoio que permite a absorção controlada das mudanças inerentes ao desenvolvimento de software, mantendo a estabilidade na evolução do projeto.(Roger Pressman)
É inevitável negar que mudanças irão ocorrer. Será comum a mudança no escopo de um projeto por causa de retiradas, acréscimos e/ou alterações de funcionalidades. Com a utilização da GC, a empresa passa a definir políticas para o controle de versão dos softwares criados, visando a consisência dos artefatos produzidos. Irá definir e utilizar ferramentas e procedimentos para controlar as solicitações de mudanças, que como consequência, diminuirá custos de manutenção e facilitará a geração de novas versões.
A GC envolve as seguintes áreas:
A GC envolve as seguintes áreas:
- Controle de mudança - Fornece formas de assegurar que qualquer mudança realizada em um projeto seja controlada. É através deste controle que teremos a visibilidade de cada mudança efetuada no software, qual foi o motivo que gerou a mudança, quem executou, etc.
- Integração contínua / Gerênciamento de builds - Têm como objetivo não só de automatizar o processo de geração de builds, mas também de garantir que as mudanças no software serão implementadas, testadas e integradas o mais breve possível depois de serem relatadas.
- Controle de versão - O controle de versão pode ser caracterizado como a base do GC, pois irá apoiar os 2 itens acima descritos. Ele irá controlar as mudanças e rastrear todos os artefatos do projeto, possibilitando assim o trabalho paralelo dos desenvolvedores. Através de um controle de histórico é possível saber quem alterou um artefato, quando e principalmente recuperar versão anterior sempre que desejado.
2 comentários:
Otimo post Fábio. Eu estava tentanto tirar umas dúvidas sobre gerencia de configuração e o post conseguiu esclarecer elas.
Espero que voce fale sobre a questao de termos e conceitos que você comentou no fim do post!!
Realmente ainda existe muita empresa que não utiliza ou utiliza de forma incorreta a gerencia de configuração.
Conheci muitas pessoas que nem utilizavam um controle de versão com SVN, CVS ou outro que exista
Postar um comentário
Comente este artigo que acabou de ler
Ou quer apenas entrar em contato conosco ou tirar alguma dúvida? Use nosso formulário: Clique Aqui
Todos os comentários serão moderados