When I was in high school, I used to do competitive speech.[1] I didn’t really want to do competitive speech as such; what I wanted to do was competitive debate. After all, debate was way more fun: you got to argue, on purpose, about things with little actual consequence! And you got more points for being the best arguer! What’s not to love?

Sadly, my school didn’t have enough people to do both debate and speech; we had to pick one, and since the overwhelming majority of my fellow classmates wanted to do speech, we did speech. So I had to spend four lousy years getting good at public speaking, which hasn’t come up even a single time in real life when you exclude when I speak at events and conferences and at work and so on. Clearly I lost out.

There was, of course, an event that was kind of like debate at the speech meetups. The Internet is being amazingly unhelpful in answering this question, but I believe it was called “discussion.” To the best of my recollection, in discussion, you were given a topic to discuss, and then needed to demonstrate some finesse both in keeping the discussion going, and in having the group come to an agreement over the course of the event. You were actually penalized for arguing; you got points by drawing others into the discussion, helping them flesh out their points, and helping drive consensus.

Needless to say, I never did this event. Sounded like a thing for wimps.

Strong opinions, inconsistently supported

There’s a very, very old[2] saying that many in our industry hold up on a regular basis as the ideal way for developers to have discussions: “strong opinions, weakly held.” It’s used almost as a mantra for how to be at once egoless and stay in motion. After all, if you have strong opinions, you’ll act on them, and if they’re weakly held, you’re highly amenable to changing your opinions in the face of more data. What’s not to like?

The truth is that I’ve been thinking about this a lot recently, and while I know that’s the spirit originally intended, and while I think there’s tons of value in what “strong opinions, weakly held” was originally trying to embody, I am increasingly convinced that its meaning has been coöpted by people who, like a teenage version of me, are really just pining for a good old round of high-school debate.

The original thought is one that I can pretty solidly get behind, at least in theory. As far as I can tell, the expression comes from Bob Johansen, via a post from Bob Sutton in 2006. According to that version,

Bob [Johansen] explained that weak opinions are problematic because people aren’t inspired to develop the best arguments possible for them, or to put forth the energy required to test them. Bob explained that it was just as important, however, to not be too attached to what you believe because, otherwise, it undermines your ability to “see” and “hear” evidence that clashes with your opinions

On the surface, this makes complete sense—and if this were how people actually took the expression, I doubt I’d have anything to add.

But in practice, that’s not what I actually see from people who claim to apply this rule. Instead, I see something that looks a lot more like this:

Developer A: This color is clearly a brownish gray, and everyone who disagrees with me is an idiot. Behold my strong opinion.

Developer B: It’s not a brownish gray; it’s taupe. Here’s the definition of taupe. You’re wrong. Repent before thou dost descend unto the Hellfire.

Developer A: Alas, I have seen the error of my ways. The color is clearly taupe, and everyone who disagrees with me is an idiot, including me from 15 seconds ago. Behold, ye, that my strong opinion was weakly held, and that I am now perfect in judgment.

This isn’t a “strong opinion, weakly held.” This is someone conveying their weak opinion in a forceful manner to the point of being an annoying little snot.[3]

And while this example is obviously hyperbole, I’ve seen real fights that are ever so barely removed from this extreme. Bower or Webpack? Gulp or Grunt? Go or Python? Java or Kotlin or Ceylon? I’ve seen all of these fought out tooth-and-nail by people who will, in a calm one-on-one discussion, prove surprisingly flexible, but who, in the heat of the moment, get so wrapped up in the “strong opinion” part of the quote that they forget they’re supposed to also be willing to change their minds.

In the most extreme version of this kind of attitude, you get debates over things like editors and personal workflows that don’t require buy-in from the entire team in the first place. I’d find these funnier if they weren’t so divisive, but you have whole friendships destroyed over things like Emacs v. Vim,[4] or Firefox Developer Edition v. Chrome,[5] or Windows v. OS X.[6] It doesn’t even matter what your colleague picks in these situations, because you can still use whatever you want with no repercussions whatsoever. Their decision literally just does not impact you. And yet, these can be some of the most heated debates of any I’ve ever heard.

It’s not that these are invalid discussions to have as such, but rather that you’re likely to see them very forcefully carried out, by people who, to any onlookers, sure seem to be utterly convinced that they’re correct, and who seem to be allowing no margin for error. Even if they secretly, in their heart of hearts, are still holding their strong opinion weakly, the outward appearance they project is one of a strong opinion strongly held…on arguably flimsy data.

And that’s exactly not what you want.

Sincere opinions, frightfully restrained

To borrow a phrase from a different part of our industry, this kind of dialog has a chilling effect: when developers see people stridently defending fairly inconsequential opinions, they’re going to be very, very reticent to take a stand on something that actually matters.

Most people, after all, do not enjoy conflict, and will avoid it if they have the chance. If you’re willing to go all-in on a fight over how many spaces go in a tab,[7] then heaven help me if I try to have a debate with you on whether using Docker images or a custom apt server is the best way to handle our infrastructure deployment. I’d rather just keep my opinion to myself and watch what happens, because I already know you’re going to fight me forcefully with a random assortment of arbitrary facts. So I’ll just be flexible and do whatever you want. That’s the “weakly held” bit, at least, right? I’m halfway there.

I’ve seen brilliant developers, who have great ideas when I speak to them quietly one-on-one, completely clam up in meetings when they’re in environments that espouse this mantra. They’re genuinely afraid to speak up, not because they don’t believe in what they want to say, and not because they can’t defend it, but because they know that anyone who disagrees with them will do so with violent rhetorical force. They will have to very literally fight, even if “only” verbally, for what they believe in. At the end of the day, whether consciously or subconsciously, they conclude that they’d simply rather not fight.

And now you’ve lost a valuable opinion, in a context where the outcome—unlike the conclusion to how many spaces go in a tab—may actually make a difference on whether your team can be successful.

Genuine opinions, thoughtfully presented

So let’s revisit what the original intention was. We want people to actually form a real opinion, because if they’re just trying to look at every possible side of something, they’ll never actually do anything. But we want them to be flexible, because even a well-researched, sincere opinion might be surprisingly incorrect when additional facts are presented.

I’d therefore like to propose a new version of this classic quote: genuine opinions, thoughtfully presented.

The opinions should be genuine because you should actually believe them, not just parrot them for the sake of having an opinion. While there are times and places for a tornado of possibilities, you should never take a side of an argument that you don’t believe in.[8] You should have thought through things at least long enough that you do actually believe what you’re about to say.

But as soon as you reach that place, you should thoughtfully present that opinion. It’s an opinion, after all, but it’s one you took time to create. Everyone makes mistakes, including you, but also—and this is important—the person you’re talking to. Even I, on rare occasions, have been knonw to make a mistake or two. If you don’t present your opinion, I’ll never have a chance to realize I was wrong, you’ll never have a chance to validate you’re right, and we both lose out. And as long as you do it thoughtfully, I’ll be able to calmly discuss your opinion with you so that we can resolve our differences, regardless of which of us—if, indeed, either of us—is correct at the onset.

Calm discussion is the best form of debate

In the rush to have strong opinions, we lose track of the “weakly held” part. Even if we might genuinely be willing to change our opinions, presenting our own views so strongly that we appear to have our minds fully made up can prevent those with excellent, valuable opinions from speaking up.

I might or might not have enjoyed debate more than speech; I don’t know. What I do know is that I really badly wish I’d done discussion, even if only once, because magnifying those who are just learning how to present their genuine opinions is one of the best things I can do, both as a mentor, and as a colleague.

That’s my genuine opinion, thoughtfully presented. What’s yours?

  1. The organization that puts this on is the National Forensics League, which helpfully abbreviates its name to the NFL in most documents. So if you ever meet me and I casually mention I’ve won NFL meetups, don’t ask to see my Superbowl ring, because I’ve lent it out for the time being. ↩︎

  2. I mean, in industry terms. So, older than last week. ↩︎

  3. I’ve been told I name-call too much in my blog posts. Anyone who says that is a big fat nincompoop. ↩︎

  4. Emacs. ↩︎

  5. Firefox. ↩︎

  6. OS/2 Warp!, for PowerPC, little-endian, and anyone who says otherwise is a pinko commie. There. I think I’ve now fully offended everyone I can.[9] ↩︎

  7. Seven. ↩︎

  8. Except when it comes to clothing fashions. I give up. If we all want to pretend that an un-tucked shirt with corduroys, a fedora, a used blazer, and US Keds is the apex of hip, rather than the completely expected outcome of a bunch of affluent extraterrestrials concluding that Goodwill represented our species’ best unified clothing line, then so be it. ↩︎

  9. No no, wait, hang on, I got it: and stick to just using WinOS2, since there are no good native apps for OS/2. There. Now I think I’m good. ↩︎