My current biggest pet peeve in PR reviews is the “Jedi Mind Trick” phrasing for feedback. “We want to be doing X in these situations”, “We don’t want to use default exports”, etc. Who is the “We” in these statements? This feels like an application of peer pressure, rather than persuasion in reviews.
I think we can build a better collaboration culture by attempting to kindly persuade our colleagues, rather than manipulate them. This pattern is attempting to manipulate a person through peer pressure. Don’t be a manipulative space wizard!
A pull request represents a person’s effort and creativity. That effort and creativity deserves our best effort at constructive feedback.
Let’s take the example of “We don’t want to use default exports”
A significant upgrade to this would be to make your case for why it would be better to not use default exports. “To be more consistent with other files in this module, perhaps we could use named exports over default exports here?”
An even bigger upgrade - “We had a discussion here about named vs default exports and settled on only using named exports in this project. That’s been added to our styleguide here.” If a new team member is missing some context on an old decision, sharing how and when these decisions were made can help.
The best possible upgrade for small code style changes would be to use linting tools to define style expectations. If linting is part of your CI process, the PR author will receive automated feedback and the need for a discussion is avoided entirely.
Our communication style in pull request reviews matters, particularly when collaborating asynchronously. Our comments in collaboration tools don’t only communicate ideas. They also communicate our feelings towards our colleages, intentionally or not. Friendly feedback with the intent to persuade is not only effective, but spreads good stuff like positive feelings and trust.