Skip to content

Comment on Why Your 'Harmonious' Team Is Failing

Comments

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.

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.

Had multiple girlfriends for whom having regular fights was an essential part of a "healthy" relationship, e.g. told me clearly the relationship was dead if we didn't have any conflicts. I guess that's the same mindset ..

Ok, lets go with this, because empathy is hard, and it seems that most here have not experienced working on complex projects. I've personally experienced this.

We have a project to develop a new engine, its teklaover budget, very late, and requires a ton more work and excuses are running thin.

My team is running barebones with 60-70 hour weeks trying to get the ratings done, the test team is waiting on us for the ratings to get their work done and THEIR manager is pissed because they're billing for time on their books waiting for us to get our shit together. There is no more room to delay the tests because another team also needs their project tested and has waited for the test team to free up.

Meanwhile, my bosses boss is pressuring my boss to submit what ratings data we have to get approved to start testing. The test teams boss is begging us to submit the data too so he doesn't have to bill time for being idle on standby.

Tired of fighting, we submit the ratings data and tests starts. And boom 2000 hours into testing the gearbox fails and blows out the back of the engine at 4am. The test facility is now inoperative until cleanup finishes and several hundred hours are now needing to be spent figuring out why a $3 million engine just blew itself up.

The cleanup team is now being paid a fuckton of overtime to clean up the mess, and an army of people are being summoned to provision a new test engine.

The test team now needs to spend extra time writing reports, the ratings team now needs to go overtime to detail why they fucked up and why we suck so much at our jobs, on top of their normal work, and the customer is super fucking pissed.

So yeah, there is no anger if stuff doesn't matter. When stuff does matter, anger happens. It's very easy to sit back and claim "no heated discussions" when it doesn't involve millions of dollars and hundreds of hours of other peoples time when its your team that caused the fuck up

Have you considered you internalised and normalised working in environments that are messed up 5 steps before the final problem? Crunch, angry managers, thinking "(they're) waiting for us to get our shit together" when planning/communication failed at higher level, "boss is begging us to submit the data" which has likely no impact on your speed of work, "and several hundred hours are now needing to be spent figuring out" is a thing that you have a process for and you know it can happen so the risk should be accounted for ahead of time and not surprising, "why they fucked up and why we suck" when things you know can fail do fail, "the ratings team now needs to go overtime" means more planning failure, etc.

This is toxic BS and mismanagement. It's people not accounting for and communicating risk properly. None of that anger and finger pointing makes this work faster or better. Everything here could happen exactly as it happened, but without anger, if people communicated risks properly and took the failure (which will happen) as part of the process, people would be less stressed about it, and maybe they'd make fewer mistakes too.

Maybe it was correct to progress without better data, or maybe the cost of doing that was too high. Either way, someone should've redone the schedule to match reality, so blocked teams don't get anxious. Then someone should've done the risk/benefit analysis and signed off on the "proceed with testing anyway, we are aware of and accept the risk" path, so nobody talks about fucking up, but concentrates on doing the best they can instead.

Nothing you describe is normal, healthy, worthy of emulation, or good.

I've worked in large cross-company teams on extremely complex products with millions of LOC and thirty-year-old obsolete code handling millions of US$s of bank transactions. I've been in situations where people made mistakes, systems went down, and transactions were lost. I've been in incredibly stressful situations.

Do you know what would have made none of these situations better? Anger.

it seems that most here have not experienced working on complex projects

The hubris in this sentence is chef's kiss. You have no idea.

When stuff does matter, anger happens

No, anger is completely unnecessary. It's a poor way to act and communicate, often counter-productive and terrible for morale.

As the other poster said, this sounds more like a toxic work environment than like an environment were constructive (those are rarely heated) discussions take place that will actually improve a project. I mean maybe everyone was so busy shouting at each other that they forgot to actually properly plan and risk manage the project?

It sounds to me like lots of discussions should have been had before getting to this point? So sure at the point where you ended up, things get heated because everyone is overworked and frustrated and being pressured from all sides, but that's not really a function of a complex project, but more of a poorly managed/executed one?

Sounds like a LOT of wishful thinking. It doesn’t matter what your boss wants. They were living in a fantasy land where they imagined the project going differently.

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.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.