| | Início | Empresa | Serviços | Cursos | Artigos & Tutoriais | Blog | Calendário de Cursos | Clientes | Fale Conosco | |
Autor: André Felipe Dias. Última atualização em 19/05/2009
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.
| Ferramenta | Licença | Linguagem | Versão | Demonstração | Recomendação da Pronus |
|---|---|---|---|---|---|
| Trac | BSD modificada | Python | 0.9.5 | Demo | ![]() |
| Mantis | GPL | PHP | 1.0.3 | Demo | |
| Bugzilla | Mozilla Public License | Perl | 2.22 | Demo | |
| Scarab | Tigris | Java | 1.0 beta-20 | Demo |
Os critérios de avaliação foram divididos em duas partes:
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.
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.
Durante a evolução do pedido, muitas vezes é necessário anexar algum arquivo para facilitar o entendimento do problema ou complementar a especificação.
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.
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.
É 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.
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.
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.
| Ferramenta | Rastr. SVN | Anexação Arquivos | Campos Person. | Config. Workflow | Notif. Acomp. | RSS | Relat. Person. |
|---|---|---|---|---|---|---|---|
| Trac | ![]() |
![]() |
![]() |
(2) |
![]() |
![]() |
![]() |
| Mantis | (1) |
![]() |
![]() |
(3) |
![]() |
![]() |
![]() |
| Bugzilla | (1) |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Scarab | (1) |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Legenda: | |
![]() |
Possui tal funcionalidade |
![]() |
Atende o requisito parcialmente ou com limitações |
![]() |
Existe previsão para implementação da funcionalidade no futuro |
![]() |
Informações insuficientes para classificação |
| Ferramenta | Diferenciais | Pontos Fortes | Pontos Fracos |
|---|---|---|---|
| Trac |
|
|
|
| Mantis |
|
||
| Bugzilla |
|
|
|
| Scarab |
|
|
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
Alguns links para outras comparações:
Conheça o curso de Gerência de Configuração com Ferramentas Open Source