Code reviews are essential for maintaining code quality and helping developers sharpen their coding skills. However, code reviews are also difficult to get right. Many code review comments end up being unclear, trivial, or condescending.
With compassion as a guideline, though, we can work to establish code review practices that minimize suffering for everyone involved—the code authors, the code reviewers, the code maintainers, and even the end users.
In this talk, you’ll learn that Compassionate Code Reviews are not about “sugarcoating” feedback and actually demand a considerable degree of candor. Equipped with a set of guidelines for executing Compassionate Code Reviews, you’ll leave inspired to apply them on your team to create better code and happier coders.
Delivered September 5, 2018 at try! Swift NYC
11. @APRILWENSEL
COMPASSION
“THE FEELING THAT ARISES WHEN YOU
ARE CONFRONTED WITH ANOTHER’S
SUFFERING AND FEEL MOTIVATED TO
RELIEVE THAT SUFFERING”
https://greatergood.berkeley.edu/topic/compassion/definition
14. “THE COMPASSIONATE [BUSINESS] UNITS
EXHIBITED BETTER FINANCIAL
PERFORMANCE…AND THESE UNITS REALIZED
HIGHER EMPLOYEE AND CUSTOMER RETENTION.”
Monica Worline & Jane Dutton
Awakening Compassion at Work
@APRILWENSEL
15. "PEOPLE IN POSITIVE WORK
ENVIRONMENTS OUTPERFORM THOSE
WHO WORK IN NEGATIVE CLIMATES BY
10-30%."
Shawn Murphy
The Optimistic Workplace
@APRILWENSEL
17. BENEFITS OF COMPASSION
@APRILWENSEL
‣ JOY
‣ RESILIENCE
‣ PEACE OF MIND
‣ JOB SATISFACTION
‣ LOWER CHANCE OF BURNOUT
https://greatergood.berkeley.edu/topic/compassion/definition#why-practice
32. IS IT TRUE?
@APRILWENSEL
1
✦ IF IT’S YOUR OPINION, SAY SO
✦ IF IT’S A FACT, CONSIDER SHARING A
SOURCE
✦ AVOID RIGHT/WRONG LANGUAGE
✦ TRY A QUESTION INSTEAD
✦ AVOID “SHOULDING” ON PEOPLE
47. BEING KIND IS ULTIMATELY
MORE EFFICIENT BECAUSE YOU
AVOID TRIGGERING SOMEONE’S
DEFENSIVE THREAT RESPONSE
@APRILWENSEL
48. EXAMPLE:
“The above code is [BLEEP], and it generates [BLEEP] code. It looks
bad, and there's no reason for it.
The code could *easily* have been done with just a single and
understandable conditional…I really see no reason for this kind of
complete idiotic [BLEEP].”
@APRILWENSELhttp://lkml.iu.edu/hypermail/linux/kernel/1510.3/02866.html
49. EXAMPLE:
“The above code is [BLEEP], and it generates [BLEEP] code. It looks
bad, and there's no reason for it.
The code could *easily* have been done with just a single and
understandable conditional…I really see no reason for this kind of
complete idiotic [BLEEP].”
@APRILWENSELhttp://lkml.iu.edu/hypermail/linux/kernel/1510.3/02866.html
IS IT KIND?
55. EXAMPLE:
REVIEWER: “GIVEN THE DEPENDENCIES, I’M
CONCERNED THAT IT WILL BE DIFFICULT TO MODIFY
THIS IN THE FUTURE.”
AUTHOR: “I THINK THAT’S A TRIVIAL CONCERN.”
@APRILWENSEL
56. EXAMPLE:
REVIEWER: “GIVEN THE DEPENDENCIES, I’M
CONCERNED THAT IT WILL BE DIFFICULT TO MODIFY
THIS IN THE FUTURE.”
AUTHOR: “I THINK THAT’S A TRIVIAL CONCERN.”
@APRILWENSELIS IT KIND?
61. IT’S KIND TO HELP PEOPLE
IMPROVE;
IT’S NOT KIND TO SHAME
THEM IN THE PROCESS
@APRILWENSEL
62. IS IT KIND?
@APRILWENSEL
3
✦ TAKE A BREATH
✦ AVOID INSULTS AND SHAMING
✦ REMEMBER YOU’RE DEALING WITH HUMANS
✦ ASSUME COMPETENCE; SEEK TO UNDERSTAND
✦ CHOOSE THE RIGHT MEDIUM
✦ OFFER GRATITUDE
63. @APRILWENSEL
3 FILTERS FOR COMPASSIONATE
CODE REVIEWS
1 2 3
IS IT TRUE? IS IT NECESSARY? IS IT KIND?
Inspired by Victoria Moran - Creating a Charmed Life
66. ‣ EGO
‣ ELITISM
‣ COMPETITION
‣ BEING “SMART”
‣ BEING A “ROCKSTAR”
@APRILWENSEL
THE STATUS QUO OF TECH CULTURE
67. ‣ EGO HUMILITY
‣ ELITISM INCLUSION
‣ COMPETITION COOPERATION
‣ BEING “SMART” LEARNING
‣ BEING A “ROCKSTAR” BEING A MENTOR
@APRILWENSEL
THE COMPASSIONATE FUTURE OF TECH CULTURE