Qual o real valor do code review para uma equipe de desenvolvimento? | iMasters
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.
Sem dúvidas essa prática nos trás muitos benefícios, dentre eles destacam-se:
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.
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.
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.
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.
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".