Início > Artigos & Tutoriais > Comparação entre Ferramentas de Controle de Mudança

Comparação entre Ferramentas de Controle de Mudança

Autor: André Felipe Dias. Última atualização em 19/05/2009

1. Introdução

O controle de mudança é uma das atividades necessárias da Gerência de Configuração. Seu papel principal é registrar, avaliar e rastrear todas as mudanças aplicadas ao projeto, desde o momento em que são propostas, até o momento em que são implementadas (ou não) nos itens de configuração.

Existem várias ferramentas de controle de mudança disponíveis. Ao invés de analisar dezenas delas, este artigo se concentra apenas em algumas ferramentas open source, com certa popularidade no Brasil. Com o tempo e de acordo com solicitações dos leitores e clientes, é possível que este número aumente.

O objetivo deste artigo é fornecer uma comparação inicial de modo a auxiliar a escolha da ferramenta adequada para sua equipe, projeto ou empresa.

Críticas e sugestões são bem-vindas e podem ser feitas através do formulário de fale conosco.

Ferramentas Analisadas


Ferramenta Licença Linguagem Versão Demonstração Recomendação
da Pronus
Trac BSD modificada Python 0.9.5 Demo sim
Mantis GPL PHP 1.0.3 Demo
Bugzilla Mozilla Public License Perl 2.22 Demo
Scarab Tigris Java 1.0 beta-20 Demo

2. Critérios de Avaliação

Os critérios de avaliação foram divididos em duas partes:

  • Funcionalidades de Controle de Mudança. Apresenta algumas funcionalidades fundamentais e outras desejáveis que uma ferramenta de controle de mudança deve ter.
  • Diferenciais, pontos fortes e fracos. Quais outras funcionalidades e características a ferramenta oferece/possui, mas que não sejam necessariamente relacionadas com controle de mudança.

3. Funcionalidades de Controle de Mudança

  • Acompanhamento do ciclo de vida do pedido de mudança
  • Rastreamento da mudança
  • Anexação de arquivos ao pedido
  • Campos personalizados
  • Configuração do fluxo de trabalho
  • Notificações para acompanhamento da evolução do pedido
  • Relatórios personalizados

Acompanhamento do ciclo de vida do pedido de mudança

A ferramenta precisa acompanhar todo o ciclo de vida da mudança, desde o momento em que é proposta, passando pelas avaliações sucessivas que recebe, registrar a aceitação (ou não) e a implementação em uma determinada revisão.

Esta é a funcionalidade básica e essencial para qualquer ferramenta de controle de mudança. Todas as ferramentas escolhidas para esta análise possuem essa funcionalidade.

Rastreamento da mudança

No caso em que a mudança é implementada, é importante que haja uma amarração bi-direcional entre a mudança publicada no repositório e o pedido que a gerou: o pedido aponta para a revisão em que foi implementada, e a revisão aponta para o pedido que originou a mudança.

O grau de facilidade e comodidade com que essa amarração é feita depende da integração entre as ferramentas de controle de versão e de controle de mudança utilizadas.

Nesta análise, o grau de integração com o controle de versão será medido usando o Subversion como referência.

Anexação de arquivos ao pedido

Durante a evolução do pedido, muitas vezes é necessário anexar algum arquivo para facilitar o entendimento do problema ou complementar a especificação.

Campos personalizados

As ferramentas vêm com alguns campos-padrão para o pedido, mas em alguns casos é necessário acrescentar novos campos para atender uma necessidade específica do projeto ou do processo de desenvolvimento.

Configuração do fluxo de trabalho

Os estados pelos quais um pedido passa durante o seu ciclo de vida dependem do processo de desenvolvimento utilizado. Existem alguns padrões comuns de fluxo de trabalho. Por exemplo, em alguns projetos é necessário que um pedido fique em um estado "resolvido" antes de ir para o estado "fechado", para que possa ser verificado pela equipe de qualidade.

É desejável que a ferramenta possibilite configurar o fluxo de trabalho de acordo com a necessidade de cada projeto.

Notificações para acompanhamento da evolução do pedido

É importante que a ferramenta mantenha informado todos os envolvidos com um pedido de mudança sobre alterações recebidas durante seu ciclo de vida. Geralmente, esta notificação é feita através de mensagens de e-mail.

RSS (Really Simple Syndication)

Outra funcionalidade interessante que a ferramenta pode oferecer é um canal RSS para acompanhamento da evolução do projeto e não só de um pedido específico.

Relatórios Personalizados

Registrar toda a evolução dos pedidos de mudança não vale muito sem que se possa fazer consultas sobre essas informações. As ferramentas costumam oferecer relatórios específicos. Entrentanto, às vezes é necessário criar e disponibilizar determinado relatório para uma necessidade específica.

Este critério de avaliação indica se a ferramenta fornece algum modo de criar e disponibilizar relatorios personalizados, além dos relatórios que já vêm com a ferramenta.


Quadro Comparativo de Funcionalidades


Ferramenta Rastr. SVN Anexação Arquivos Campos Person. Config. Workflow Notif. Acomp. RSS Relat. Person.
Trac sim sim sim Previsão de implementação futura(2) sim sim sim
Mantis parcialmente(1) sim sim parcialmente(3) sim sim sim
Bugzilla parcialmente(1) sim sim sim sim sim sim
Scarab parcialmente(1) sim sim sim sim sim sim

Legenda:
sim Possui tal funcionalidade
parcialmente Atende o requisito parcialmente ou com limitações
Previsão de implementação futura Existe previsão para implementação da funcionalidade no futuro
Não determinado Informações insuficientes para classificação

Observações

  1. A integração com o Subversion é feita indiretamente com o auxílio de scripts ou outra ferramenta tal como o TortoiseSVN ou ScmBug.
  2. A configuração do workflow está prevista para a versão Trac 0.11
  3. A documentação do Mantis sobre configuração do workflow é bastante vaga e incompleta

4. Diferenciais, Pontos Fortes e Fracos


Ferramenta Diferenciais Pontos Fortes Pontos Fracos
Trac
  • Documentação do projeto através de wiki
  • Amarração através de links wiki
  • Acompanhamento da evolução do projeto
  • Browser do Subversion
  • Arquitetura de plugins
  • Ótima integração com Subversion
  • Facilidade de customização
  • Boa documentação
  • Suporte a diferentes Bancos de Dados — (1)
  • Integração com várias ferramentas de Controle de Versão — (1)
Mantis
  • Fácil instalação e configuração
  • Combinação PHP e MySQL
  • Suporte a Postgres e MS-SQL
Bugzilla
  • Usado por grande número de projetos
  • Difícil de instalar e configurar
  • Usabilidade ruim — (2)
Scarab
  • Necessita do Apache Tomcat
  • Difícil de instalar e configurar
  • Exige mais recursos de máquina do servidor

Observações

  1. A partir da versão Trac 0.10
  2. Excesso de campos, interface sobrecarregada, difícil utilização

5. Considerações Finais

Todas as ferramentas analisadas cumprem bem o seu papel de controle de mudança. A escolha de uma ou outra se dará principalmente em relação aos diferenciais de cada uma, a afinidade com a linguagem na qual a ferramenta é escrita ou experiência anterior na utilização da ferramenta.

O que torna o Trac particularmente interessante é o seu funcionamento como um "site" do projeto, disponibilizando uma série de serviços importantes ao desenvolvimento de software, que agregam bastante valor à ferramenta.

Além do controle de mudança, o Trac possibilita a documentação do projeto através de wiki, oferece algumas funcionalidades para acompanhamento da evolução do projeto e ainda fornece o browser do controle de versão.

Com a arquitetura de plugins, o Trac tende ainda mais a se tornar uma plataforma do projeto, centralizando outras informações tais como resultados de testes e gerência do projeto.

A Pronus recomenda a utilização do Trac como ferramenta de controle de mudança. Para conhecer mais sobre a ferramenta, consulte o artigo sobre Controle de Mudança com Trac

Referências

Alguns links para outras comparações:

< voltar


Outros artigos & tutoriais

Qual ferramenta de controle de mudança você usa?
Nenhum
Mantis
Bugzilla
Jira
ClearQuest
Outro
Trac