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

Fonte: https://medium.com/@vaidehijoshi/crafting-better-code-reviews-1a5fc00a9312

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 integra-lo à base de código.

Infelizmente, o code review é muita vezes feito de uma forma muito rasa, ignorando seu real valor para o amadurecimento da equipe e seus membros. A ideia dessa série de posts é 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 vários 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 uso errado 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 a 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 a 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 a seus colegas.

Conclusão

O objetivo desse texto 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.

Like what you read? Give Vinícius Alonso a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.