[go: up one dir, main page]

Buscar tópicos
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ê adorará isso.

por Dan Radigan

A metodologia ágil me impactou muito, tanto no aspecto profissional como pessoal, pois eu aprendi que as melhores experiências são ágeis, no código e na vida. Muitas vezes você vai me encontrar na interseção de tecnologia, fotografia e motociclismo.

Comece de graça com o template de plano de projeto DevOps

Desenvolva, implemente e gerencie aplicativos com uma abordagem aberta para ferramentas.

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 aprender a base do código, bem como a conhecer as novas tecnologias e técnicas que aprimoram as habilidades deles.

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?

  • Olhando para os requisitos, todos os casos estão totalmente implementados?

  • Os novos testes automatizados são suficientes para o novo código? Testes automatizados existentes precisam ser reescritos para justificar 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 de tarefas, inicie uma revisão de código depois que todo o código tiver sido escrito e os testes automatizados tiverem sido executados e aprovados, mas antes que o código seja mesclado no upstream. 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?

Toda equipe pode se beneficiar de revisões de código independentemente da metodologia de desenvolvimento. No entanto, as equipes ágeis podem ter muitos benefícios, pois o trabalho é descentralizado em toda a equipe. Ninguém é a única pessoa que sabe uma parte específica de uma base de código. Simplificando, as revisões de código ajudam a facilitar o compartilhamento de conhecimento na base de código 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 da lista de pendências 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

Lembra-se da seção sobre estimativa? A estimativa é um exercício em equipe, e a equipe faz melhores estimativas quando o conhecimento está disponível para todos. À medida que novas funções são adicionados ao código existente, o desenvolvedor original pode fornecer estimativas e feedbacks bons. Além disso, qualquer revisor de código também está exposto à complexidade, aos problemas 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 no trecho de código. Da mesma forma, ninguém quer se aventurar no pedaço fundamental do código que não escreveu–em especial durante emergências 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 lançado. (A gente adora metáforas mistas na Atlassian!) Mas este é o ponto: com vários desenvolvedores, os membros da equipe podem tirar folgas conforme necessário. Se você estiver preso no sistema de controle de versão, a revisão de código é excelente para encontrar liberdade. Liberdade para tirar as férias necessárias ou liberdade para passar algum tempo trabalhando em áreas diferentes 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

A revisão de código não é apenas um membro sênior da equipe revisando o código de um membro júnior da equipe. A revisão do código deve ocorrer em todas as direções da equipe. O conhecimento não tem limites! Sim, a revisão de código pode ajudar os engenheiros mais novos, mas de forma alguma 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 suas 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 montante garante que nenhum código fique sem revisão. O que significa que as decisões arquiteturais questionáveis feitas às 02h 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 seu trabalho.

Usar a pressão de colegas a seu favor

Quando os desenvolvedores sabem que seu código 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 tornará seu trabalho melhor, mas também fará com que seus colegas de equipe sejam revisores de código melhores. E o ciclo virtuoso continuará...!

Buscar tópicos
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ê adorará isso.

por Dan Radigan

A metodologia ágil me impactou muito, tanto no aspecto profissional como pessoal, pois eu aprendi que as melhores experiências são ágeis, no código e na vida. Muitas vezes você vai me encontrar na interseção de tecnologia, fotografia e motociclismo.

Comece de graça com o template de plano de projeto DevOps

Desenvolva, implemente e gerencie aplicativos com uma abordagem aberta para ferramentas.

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 aprender a base do código, bem como a conhecer as novas tecnologias e técnicas que aprimoram as habilidades deles.

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?

  • Olhando para os requisitos, todos os casos estão totalmente implementados?

  • Os novos testes automatizados são suficientes para o novo código? Testes automatizados existentes precisam ser reescritos para justificar 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 de tarefas, inicie uma revisão de código depois que todo o código tiver sido escrito e os testes automatizados tiverem sido executados e aprovados, mas antes que o código seja mesclado no upstream. 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?

Toda equipe pode se beneficiar de revisões de código independentemente da metodologia de desenvolvimento. No entanto, as equipes ágeis podem ter muitos benefícios, pois o trabalho é descentralizado em toda a equipe. Ninguém é a única pessoa que sabe uma parte específica de uma base de código. Simplificando, as revisões de código ajudam a facilitar o compartilhamento de conhecimento na base de código 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 da lista de pendências 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

Lembra-se da seção sobre estimativa? A estimativa é um exercício em equipe, e a equipe faz melhores estimativas quando o conhecimento está disponível para todos. À medida que novas funções são adicionados ao código existente, o desenvolvedor original pode fornecer estimativas e feedbacks bons. Além disso, qualquer revisor de código também está exposto à complexidade, aos problemas 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 no trecho de código. Da mesma forma, ninguém quer se aventurar no pedaço fundamental do código que não escreveu–em especial durante emergências 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 lançado. (A gente adora metáforas mistas na Atlassian!) Mas este é o ponto: com vários desenvolvedores, os membros da equipe podem tirar folgas conforme necessário. Se você estiver preso no sistema de controle de versão, a revisão de código é excelente para encontrar liberdade. Liberdade para tirar as férias necessárias ou liberdade para passar algum tempo trabalhando em áreas diferentes 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

A revisão de código não é apenas um membro sênior da equipe revisando o código de um membro júnior da equipe. A revisão do código deve ocorrer em todas as direções da equipe. O conhecimento não tem limites! Sim, a revisão de código pode ajudar os engenheiros mais novos, mas de forma alguma 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 suas 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 montante garante que nenhum código fique sem revisão. O que significa que as decisões arquiteturais questionáveis feitas às 02h 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 seu trabalho.

Usar a pressão de colegas a seu favor

Quando os desenvolvedores sabem que seu código 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 tornará seu trabalho melhor, mas também fará com que seus colegas de equipe sejam revisores de código melhores. E o ciclo virtuoso continuará...!

Recommended for you

Templates

Templates prontos do Jira

Confira nossa biblioteca de templates personalizados do Jira para várias equipes, departamentos e fluxos de trabalho.

Guia do produto

Uma introdução completa ao Jira

Use este guia detalhado para descobrir as principais funções e as melhores práticas para maximizar sua produtividade.

Guia do Git

Como entender o básico do Git

De iniciantes a especialistas avançados, use este guia para aprender o básico do Git com dicas e tutoriais úteis.