Desk Check em times remotos
Tags: productivity, tutorial, development, discuss
Published: 2024-01-19 12:45:20

Como desenvolvedores, tentamos ao máximo evitar fazer PRs muito grandes, mas nem sempre isso é possível, seja pela magnitude da tarefa ou pela dificuldade de separá-la em partes menores. Dito isso, você já se deparou com uma situação em que você precisa revisar um Pull Request (PR) muito grande e complexo de um colega? Você sente que levaria muitas horas para entender o código, testar as funcionalidades, verificar os padrões de qualidade e dar um feedback construtivo ou que até poderia se perder em meio a tantos arquivos? Você gostaria de ter uma forma mais rápida e eficaz de fazer isso?

Se você respondeu, sim, a essas perguntas, então você pode se beneficiar de uma técnica chamada Desk Check. Neste post, vou explicar o que é Desk Check, quais são os seus benefícios e como aplicá-lo.

## O que é Desk Check?

Desk Check é uma prática de revisão de código que consiste em uma sessão síncrona entre o autor do PR e um ou mais revisores, na qual o autor apresenta o seu trabalho, explica as decisões tomadas, demonstra as funcionalidades implementadas e responde às dúvidas dos revisores.

O objetivo do Desk Check é facilitar o entendimento do código, validar as soluções propostas, identificar possíveis problemas ou melhorias e acelerar o processo de aprovação do PR.

## Quais são os benefícios do Desk Check?

Desk Check traz vários benefícios para o time, tanto para o autor quanto para os revisores do PR. Alguns deles são:

- **Aumenta a qualidade do código**: ao apresentar o seu trabalho para outras pessoas, o autor pode perceber erros ou inconsistências que passaram despercebidos durante o desenvolvimento, principalmente em relação à lógica de negócio. Além disso, os revisores podem dar sugestões de melhoria ou apontar falhas que o autor não havia considerado.
- **Reduz o tempo de revisão**: ao invés de gastar horas lendo e testando um código complexo, os revisores podem ter uma visão geral do PR em uma sessão de Desk Check, que pode durar entre 15 e 30 minutos. Isso permite que eles foquem nos pontos mais importantes e relevantes, sem se perder em detalhes irrelevantes.
- **Promove a colaboração e o aprendizado**: ao fazer Desk Check, o time pode trocar conhecimentos, experiências e boas práticas sobre o código e o domínio do problema. Isso ajuda a criar uma cultura de feedback contínuo e a disseminar as melhores soluções entre os membros do time.
- **Aumenta a confiança e a satisfação**: ao receber um feedback positivo e construtivo sobre o seu trabalho, o autor se sente mais confiante e motivado. Ao mesmo tempo, os revisores se sentem mais envolvidos e valorizados pelo time.

## Como fazer Desk Check em times remotos?

Para fazer Desk Check em times remotos, você vai precisar de algumas ferramentas e algumas dicas. Vejamos quais são elas:

### Ferramentas

- **Uma ferramenta de videoconferência**: você precisa de uma ferramenta que permita fazer chamadas de vídeo com áudio e compartilhamento de tela entre os participantes da sessão de Desk Check. Algumas opções são Slack, Google Meet ou Microsoft Teams.
- **Uma ferramenta de gestão de código**: você vai precisar de uma ferramenta que permita criar, revisar e aprovar PRs. Algumas opções são GitHub, GitLab, Bitbucket ou Azure DevOps.
- **Uma ferramenta de gestão de tarefas**: você precisa de uma ferramenta que permita acompanhar o progresso das tarefas relacionadas ao PR. Algumas opções são Jira, Trello, Asana ou Notion.

### Dicas

- **Prepare-se com antecedência**: antes de iniciar a sessão de Desk Check, certifique-se de que o seu código está pronto para ser apresentado, sem erros ou bugs. Também verifique se o seu ambiente está configurado corretamente, com as dependências instaladas e os dados atualizados. Além disso, faça um roteiro do que você vai mostrar e explicar durante a apresentação, destacando os pontos mais importantes e relevantes.
- **Escolha um horário conveniente**: procure escolher um horário que seja conveniente para todos os participantes, entendendo a agenda de cada um.
- **Seja claro e conciso**: durante a apresentação, seja direto, claro e conciso na sua comunicação, evitando o desperdício de tempo dos envolvidos. Explique o que você fez, por que você fez e como você fez. Demonstre as funcionalidades implementadas, mostrando os cenários de sucesso e de falha. Responda às perguntas dos revisores com honestidade e respeito.
- **Seja receptivo e aberto**: durante o feedback, seja receptivo e aberto às sugestões e críticas dos revisores. Agradeça pelo tempo e pela atenção dedicados ao seu PR. Não leve as observações para o lado pessoal, mas sim como uma oportunidade de melhoria. Anote os pontos levantados e se comprometa a corrigi-los ou melhorá-los.

## Conclusão

Resumindo Desk Check é uma técnica de revisão de código que pode trazer muitos benefícios para o seu time remoto, especialmente para PRs grandes. Ao fazer Desk Check, você pode aumentar a qualidade do código, reduzir o tempo de revisão, promover a colaboração e o aprendizado, e aumentar a confiança e a satisfação do time. 

Mas o Desk Check, não é bala de prata, nem sempre vai ser adequado para todos os times e situações e nem sempre vai substituir uma revisão de código tradicional, então é importante avaliar caso-a-caso. Eu pessoalmente acho uma boa opção para:

- **PRs muito grandes:** que caso fossem ser revisadas linha-a-linha na revisão de código, como tradicionalmente, poderia gerar uma carga cognitiva muito grande ao revisor e assim prejudicar a qualidade da revisão e, portanto, do código.
- **Complementando revisões normais:** quando é feito um Desk Check além da revisão de código normal, para avaliar de forma mais abstrata a lógica e as decisões tomadas ou até como uma validação extra após outras etapas de revisão terem sido concluídas.

Espero que este post tenha sido útil para você. Se você gostou, compartilhe com seus colegas de time e deixe um comentário abaixo. Se você tem alguma dúvida ou sugestão, também fique à vontade para entrar em contato.

Obrigado pela leitura e até a próxima! 😊