Async non-blocking Code Reviews | Frank Koornstra

Improve code reviews with async non-blocking techniques, optimize reviewer load, and establish a positive atmosphere for a more constructive and efficient collaborative process.

Key takeaways
  • Blocking comments are those that require additional work before approval, such as fixing low-quality tests or resolving blocking issues.
  • Offloading tasks to others, like requesting feedback from multiple people, can reduce the load on reviewers.
  • Code reviews should not be overly critical, as this can lead to writer’s block and discouragement.
  • Developing a code review etiquette can help establish a positive and constructive atmosphere.
  • Using async and non-blocking patterns can improve code reviews by reducing the overhead of real-time feedback.
  • Pairing or co-designing with others can help identify and resolve issues more efficiently.
  • Using code review tools, such as PHPCS, can help automate quality checks and improve consistency.
  • Communicating upfront and setting expectations can help prevent misunderstandings and conflicts.
  • Smaller, focused code reviews can be more effective than lengthy, comprehensive reviews.
  • Leaving technical discussions to those with specialist knowledge can help ensure that issues are addressed correctly.
  • Inconsistent commenting can lead to confusion and increase the number of revisions; use clear and concise language to avoid this.
  • Using a consistent naming convention and following coding standards can improve readability and maintainability.
  • Code reviews should not be seen as an opportunity to criticize or scold, but rather as a collaborative process to improve code quality.
  • Using asynchronous communication can help reduce the Load on reviewers and improve efficiency.
  • More reviewers do not always mean better, as this can lead to confusion and conflicting opinions; select reviewers based on their expertise and the issue at hand.
  • Code reviews should be conducted in a timely manner to prevent issues from falling through the cracks.
  • Continuous integration and continuous deployment can help improve code quality and reduce the need for extensive code reviews.
  • Disagreeing and committing can be a useful approach to code reviews, as it allows for rapid progress while still considering feedback.
  • Retrospective analysis can help identify patterns and areas for improvement in code reviews.
  • Modeling code reviews after successful patterns, such as the four-quadrant model, can help establish effective best practices.