Creating quality code is tricky, whether it be for data analysis or a software package or some other context. If your lab creates code, it’s ideal to use a system of code review! But how to get started? Here’s some resources, tips, and ideas to help you.

Code review does take more time upfront than not doing code review, but the long-term benefits of code review are worth the upfront costs. Code review will not make your code perfect, but it will help to make your code less wrong.

The most rewarding ventures into code review start with the mentality that being wrong is okay and expected sometimes!. Indeed, Code review helps us uncover the mistakes rather than keeping them hidden. Uncovered mistakes allow 1) Everyone to learn! and 2) For the code product to be improved!.

Benefits of code review

  • More efficient code!
  • More readable code!
  • More reproducible code!
  • Less wrong code!
  • Both the people who write the code originally and review the code will learn more by doing code review!
  • More transparency around the inner workings of the code of a project.
  • Makes it easier to publish, share and reuse code later!

More reading

Code review works best when the whole lab is committed to the process. Your lab can use the resources here and discuss how you’d like to set up a code review system. Throughout this process of code review and especially when setting up a new method in your lab, communication is critical. Everyone in the lab should err on the side of over-communication!

Code review and Lab roles

Depending on your role in your lab, there are different resources we recommend. We’ve defined three different kinds of roles for the purposes of these resources and discussion.

Note that these are not formal titles, but more general descriptions of responsibilities members of a lab might have. We’ve created them to help with our general discussion about lab dynamics and how code review might take place most effectively and efficiently in your lab.

  • Lab Leader - Oversees a lab with people who write code
  • Lab Manager - Mentors people who are write code but also sometimes writes code themselves
  • Lab Developer - Writes code

Overview of project development

This is a very general overview of what project development may look like. In reality, project development doesn’t take the form of perfect linear steps that lead nicely from one to the other nor is every lab structured exactly the same.

A lot of your team’s own project development will be something you all need to learn and determine what works best as a group. This is to say that communication that is loaded with empathy is of the utmost importance throughout this process from all parties.

From here, we recommend you go to the page that most closely describes your role in your lab:

* Completely overwhelmed? Don’t know where to start? Fill out this form and let us know what’s going on.