Flaming people versus flaming code

Reading time: 2 minutes

I think many open-source communities suffer from two related flaws:

  1. We think flaming someone’s code is an acceptable or useful form of technical critique

  2. We react to flames against our code as personal attacks

When both occur, we have problems.

Statements like “this code is stupid” or “this code is insane” aren’t constructive because they don’t contain any useful information about what was seen as a problem and because most people reasonably take pride in their work and don’t like hearing it disparaged.

Better: “This code is insane because it changes the public API” or “This code is stupid because it adds too many dependencies”.

Even better: “I don’t like this code because it changes the public API” or “I wouldn’t use this code because it adds too many dependencies”

It’s possible this generalizes into the “you/I” forms of argument.

E.g. “You’re insane” vs “I’m angry” vs “When you add extra dependencies to a module I depend on, I get angry because I try to keep a minimum dependency tree and it means I have to do work to find an alternative to something I used to be able to rely on.”

The next time someone’s code bothers you, step back from your initial inclination to flame the code, and find a more constructive way to convey the specifics of what bothers you.

•      •      •

If you enjoyed this or have feedback, please let me know by or