Reviewing to GIVE

Let’s imagine that you’re feeling anxious about giving a code review. Maybe the submitter has more experience than you do, and so you start doubting what you know, leading you to rubber stamp with “LGTM!” Or maybe the submitter gave you no direction, and so now you’re sifting through lines of code, making trivial comments like “Great use of a closure!” or merely creating task lists without remembering that there’s a human who will read the review, like “CHANGE THIS: make this a constant, and move it to the settings file.”

We call these avoidant code reviews. Because avoidant code reviews keep you from fully engaging with the person writing the code, they tend to be overly generic or inadvertently cold. This increases the likelihood of you missing a bug, as well as your submitter reacting negatively toward you, thus actually increasing your anxiety in the future!


Now let’s imagine that you instead write a review that says “I can see a lot of effort and dedication went into this and I appreciate the approach you took. The code looks really solid, and it lays a good foundation for the new feature. I think you could move a couple constants created here to the settings file, but otherwise this code is very DRY. Great work!”

We call this a GIVE review. GIVE is a skill adapted from Dialectical Behavior Therapy and gives a framework for effectively providing feedback.

The framework not only helps you stay focused and engaged with the review, but also reminds you to take the submitter’s psychological experiences into consideration, resulting in less anxiety for you and your teammates in the future! GIVE is an acronym that stands for Gentle, Interested, Validate, and Easy Manner. Let’s break down how it works below.

  • Gentle. Provide feedback in a gentle manner. Avoid commanding, dictating, or belittling the author, and instead consider how you might want to receive feedback on something you worked hard on.

  • Interested. Demonstrate that you’re interested and invested in the code quality and the author’s work by providing specific feedback and putting effort into the review. Example: “I think some of these functions could be asynchronous to handle making multiple requests more efficiently.”

  • Validate. Make a point to acknowledge any anxiety, effort, and learning by acknowledging that coding is a complex, high-effort task, and that we are all always learning. Example: “I can see a lot of effort and dedication went into this and I appreciate the approach you took.”

  • Easy manner. Don’t just throw solutions at the author. Explain why you are suggesting things, and be sure to follow up by reiterating the authors’ good work or effort. Example: “I think adding these constants to the settings file could make future code additions easier, but otherwise this code is very DRY. Great work!”


Let's Practice!

Go ahead and write down a GIVE review for YOUR code review, and remember to be gentle, interested, validate, and have an easy manner.

Last updated