Poor communication red flags

A “code smell” in software dev is a case where it may not be perfectly clear what is wrong with a section of code or a design, but … there’s definitely something, and the team should dig into it before going ahead. There are similar red flags that communication in your team isn’t happening as it should — and you should take a closer look, whether you’re leading the team or not.

Peter Senge’s focus on systems thinking is very relevant here (see “The Fifth Discipline”; a classic). A team (and a company) is a complex system that’s not self-correcting/improving by default; if you just leave your communication culture to develop on its own, this system will lose energy & focus to random communication failures, and break down dramatically under strain — i.e., at the worst possible time.

Here’s a list of 8 red flags that your team isn’t communicating effectively — see which ones you recognize, and we’ll review some strategies to address them.

1. You’re nearing a secret tipping point

There’s a growing problem; when it hits a tipping point, then you’ll take some irrevocable, probably harmful action.

angry, crossed arms

What?! That’s the 2nd time this week he’s gotten into some kind of pissing match with his team lead. I don’t know what’s gotten into him lately, but this is the last straw; he’s got to go.

cheeky face

He doesn’t know who he’s messing with — I wrote our entire front end, and I talk to the CEO nearly every day! If he blocks one more of my pull requests for dumb reasons, he’s going to regret it.

tired face

My normal role is quite good, but now they’re asking us to cover support as well, even out of hours… I’ll try it out, but I think it’s time to start job hunting.

Silver lining: the necessary communication will happen, once the tipping point is reached.

Dark cloud: the damage & distraction is accruing, and the (eventual) action will cause far more harm than an earlier, collaborative intervention would have.


  1. These are now hard conversations, and they need to happen ASAP, but with planning to minimize damage. I’ll go into more detail (and offer tools/approaches I’ve learned & used) in upcoming posts.
  2. The team needs live feedback loops to expose problems before they become tricky to fix, before people are seriously upset and damage is already done.

2. High-emotion actions

Sometimes the aftermath of #1, if no one steps in and hits the brakes. This is why there are “cooling off periods” during high stakes negotiations: our rational thinking is seriously harmed by strong emotion. Combine strong emotion with the power to make long-term, large decisions at the drop of a hat, and the results will be unpleasant.

Emotional debates aren’t always harmful, of course; a passionate debate may tear through fluff & hand-waving at high speed, and carry a discussion to unexpected places. It gets rough when the manager/leader jumps in and finalizes a hasty decision to shut down debate (and exert control), it loses its practical focus, or poorly-made arguments cause offense & defensiveness.

This red flag also covers reactive killing of projects, contracts & ties (including relationships outside the company), rage-quitting and firing, and public blame / shame.

rage, waving finger

How can that be your excuse? That doesn’t even make sense! Why didn’t you — oh, never mind; I’m canceling the project. This is too much of a headache!

Or… the flip side: strong positive emotions can trigger decisions that really need deeper analysis & discussion. Analysis paralysis is bad, but bypassing analysis & review of different viewpoints can do just as much harm:

  • The devil is in the details, never in the executive summary or elevator pitch version.
  • If the business or team has a pressing need, many people are thinking about it and have ideas & worries. Committing to the first plausible pitch means throwing out everyone else’s efforts & thoughts. Wasted & ignored work feels awful; it’s demoralizing, disempowering, and… well, wasteful.


  • Leaders gotta lead: model transparent & inclusive decision-making, and don’t confuse “be decisive” with “be reactive”.
  • Be cautious of your first reaction: people can get tripped up in defensive reactions to (seeming) threats to their authority.
  • Remember that (as a leader), your actions are a guide for the future. Don’t accidentally teach your team that the person who pitches you first wins & everyone else loses.
  • If an open debate is heated: separate it from the decision. Refocus the current discussion to collect & document risks, options, etc., give people time to think about the write-up from the first call (and notice forgotten points, digest opposing arguments…), and have a separate, focused discussion to finalize the path & commit.
  • Do you get bogged down when you involve more people in major decisions? Bringing a group discussion to a well-considered decision is genuinely challenging, but a hugely valuable skill — don’t give up! Keep practicing and developing the skills, for yourself and everyone on the team.
  • The team needs active feedback loops, so it’s possible to act before an annoyance becomes a consuming frustration & trigger.
  • Strong cultural guidance (on chat, etc.) around respectful, effective discussion; sarcasm, condescension, etc. do do damage, most of the time.

“We do not make big decisions while upset” is a valuable guideline in all relationships, really. An angry discussion shows that there’s a serious problem that needs attention, but not that it must be decided right now.

3. You’re drained from faking how you feel

…or commonly find yourself saying things you don’t believe, as “part of the job”, to avoid unfair punishment, to mask your anxiety or feeling like an imposter, to follow a “culture” that you think is odd or unnatural, etc..

Slack conversation:
comment from chipset: mainly don't forget that if you go with this option, it means you're working in code that affects the database, so you'll need to have an integratin test in your pr
Reply from theothercat: Thank you and sorry for the interruption! I think I am all set now :D
I hardly understood a word of that! Ugh… I’ll try stackoverflow again, and maybe not sleep tonight; I really need to keep this job! 🙁
reassuring smile

I really appreciate the extra effort you’re putting in, that’s great, really happy to have you on the team — try to focus a little more on the, uh, last tidy-up before raising the PR, right, that is important — thanks, let me know how it goes!


(…Ugh, we’ll have to let him go if we have another week or two like this; he’s really not getting it. But he’s trying so hard; I have to stay positive so he doesn’t lose hope!)

Feeling forced to lie burns a LOT of energy, it feels bad, and even worse, there’s a hard gap between what needs to be communicated (before real progress can happen) and what you feel safe to say.


  • You can’t ignore the balance of power, here. The person who decides salary, advancement & firings must ensure team members get the information they need, and feel safe giving the information they need to give.
  • Margaret Hu-Chan writes about “blunt talk”, “safe talk”, and “straight talk” in Saving Face — and there are many other ways to frame the issue. The concept is easy to grasp, but doing it well is not so simple. I’ll write more about strategies for specific conversations (in either direction across the power imbalance).
  • A few basics: find language that suits you to convey how something feels / what energy it costs you, and share clear observations to open a discussion, rather than leading with demands or completed judgements.

4. Ongoing, unaddressed frustrations

rage, hands on hips

Seriously, already?! So the product group, yet again, has a super-urgent feature they need done yesterday that will revolutionize everything, even though we never heard another word about the last 2 desperately urgent features, and meanwhile the lookup service is collapsing because …

Wide eyes, not speaking

(fffffff-, another 20 minute rant… I wonder if I can pretend my internet connection died)

This example has two unaddressed frustrations: the person giving an angry rant, and the people listening to it; neither person sees any valid pathway to improve the situation.

With no path to a fix, neither issue will go away. They aren’t bad enough to cause a tipping point & explosion; they just grind people down, and they grind the hardest when stress is high and resources are scarce.


  • Similar to the above: there’s a way to talk about everything that’s distracting, slowing down or draining the team — as long as the leadership & management make it safe to try, and people learn good methods to progress tricky topics without upsetting others.
  • Once you have a way to discuss them safely, there’s no reason to wait until there’s a long history of frustration to (now) overcome.

5. Guessing & worrying about important questions

What’s going to happen if we’re late delivering this feature? It’s obviously important… but I know at least the REST API backend has been stuck for 2 weeks on one bug after another, so this may get ugly.

My last performance review seemed really positive; but last week, that argument with the team lead was not good — now I’m worried. I think I’d better wait until the project is delivered before I say anything, though.

Two people from my team were just let go — they weren’t the best developers, but… they weren’t incompetent, either. Should I start looking for a new job, or assume I’m okay if no one has said anything?

I’m stuck, refactoring this code — it looked like a quick tweak, but now it has been 4 days, and I keep finding more odd ways it’s hooked into everything else. Maybe I can get advice from Jean, quietly? Or I guess the lead will say something if she thinks this is too much time…

The reason you’re guessing is because no one has told you, and it doesn’t feel safe to ask.

Guessing can go both ways — if you don’t have a standard of trust & transparent work, then a team lead may be stuck with minimal info on progress, but worried about upsetting team members with micromanagement and frequent interruptions.


  • Leaders & managers: the questions above are obvious ones; don’t wait for your team to ask. Once you are communicating these by default, it’s more natural to pull in questions on similar topics.
  • Beyond the basics: anonymous AMAs can help, but regular catch-ups (and just exposing more info by default) be the main pathway.
  • If you’re asking for info: how will you use it? Is there an automated way to get it, and can you do your job with less (or easy to get) info?
  • Learning & practicing / modeling good communication methods helps both team leads & members.

6. There’s no flex for disruption

A developer who’s been working productively for months or years is suddenly different: defensive, angry and passive-aggressive. Or suddenly has gone nearly silent, missing due dates and calls with few excuses, starting late & leaving early.

This is disruptive, and everyone (including, possibly, her manager) wonders what will happen next — will she get fired? Get a dreaded “we need to talk, now” ping from her manager? Quit? Or just be ignored, while the team suffers?


  • There are so many things that can sabotage someone’s focus & mood at work which they will also feel uncomfortable sharing; or, they may feel this is purely their problem to face, and they don’t realize the company may want to support them.
  • People also have widely different comfort levels discussing their personal lives at work. A manager shouldn’t dig for details, but does need a way to check in & collaborate with the person, to find the best path through disruption.
  • Team members also need to know the baseline of what they should communicate: ideally, how disrupted you are, for how long (if you know), and work triggers. You should be able to use compassionate leave (extra time off due to life disruption) for more than just a strict, fixed list of events; and it’s worth simply collaborating on how to move forward vs. leaving someone to sink or swim alone.
  • Beware the availability heuristic; you have many, many options, not just “keep this person on the team, or not”, when they’re struggling. Talk about options, and get other viewpoints. Temporary reduced/changed hours, unpaid leave, changed tasks or role, more frequent check-ins, company funding for external help or expertise….

7. Unexpected reactions & unpleasant surprises

Frequent mistakes about how someone else will react — in the worst case, one person’s mental model of how another person thinks is “just like me!” or as an easy-to-manipulate, rational actor.

concerned face

Complaining about me?! This was a normal code review, and all junior engineers have a lot to learn. He just needs to learn it, and then this will get easier. If he has a problem with that, he’s just oversensitive.

mild concern, crossed arms

She was shocked that she was being fired! Some people just don’t pick up on the signs… it should have been obvious what was coming.


  • The people on a team need enough time interacting in different ways (and with some caution, at the start) that they can work together effectively.
  • …as above: you need active feedback loops, and feedback must cover how things feel, in one way or another, not just business requirements.
  • There’s also a baseline of transparency between manager & team members that’s simply required. If someone’s at risk of being fired or seriously penalized, and this has never been discussed directly, that’s a mistake. Likewise, if someone has been running into conflicts & problems, but their job is not at risk, if their manager has not said this explicitly, this is a problem waiting to happen.

8. Feedback stops when work is going well

When work is moving along and everyone’s busy, catch-ups stop (“Hi, unless you have something urgent, shall we skip again? Sorry, it’s been a while, but we’re all just flying along these past couple of months!”)

This causes two problems:

  • Trust relies on a stable relationship, and that will fade away as people’s lives move forward, but the connection is not renewed.
  • This is also the perfect time to collaborate on the future; don’t miss it!

Discussions on what went wrong last week, or what needs tuning, are inevitably somewhat uncomfortable. They’re needed, but probably not very enjoyable for either of you.

It’s far more comfortable to talk about what is working well right now, and why, and how to build on it over the months & years to come, and these discussions are also more valuable.

Instead of working with: “I don’t have much to talk about today, but one problem I noticed is that you’re late for standup, sometimes”

…you can talk through the overall layout of work, and what’s going well, and then bring up the one tweak you thought might help — “sometimes the rest of the team is stuck waiting around for a few minutes before standup, when you’re running late; is that an easy thing to fix?”

Mapping out the future is inspiring & motivating for both manager and team members, and these conversations are an investment that will sustain the relationship later, when production is exploding and the wolves are howling at the door.

Wrapping up

Any other red flags I should add?

You’ll notice that there’s overlap among the strategies; that’s no surprise. Good communication doesn’t happen without effort, time & practice; but improving these skills pays off over & over again, in many different situations.

I’ll cover some of the tools I’ve picked up in upcoming posts, plus why this is all trickier in a distributed workplace.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.