Desenvolvimento

11 jun, 2018

Qual o real valor do code review para uma equipe de desenvolvimento?

Publicidade

Code review é uma prática de revisão de código que é muito utilizada em projetos open source e também por empresas de desenvolvimento de software.

Ela consiste em alguns (ou todos) os membros de uma equipe de desenvolvimento revisarem o código de um colega antes de integrá-lo à base de código.

Infelizmente, o code review é muita vezes feito de forma muito rasa, ignorando seu real valor para o amadurecimento da equipe e seus membros. A ideia desta série de artigos é fazer uma análise um pouco mais profunda, para que os desenvolvedores possam entender o real valor dessa prática, tanto para o indivíduo, quanto para o time.

Qual o valor real do code review para a equipe de desenvolvimento?

Sem dúvidas essa prática nos trás muitos benefícios, dentre eles destacam-se:

  • Compartilhamento de conhecimento
  • Criação de soluções alternativas para os problemas
  • Aumento do senso de equipe

Compartilhamento de conhecimento

Infelizmente é muito comum ter nas empresas o “pai da criança”, ou seja, aquele desenvolvedor que fez o projeto ou feature X e apenas ele que sabe como funciona. Esse tipo de situação é muito ruim porque joga todo o peso para apenas uma pessoa e contribui para um problema chamado filas individuais.

Quando revisamos o trabalho um do outro, o revisor passa a entender como as features foram implementadas, e isso é muito importante; ver o requisito funcionando ao invés de ver apenas um card no Trello ou ouvir sobre o progresso da tarefa nas reuniões diárias.

Com isso, temos uma descentralização do conhecimento, o que faz com que qualquer membro da equipe que esteja revisando o código alheio tenha capacidade para trabalhar naquele projeto. Tirando a responsabilidade de uma só pessoa e ajudando a evitar as filas individuais.

Criação de soluções alternativas para os problemas

Muitas vezes fazemos mau uso da orientação a objetos, dos recursos da linguagem e acabamos escrevendo um código ruim. Na etapa do review, os revisores devem checar como o problema foi solucionado e questionar se aquela é a solução mais adequada.

Esse questionamento coloca as solução sempre à prova por serem analisadas por diferentes pontos de vista. Esse processo faz com que o autor e os revisores aprendam e criem soluções melhores para serem implementadas no sistema.

Esse feedback é importante, principalmente para quem está começando na área de programação e ainda não desenvolveu um senso crítico sobre código apurado, fazendo com que ele amadureça mais rapidamente, adquirindo conhecimento sobre como deve programar determinadas features.

Aumento do senso de equipe

Uma nova feature quebra em produção; de quem é a culpa? Se a primeira coisa que veio à sua mente foi quem a implementou, você está muito enganado. A culpa é da organização; no caso, da equipe de desenvolvimento – isso porque o projeto é responsabilidade do time.

Como mais de uma pessoa revisou o código, os testes e se aquela implementação cumpria o que foi proposto, toda a equipe passa a ser responsável por ela. Isso ajuda aumentar o senso de equipe porque traz a responsabilidade para o time, e não apenas para um membro.

Essa prática faz com que todos se comuniquem mais, de forma que estejam sempre se ajudando, dando e recebendo feedbacks constantemente, sejam eles positivos ou negativos. E esse estimulo a discussão faz com que todos se sintam mais seguros uns com os outros, aumentando a confiança do time e a liberdade de se expressar junto aos seus colegas.

Conclusão

O objetivo desse artigo foi explorar alguns valores que o code review pode entregar para sua equipe. Pretendo continuar essa série explorando mais a fundo várias características dessa prática.

Podemos notar que mais do que simplesmente procurar por bugs, essa prática entrega um valor muito maior a equipe de desenvolvimento. Entender isso é fundamental para que possamos melhorar como desenvolvedores e evoluir na carreira.

Referências

Resolvi montar um repositório no Github para guardar links importantes sobre code review, portanto, todas as minhas referências estão lá. Em especial, gostaria de recomendar o paper “Expectations, outcomes, and challenges of modern code review” e a talk “Implementing a Strong Code-Review Culture”.

Link para o repositório no Github.