Por que as revisões de código importam (e realmente poupam tempo!)

Alerta de spoiler: se ama decisões arquiteturais e odeia ser um desenvolvedor de "caminho crítico", você vai adorar isso.

Dan Radigan Dan Radigan
Buscar tópicos

As equipes ágeis são auto-organizáveis, com conjuntos de habilidades que se estendem em toda a equipe. Isso é obtido, em parte, com a revisão de código. A revisão de código ajuda os desenvolvedores a aprenderem a base de código, bem como a aprender novas tecnologias e técnicas que desenvolvem os conjuntos de habilidades.

Então, o que exatamente é uma revisão de código?

Quando um desenvolvedor terminar de trabalhar em um problema, outro desenvolvedor analisa o código e considera perguntas como:

  • Há erros de lógica óbvios no código?
  • Observando os requisitos, todos os casos estão totalmente implementados?
  • Os novos testes automatizados são suficientes para o novo código? Os testes automatizados existentes precisam ser reescritos para levar em conta as alterações no código?
  • O novo código está em conformidade com as diretrizes de estilo existentes?

As revisões de código devem ser integradas com o processo existente de uma equipe. Por exemplo, se uma equipe estiver usando fluxos de trabalho de ramificação da tarefa, inicie uma revisão de código depois que todo o código tiver sido escrito e testes automatizados tiverem sido executados e aprovados–mas antes de o código ser mesclado. Isso garante que o tempo do revisor de código seja gasto à procura de erros que máquinas não encontram, bem como impede que decisões ruins de codificação poluam a linha principal de desenvolvimento.

O que isso proporciona para uma equipe ágil?

Todas as equipes podem se beneficiar das revisões de código, independentemente da metodologia de desenvolvimento. Equipes ágeis, no entanto, podem obter enormes benefícios porque o trabalho é descentralizado em toda a equipe. Ninguém é a única pessoa que conhece uma parte específica da base de códigos. Simplificando, as revisões de código ajudam a facilitar o compartilhamento de conhecimento na base de códigos e na equipe.

Revisões de código compartilham conhecimento

No centro de todas as equipes ágeis está a flexibilidade imbatível: uma capacidade de pegar trabalho do backlog e começar a execução por todos os membros da equipe. Como resultado, as equipes conseguem integrar mais trabalho, porque ninguém está em um "caminho crítico". Os engenheiros de pilha completa podem lidar com trabalho front-end e também com trabalho do lado do servidor.

As revisões de código possibilitam estimativas melhores

Você se lembra da seção sobre estimativa? A estimativa é um exercício em equipe, e a equipe faz estimativas melhores quando o conhecimento está disponível para todos. Conforme novos recursos são adicionados ao código existente, o desenvolvedor original pode oferecer estimativas e feedbacks de qualidade. Além disso, qualquer revisor de código também está exposto à complexidade, aos itens conhecidos e às preocupações de determinada área da base de código. Então, o revisor de código compartilha o conhecimento do desenvolvedor original sobre determinada parte da base de código. Essa prática cria vários comentários informados que, quando usados para uma estimativa final, sempre tornam a estimativa melhor e mais confiável.

As revisões de código possibilitam tempo livre

Ninguém gosta de ser o único ponto de contato em um pedaço de código. Da mesma forma, ninguém quer se aventurar em um pedaço crítico de código que não escreveu–especialmente durante uma emergência de produção. As revisões de código compartilham conhecimento entre a equipe, para que qualquer membro da equipe possa assumir as rédeas e continuar comandando o navio. (Adoramos metáforas mistas na Atlassian!) Mas este é o ponto: sem um único desenvolvedor, significa que os membros da equipe podem tirar uma folga, conforme necessário. Se você estiver preso no sistema de controle de versão, a revisão de código é uma excelente maneira de encontrar liberdade. Liberdade para tirar as férias necessárias ou liberdade para passar algum tempo trabalhando em uma área diferente do produto.

As revisões de código orientam novos engenheiros

Um aspecto especial do método ágil é que, quando novos membros se juntam à equipe, os engenheiros mais experientes orientam os novos membros. E a revisão de código ajuda a facilitar as conversas sobre a base de código. Muitas vezes, equipes ocultam conhecimentos dentro do código que são descobertos durante a revisão de código. Membros mais novos, com um novo olhar, descobrem áreas complicadas da base de código que precisam de uma nova perspectiva. Então, a revisão de código também ajuda a garantir que um novo insight seja adicionado ao conhecimento existente.

Dica profissional:

Não se esqueça de que a revisão de código não consiste apenas em um membro da equipe sênior revisar o código de um membro da equipe júnior. A revisão de código deve ocorrer em toda a equipe em todas as direções. O conhecimento não tem limites! Sim, a revisão de código pode ajudar os engenheiros mais novos, mas não deve ser usada apenas como um exercício de orientação.

Mas as revisões de código demoram!

Claro, elas levam tempo. Mas esse tempo não é desperdiçado – longe disso.

Aqui estão três maneiras de otimizar isso.

Compartilhar a carga

Na Atlassian, muitas equipes exigem duas revisões de qualquer código antes de que ele seja verificado na base de código. Parece muita sobrecarga? Realmente não é. Quando um autor seleciona os revisores, eles formam uma rede ampla em toda a equipe. Quaisquer dois engenheiros podem dar as próprias opiniões. Isso descentraliza o processo para que ninguém fique sobrecarregado e assegura uma boa cobertura para a revisão de código em toda a equipe.

Revisão antes da mesclagem

Exigir a revisão de código antes de mesclagem a montante garante que nenhum código fique sem revisão. O que significa que as decisões arquiteturais questionáveis feitas às 2h da madrugada e o uso indevido de um padrão de fábrica pelo estagiário são percebidos antes que tenham a chance de ter um impacto duradouro (e lamentável) no trabalho.

Usar a pressão de colegas a seu favor

Quando os desenvolvedores sabem que o código vai ser revisado por um companheiro de equipe, eles fazem um esforço extra para assegurar que todos os testes sejam aprovados e que o código seja tão bem concebido quanto possível para que a revisão corra bem. Essa atenção plena também tende a tornar o processo de codificação mais suave e rápido.

Não espere por uma revisão de código se o feedback for necessário antes no ciclo de desenvolvimento. Feedback antecipado e frequente torna um código melhor, então não tenha receio de envolver outras pessoas, sempre que possível. Isso vai resultar em um trabalho de mais qualidade e também vai fazer com que os colegas de equipe sejam revisores de código melhores. E o ciclo virtuoso vai continuar...!

a seguir
Release