TI André Dourado em 08 jan 2009
Os Dez Mandamentos da Gerência de Configuração – Muito Além do Controle de Versão
Muitos usuários de CVS e Subversion pensam possuir apenas uma ferramenta para controlar versões de código. Estas ferramentas, assim como outras ferramentas de SCM (Gerência de Configuração) como o IBM Rational ClearCase, IBM Rational Team Concert ou o Visual Team System, permitem muito mais que o controle de versões de código. Estas ferramentas suportam Gerência de Configuração. Um rápido resumo das potencialidades desta estranha e pouco praticada disciplina é colocada abaixo:
Dez Mandamentos da Gerência de Configuração
- Identificar e armazenar itens de configuração (códigos, textos, documentos, binários, executáveis ou qualquer outro tipo de elemento) em um repositório seguro. Esta potencialidade endereça o problema comum em empresas chamado: Arquivos misteriosiamente perdidos devido a pessoas que confiam apenas em seus discos rígidos e pen-drives para backup.. Um repositório em SCM pode ser um disco local, disco virtual ou banco de dados seguro onde os itens de configuração são guardados e possuem rotinas de backup regulares.
- Controlar e auditar mudanças nos itens de configuração. Esta potencialidade endereça o popular problema: Quem mexeu no código? Quando? Por quê?
- Organizar itens de configuração em componentes. Esta potencialidade endereça o problema: Como proteger, baixar (checkout) ou entregar (checkin) todo um pacote relacionado de código (ex: camada visual) atomicamente.
- Criar e manter linhas de base nos marcos de projetos e em liberações de manutenções. Esta potencialidade endereça o problema: Como consertar um defeito na versão 1.0 e evoluir o sistema para a versão 2.0 simultaneamente?
- Organizar e integrar versões e atividades. Esta potencialidade endereça o problema: Como saber que atividades de manutenção alteraram quais códigos no meu sistema?
- Manter espaços de trabalho estáveis e consistentes. Esta potencialidade trata o problema: Como evitar que alguém suba uma “versão” errada do código na véspera da entrega?
- Suportar mudanças concorrentes nos itens de configuração. Esta potencialidade trata o problema: Como evitar que pessoas editem um código enquanto vários outros desenvolvedores joguem Paciência ou Tetris por que o código está “travado” para edição?
- Integrar cedo e com frequência. Esta potencialidade trata o problema “Doom’s Day”: Como evitar dezenas ou centenas de defeitos que surgem misteriosamente quando um time resolve integrar o seu código na semana anterior à entrega do projeto.
- Garantir a reprodutibilidade de builds de software. Esta potencialidade evita o problema: Como evitar que alguém instale uma nova versão do compilador ou de um framework não autorizado e torne o ambiente ou executável instável .
Os times que não buscam estas melhores práticas sofrem dos problemas nefastos colocados nas práticas (mandamentos) acima.
Aprendendo Gerência de Configuração
Uma fonte rica para o aprendizado de SCM é o portal CM Crossroads. Destaco aqui os blogs, arquivos e a revista sobre SCM deste portal.
Uma outra boa fonte também é o site SCM Patterns. Como o nome diz, boas práticas sobre SCM são a tônica deste site.
Finalmente, recomendo também o portal Planeta SCM, que agrega dezenas de feeds de gerentes de configuração e pessoas do meio com dicas práticas, conselhos e experiências com ferramentas.
Pensamento do dia: “O homem prudente edificou a sua casa sobre a rocha; e caiu a chuva, transbordaram os rios, sopraram os ventos e deram com ímpeto contra aquela casa, que não caiu, porque fora edificada sobre a rocha”, Mateus.
Fonte: Marco Mendes´s Blog
Olá! Desde que coloquei o site