Hacker News new | ask | show | jobs
by InsideOutSanta 431 days ago
I think this article confuses an absence of "heated arguments" with a lack of constructive, critical discussions. I've found that in mature teams with high trust, people don't have heated arguments precisely because they are not afraid that their voices will be ignored. There is no need to become heated because you trust that the other people on the team will hear you out and consider your viewpoint.

>code that nobody questions usually crashes in production

I don't understand what that means.

4 comments

> I don't understand what that means.

Probably "code that nobody critiques will fail in production". That's not always true I guess.

On the first team where we did code reviews, I found in RCAs for the bad bugs that snuck in that there was a dearth of comments on the CR that introduced it.

But usually the severity was more correlated with a lack of comments on the tests. Giant holes in test cases meant giant bugs. So don’t call a PR ready to land until you’ve gotten a few substantive critiques. Because the absence of evidence is not evidence of absence.

For the bugs I introduced (I am highly bug-averse) it was either zero comments on tests, or bugs introduced by the CR process - changes I was coerced into making that I felt were wrong. And I can’t say which sort of subconscious resistance was at work there. Self sabotage for making changes I don’t want to, or my sixth sense for robust code telling me the suggestion is an antipattern. Probably both.

What I learned from that last, which I confirmed in subsequent years, was that as a team you should only tolerate major pushback on a CR/PR at the beginning of the review process. Anyone who jumps in late with Needs Work demands, especially after a round of feedback changes has already landed, has lost their right to participate in the review. Because as a PR drags on, everyone gets tired of looking at it and has a less critical eye for spotting bugs that have been introduced by committee. It quickly becomes better odds that the original bugs the early reviewers did not catch are less dangerous than the ones that will be introduced by work-hardening the PR.

It’s the same mechanic that makes pushing code or a deployment after 4pm a bad idea. Confirmation bias is greatly amplified by a desire to be somewhere else.

> …in mature teams with high trust, people don’t have heated arguments…

This dynamic flourishes when the stakes and/or uncertainty are low enough.

High stakes and high uncertainty means everyone’s pushing their intuition and their reasoning as far as they can. They’re at their limit of what can be communicated efficiently. This results in an uneven distribution of communication bandwidth across the edges in the team network. Accountability induces leadership and competing views are ascendant and in decline.

I think it’s reasonable to wonder that, if the temperature never rises about room temperature, the team might not be fully challenging itself.

>I think it’s reasonable to wonder that, if the temperature never rises about room temperature, the team might not be fully challenging itself.

I suspect this only seems reasonable if you've never experienced a healthy work environment. I probably would have agreed with you when I was in my twenties, working at a startup with another bunch of twenty-year-old guys and a CEO who was in over his head. It wasn't unusual for the whole company to yell at each other in a meeting room. The stakes seemed high then, but they seem ridiculous in hindsight, as does my own behavior.

Thirty years later, the stakes are much higher, and the temperate is much lower. This is precisely because we can't afford this behavior, and we can't afford to deal with people who can't control themselves and behave professionally in high-pressure situations.

My experience agrees with you — which is why I tried to hedge in my statement — but meanwhile tech culture treasures its stories (perhaps just-so stories) of demanding leaders getting better performance from outrageous targets.
> this article confuses an absence of "heated arguments" with a lack of constructive, critical discussions.

Doesn't the article refute exactly this point of view? In "The hidden cost of “nice” teams" section:

"Those teams weren’t actually harmonious—they were conflict-avoidant. The disagreements still existed; they just went underground."

>Those teams weren’t actually harmonious—they were conflict-avoidant.

In my experience, this is not true because, in high-trust teams, there is "harmonious conflict." People offer criticism without getting heated.

Getting heated often results from a strong opinion combined with a lack of faith that other people are genuinely considering your opinion. People who get heated feel they have to be forceful to convince others to listen. Knowing your opinion will be hard and carefully considered, you don't need to get heated.

From being in a company with places across all of Europe, I've also found that "heated" means very different things in different places. Like, I'm exaggerating a little bit, but the calm discussion where to get dinner in Spain can be a lot more energetic than a very heated discussion about a strategic problem between some Brits and Germans.

But with less jest - I think we have a very good discussion culture in the team at work. No one on the team is scared to disagree, or to point out that this doesn't seem to go towards a positive direction. It's just not a heated discussion.

At times during these planning sessions, we just sit in silent thought and maybe doodling something in Excalidraw or on paper for a few minutes until someone is like "I need more input on X", or "So I have a rough plan I think?" or "I think there is an issue with that idea", even if it's not clear why - if 2 or 3 people are vaguely not fine with something, it's probably a bad idea. And we've also started to learn each others tells if we're not happy.

Interesting take, and most probably you are right. But this requires at least two people with a above-the-average emotional intelligence. And in our trade, in my opinion and experience, it's not easy to find people that excel in both emotional and practical problem solving intelligences. So, having a profound technical discussion in a team without heating it up at least a bit, it's difficult. Now, it can heat up and then it can be like nothing really happened, because as time passes and people can reflect on it, they soon realize it was just a technical discussion; but in the heat of the moment if you have the ego strong enough to defend your position, most persons will heat up as well.
I find the heated discussions happen in teams where things actually matter. If arguments never get heated, its because everyone knows it doesn't matter in the first place and you can just get by with silently nodding.
The only two options you mention are "getting heated" and "silently nodding." Healthy teams exist between these two extremes.
Maybe, but if you're never getting heated, the work doesn't matter in the first place.
I genuinely don't know how to respond to that. The idea of connecting anger to the relevancy of one's work seems so strange to me.
In my eyes a critical discussion does not mean that the disagreements went underground. If the team is doing its best to resolve the issue, what else are you going to do? I certainly do not believe that yelling at each other is helpful.

A toxic consensus culture usually does not even allow for a serious, critical discussion, but dissenters are just ignored or verbally patted on the head.

> I don't understand what that means.

Shit code or architecture that other devs didn't call out.