Skip to main content

Disagreeing With a Bad Solution Without Humiliating Anyone

Disagreement is part of technical leadership. The hard part is not finding the courage to speak. It is protecting the bar without turning correction into humiliation.

Andrews Ribeiro

Andrews Ribeiro

Founder & Engineer

The problem

Every technical team deals with weak proposals at some point.

The risk appears when the reaction falls into one of these extremes:

  • smoothing it over to avoid discomfort
  • humiliating to signal rigor

In the first case, the bar drops.

In the second, the bar may look protected, but the team learns something else:

  • hide doubt
  • speak less
  • defend ego before discussing the technical issue

Mental model

Disagreeing well does not mean softening everything.

It means increasing decision quality without unnecessarily increasing relational damage.

Short version:

respect is not hiding disagreement; it is disagreeing without dehumanizing.

That requires separating three things:

  1. the proposal
  2. the risk it creates
  3. the person who brought it

When those three things get mixed together, the conversation degrades fast.

Breaking the problem down

Attack the fragility of the proposal, not the identity of the person

Bad phrases:

  • “this makes no sense”
  • “this is very junior”
  • “you didn’t think this through”

Better phrases:

  • “this path worries me because of X”
  • “I think we have a Y risk here”
  • “I want to test whether this assumption survives case Z”

The technical content can be just as firm.

What changes is that you do not turn correction into a personal attack.

Understand the logic before pushing back

A lot of disagreement becomes noise because the person reacts to the solution before understanding:

  • which constraint the other person was trying to respect
  • which timeline they had in mind
  • which risk they were optimizing for

Useful questions:

  • “which trade-off were you trying to protect here?”
  • “what made you prefer this path?”
  • “which scenario did you consider most important?”

That is not theatre.

That is how you discover whether there is a real mistake, a context gap, or simply a different criterion.

Name concrete impact

Weak disagreement stays abstract.

Good disagreement points to consequence:

  • increases coupling
  • breaks reversibility
  • makes observability harder
  • worsens operational cost
  • creates an unsafe path

When the impact becomes visible, the conversation leaves the territory of personal taste.

Adjust the tone to the severity

Not everything needs the same weight.

If the proposal creates:

  • a debatable style detail
  • an acceptable but not ideal path

the level of firmness can be lower.

If the proposal creates:

  • incident risk
  • a security break
  • a hard-to-reverse choice

the level of firmness needs to go up.

Respect does not mean softening critical risk.

It means communicating that risk without humiliating anyone in the process.

Public and private matter

Some corrections are worth doing in the group.

Others work better outside the audience.

In public, prefer:

  • discussing the decision
  • making the criteria explicit
  • protecting clarity for the team

In private, it makes sense to go deeper into:

  • a recurring pattern
  • the person’s reasoning style
  • their development

If you correct everything publicly in the harshest possible way, the team learns to perform defense, not learning.

Simple example

Imagine someone proposes solving a latency problem by duplicating logic across three services to “save time.”

Bad way:

  • “this is a total hack”
  • “there’s no way I can approve something like this”

Better way:

  • “I understand the pressure on the timeline, but this path spreads business logic across three places”
  • “if this flow changes next week, we’re going to have triple rework”
  • “I think it’s better to compare this with a minimal extraction that preserves delivery without multiplying coupling”

You are still disagreeing.

But now the conversation has:

  • a read of the context
  • a concrete risk
  • an alternative proposal

Common mistakes

  • Using sarcasm to look fast and smart.
  • Confusing firmness with humiliation.
  • Avoiding disagreement until it is already too late.
  • Pushing back without understanding the other person’s premise.
  • Correcting a small detail with the energy of a critical incident.

How a senior thinks

People who disagree well usually ask:

  • what exactly is the problem with this solution?
  • is the risk real or am I protecting a preference?
  • what was the other person trying to optimize?
  • does this correction need to be firm, private, public, or structural?

Those questions make the intervention fairer and more useful.

What this changes for the team

When the team learns to disagree without humiliating:

  • more problems surface early
  • fewer people become defensive by reflex
  • quality goes up without a climate of fear
  • technical feedback becomes a growth tool, not social punishment

In the end, strong technical leadership does not avoid conflict.

It improves how conflict happens.

Omission lets bad solutions pass.

Humiliation protects ego, not quality.

Mature disagreement protects both: the system and the relationship.

Quick summary

What to keep in your head

Practice checklist

Use this when you answer

You finished this article

Next article Raising the Team's Technical Bar Without Becoming the PR Police Previous article Running Technical One-on-Ones That Actually Help People Grow

Keep exploring

Related articles