5 minutes read
A tale of one opinion vs a sea of others
Why diversity of opinions is a blessing and a curse at the same time
Cover image

Pros

Cons


The previous company I worked for was a small startup where the entire full-stack dev team was just me and the VP of R&D (sounds like a recipe for backlog starvation).
It created an interesting situation where throughout the 2.5 years I was there, I didn’t find myself in many technical disputes with the VP.
Most of our disagreements were minor, like whether to call our API Endpoint /api/user or /api/users (if your answer is /api/user you’re sick and twisted).
There were a few bigger arguments here and there, but they were so few and far between that it’s hard even to remember them.

Later on, I joined the startup where I currently work, and when I got there, I landed into a founding development team of six people.
Six minds that were as brilliant as they were opinionated, at a level akin to politicians in an eccentric election campaign.
It was a culture shock for me.
We argued and clashed over almost everything imaginable (you’d be surprised how much naming convention can be a heated topic).
Not that we never agreed on anything, and many times when we argued, I understood where their opinions came from, even if I didn’t agree.
Other times, when I heard their opinions, I would go and drink a glass of water just to spray it out of my mouth in astonishment and disgust.

Learning the Game of Conflicts

Diversity of opinions is a blessing and a curse at the same time , like having a dog you enjoy the company of until you discover it’s shitting on your couch, right where you like to sit.
It often leads to important and necessary discussions. When each person brings some slightly different ideologies, combined with their unique experience and knowledge, you get an interesting mosaic of intelligence and understanding.

I admit I’ve learned much more from these clashes than I did from the few arguments I had with the VP in the previous company.
But surprisingly, I don’t think the important learning was on the technical level.
In the end, developers will always be divided in their approaches and ideologies (and sometimes as far as in their philosophies), but how we deal with that fact is what matters.
The idea is to accept it as part of the game: we won’t always be on the right side of the argument. Sometimes it will end in our favor and sometimes someone above us will have the final say against us.

In times when we lose the argument, it’s very easy to take it to a very dark place and develop some sort of antagonism towards the decision or even the people behind it.
While the thought of kicking those people in the nuts and sending them into early retirement is comforting, if that’s how we’ll deal with it every time we reach that point, we’ll quickly realize that we’re out of nuts to kick.

Avoiding the Abyss of Despair

On the other hand, what happens when we experience a sequence of losses?
What happens when all recent decisions being made feel like a personal slap in your face?
From my experience, this is the point where it’s easiest to fall into a kind of despair, the kind that makes you say, “To hell with everything, let them decide what they want! When this company goes down and these offices burn, I’ll be laughing hysterically over my burning desk! They deserve it! All because they went with /api/user!”

However, this is also an extreme situation we shouldn’t reach.
There’s internal work we need to do to understand that instead of tallying up how many wins or losses we’ve had, it’s better to take a look at ourselves.
It’s worthwhile to see if we presented the advantages of our approach and disadvantages of the opposing approach clearly because that’s all we can do.
In more times than you might think, this ends up being the #1 reason why we lost.
The way we present things matters. It’s true for real-life arguments as much as it is for technical ones (if only I could win arguments against my wife with a 20-slide presentation and some testimonials).

A Classic Case of Trade-Offs

One time, I found myself in a very heated argument with two other developers about our entire approach when designing our APIs and how the client consumes them.
It was a classic case of trade-offs.
They had their upsides and downsides, and I had mine, but I’ll be damned if I was going to let them win.
The discussion went on for so long, but I didn’t care. I was ready to die on this hill.
And then I lost.
My manager ended up siding against me and called it.

Was I pissed off?
Oh, you bet I was.
Was I about to burn the office down?
Well, gasoline is quite expensive these days, so I ended up not doing that.

However, coming out of the discussion, I realized that I couldn’t be angry, and I couldn’t blame anyone.
I clearly laid out the pros and cons, and there was nothing I could’ve done better.
My manager made a decision based on what he thought was best for the company, and overall I could see the upsides of the opposing side’s approach.
Like I said, this is the game: you win some, you lose some.
As long as it seems balanced, and you don’t feel like you could’ve done more, it’s all good.

Conclusion

Do I miss the way it was in the previous company, where there were minimal disagreements and fewer whiteboard markers thrown at people?
Definitely.
Do I want to go back to that?
Hard to say.
I actually quite enjoy throwing whiteboard markers at people.