Revisão de código com Crucible

Contar com técnicas e ferramentas adequadas ao processo de desenvolvimento de software é crucial para o sucesso de um projeto. Isto vai desde sua concepção, com a utilização de técnicas, linguagens e ferramentas de modelagem de negócio, processos e sistemas, até as mais recentes tecnologias para validação e verificação da qualidade do software produzido. O objetivo final é um só: gerar valor para o cliente, tendo como resultado um software seguro, confiável e estratégico para suas operações.

Neste processo, umas das técnicas utilizadas pela MATERA é a chamada revisão de código (ou no inglês, peer code review).  Esta técnica tem como objetivo garantir a qualidade do código fonte gerado pelo time de desenvolvimento, localizando possíveis erros logo na fase inicial do processo de desenvolvimento de código. Outros benefícios que podem ser observados é a capacitação do time de uma forma homogênea e constante e a disseminação do conhecimento entre todos os envolvidos.

A revisão de código pode ser realizada de várias maneiras: solicitando aos desenvolvedores que mostrem o código produzido, antes ou depois de terem realizado o commit; utilizando um processo formal de revisão, no qual, o código produzido deve necessariamente ser revisado por um ou mais membros da equipe antes de ser adicionado no repositório do projeto; ser realizado pelo Líder Técnico do time, a cada dia, verificando as alterações realizadas pela equipe disponíveis no repositório. O processo de revisão deve ser adequado a cada projeto, com suas peculiaridades, sempre pensando também, na otimização do tempo dispensado para esta fase.

Mas de nada adianta um processo se não tivermos as ferramentas adequadas que o suportem. Neste contexto, a MATERA utiliza-se da ferramenta do fornecedor Atlassian chamada Crucible.

O Crucible é uma ferramenta de suporte a revisão de código com interface web 2.0, integrada a maior parte dos repositórios disponíveis (SVN, Git, CVS) e facilitando, inclusive, o processo de revisão de código por times geograficamente distribuídos. Seu funcionamento é bem simples e torna o processo de revisão de código muito rápido.
De uma forma suscinta, a mesma permite, que ao adicionar o código no repositório, o desenvolvedor solicite uma revisão deste código. O mesmo acessa o Crucible e cria uma nova revisão. Nesta solicitação de revisão, o desenvolvedor pode indicar quais são os outros membros do time que devem realizar a revisão deste código, bem como marcar, dentre os arquivos que foram alterados, quais são os arquivos que o mesmo deseja que sejam revisados.

Algumas funcionalidades do Crucible

Ao criar esta solicitação de revisão, um email é disparado automaticamente para os “revisores”, que tem a missão agora, de analisar o código gerado em busca de erros, inconsistências, oportunidades de melhoria de código. Para facilitar a revisão, o Crucible mostra as diferenças de códigos (o que era antes e como está agora), tornando a revisão muito mais simples.

Quando um erro ou oportunidade de melhoria de código é encontrado, o revisor pode realizar uma anotação sobre a revisão toda, o arquivo ou até mesmo na linha em que o desenvolvedor deve fazer a correção. Esta anotação pode ser classificada e ranqueada, permitindo que o desenvolvedor dê a atenção adequada a cada anotação de revisão. O Crucible permite também a réplica do desenvolvedor para o revisor, da mesma forma que o revisor o fez. Desta forma, uma determinada revisão pode ser discutida e documentada ao mesmo tempo.

O processo é finalizado quando todas as inconsistências foram corrigidas e tanto o(s) revisor(es) e o desenvolvedor chegaram ao consenso do que foi revisado.

O Crucible desta forma, é uma ferramenta essencial no dia a dia das equipes de desenvolvimento de software tornando o processo de revisão extremamente simples e ágil e no final de tudo, trazendo uma grande vantagem ao cliente: um produto com menor possibilidade de erros e consequentemente maior qualidade.

Por MATERA SYSTEMS

Postado em: 20 de dezembro de 2011

Confira outros artigos do nosso blog

REST não é JSON

21 de agosto de 2017

Bruno Sofiato

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

JavaScript 6: diferença entre var, let e const

09 de maio de 2017

Otávio Felipe do Prado

Deixe seu comentário