Desk Check in remote teams
Tags: discuss, productivity, tutorial, development
Published: 2024-01-19 13:19:04

As developers, we try our best to avoid submitting overly large pull requests (PRs), but it's not always possible, either due to the scale of the task or the difficulty of breaking it into smaller parts. With that said, have you ever found yourself in a situation where you need to review a colleague's very large and complex PR? Do you feel that it would take hours to grasp the code, test the functionalities, check quality standards, and provide constructive feedback, or that you might get lost amid so many files? Would you like a quicker and more effective way to do this?

If you answered yes to these questions, then you can benefit from a technique called Desk Check. In this post, I'll explain what Desk Check is, its benefits, and how to apply it.

## What is Desk Check?

Desk Check is a code review practice involving a synchronous session between the PR author and one or more reviewers. During this session, the author presents their work, explains the decisions made, demonstrates implemented features, and responds to reviewers' questions.

The goal of Desk Check is to facilitate code understanding, validate proposed solutions, identify potential issues or improvements, and expedite the PR approval process.

## What are the benefits of Desk Check?

Desk Check offers several benefits to the team, both for the author and the PR reviewers. Some of these are:

- **Enhances code quality**: By presenting work to others, the author may notice errors or inconsistencies overlooked during development, especially concerning business logic. Additionally, reviewers can suggest improvements or point out flaws the author hadn't considered.
- **Reduces review time**: Instead of spending hours reading and testing complex code, reviewers can get an overview of the PR in a Desk Check session lasting between 15 and 30 minutes. This allows them to focus on the most important and relevant points without getting lost in irrelevant details.
- **Promotes collaboration and learning**: Through Desk Check, the team can exchange knowledge, experiences, and best practices regarding code and problem domain. This helps foster a culture of continuous feedback and disseminate optimal solutions among team members.
- **Increases confidence and satisfaction**: Positive and constructive feedback on their work boosts the author's confidence and motivation. Simultaneously, reviewers feel more engaged and valued by the team.

## How to conduct Desk Check in remote teams?

To conduct Desk Check in remote teams, you'll need some tools and tips. Let's explore what they are:

### Tools

- **Video conferencing tool**: You require a tool enabling video and audio calls with screen sharing for Desk Check sessions. Options include Slack, Google Meet, or Microsoft Teams.
- **Code management tool**: You'll need a tool for creating, reviewing, and approving PRs. Options include GitHub, GitLab, Bitbucket, or Azure DevOps.
- **Task management tool**: A tool to track tasks related to the PR's progress is essential. Options include Jira, Trello, Asana, or Notion.

### Tips

- **Prepare in advance**: Before starting the Desk Check session, ensure your code is ready to be presented without errors or bugs. Confirm your environment is set up correctly with installed dependencies and updated data. Additionally, create a script outlining what you'll show and explain during the presentation, highlighting key points.
- **Choose a convenient time**: Select a time convenient for all participants, considering everyone's schedules.
- **Be clear and concise**: During the presentation, communicate directly, clearly, and concisely, avoiding wasting participants' time. Explain what you did, why you did it, and how you did it. Demonstrate implemented features, showcasing both success and failure scenarios. Answer reviewers' questions with honesty and respect.
- **Be receptive and open**: During feedback, be receptive and open to reviewers' suggestions and criticisms. Appreciate the time and attention given to your PR. Don't take observations personally but as opportunities for improvement. Take note of raised points and commit to addressing or improving them.

## Conclusion

In summary, Desk Check is a code review technique that can bring many benefits to your remote team, especially for large PRs. Through Desk Check, you can enhance code quality, reduce review time, promote collaboration and learning, and increase team confidence and satisfaction.

However, Desk Check isn't a silver bullet and may not always be suitable for all teams and situations. It may not replace traditional code reviews entirely, so it's essential to assess on a case-by-case basis. I find it a good option for:

- **Very large PRs**: Reviewing line by line traditionally could impose a significant cognitive load on the reviewer, potentially compromising the quality of the review and, consequently, the code.
- **Complementing normal reviews**: Conducting a Desk Check in addition to a regular code review, to abstractly evaluate the logic and decisions or as an extra validation after other review steps have concluded.

I hope this post has been helpful to you. If you liked it, share it with your team colleagues, and leave a comment below. If you have any questions or suggestions, feel free to reach out.

Thanks for reading, and until next time! 😊