Happy 4th of July! It's been a little quiet the past few months due to some work commitments, but I'm back. Welcome to our over 400+ new subscribers! We're almost a 3000-strong community.
Today, I'll share with you my tips on handling disagreements in the workplace.
When I was a junior engineer, my PM yelled at me for failing to inform him about an experiment. We disagreed on what happened, and this escalated quickly into a heated public discussion.
Was I in the wrong? Were they in the wrong? I was so caught up in standing my ground. Now, I realize how little that matters.
I've since reflected on that episode from a decade ago and learned how to handle disagreements much better. Let's dive in.
Disagreements are inevitable in the workplace. The most common forms of disagreements you will face as a software engineer are technical (tech architecture, tooling, code implementation) and strategy (project priorities or team direction).
During these, strong opinions tend to arise. And usually, the larger the company, the stronger the viewpoints since there tends to be more at stake (e.g., larger teams, bigger budgets).
But you shouldn't try to avoid these disagreements. Embrace and handle them well.
A Five-Step Process to Handle Disagreements
So, how does one handle disagreements? This is my five-step process that has worked well for me. It works for most disagreements, with the exception of an occasional tweak here and there.
The process includes:
Align on the same topic
Listen and acknowledge
Keep emotions in check
Involve a neutral party
Disengage, Disagree, or Commit
Let's dive into each one.
Align on the Same Topic
Before proceeding, always ensure that both you and the other party are discussing the same issue.
This might seem straightforward, but I've witnessed so many heated disagreements because neither side is listening to the other.
DOs:
✅ "Let's align on the issue at hand."
✅ "Let's also align on the goals and constraints of this issue. From my perspective, they are..."
✅ “What does a successful decision look like to both of us? What do both of us want?”
DON'T:
❌ Jump in directly to your main points
❌ "Let me tell you what I think of your points."
❌ "Alright, we have five topics to get through today. Let's blaze through all of them."
Listen and Acknowledge
Once both parties are certain you’re discussing the same thing, listen actively. As Stephen Covey once said, “Most people do not listen with the intent to understand; they listen with the intent to reply.”
In a strong disagreement, give the other person space to explain their reasoning fully, and truly hear them out before formulating your response. This means repeating what they said, taking time and space to think about it, and how it impacts your perspective.
DOs:
✅ Understand what they care about to establish shared goals and objectives
✅ Use a neutral to positive tone to encourage collaboration. This is more subtle, but you want to avoid "aggressive" or "rushed" tones.
✅ Use the pronouns "we" to be collaborative
DON'T:
❌ Interrupt or cut the person off mid-sentence
❌ Dismiss their concerns with “that’s not as important.”
❌ Say “I hear you,” and then immediately pivot back to your points without demonstrating understanding.
Keep Emotions in Check and Stay Objective
During a strong disagreement, emotions can flare up. Here are my tips to stay grounded:
Stay calm and use a neutral tone when it’s your turn to share your viewpoint.
Take a deep breath before you respond can prevent a knee-jerk reaction. This helps to inform your body physiologically that you're not in any physical danger.
Pretend you're observing the entire situation as a third person, and that you're not involved. Observe your emotions from afar, but do not act on them. Try to disconnect from the situation at hand. (Also known as cognitive distancing.)
Some phrases you could use:
DOs:
✅ “I appreciate everyone’s enthusiasm, but it seems like emotions are running high. Let’s revisit our primary objectives and look at the data to guide us.”
✅ If needed, pitch a regroup: “How about we regroup later in the day?”
DON'T:
❌ Let sarcastic or passive-aggressive remarks seep in, e.g., "I can't believe I didn't think of that."
❌ Raise your voice or become visibly agitated
Involve a Neutral Party
Sometimes, despite your best efforts, you and the other party cannot see eye to eye. Usually, I bring in a senior engineer, team lead, or manager whom both parties respect.
The idea is not to have this neutral party “gang up” on one person, but to have someone who can facilitate or mediate the discussion objectively.
DOs:
✅ Frame it as “We’re stuck and want help thinking through the tradeoffs” rather than “I need someone to back me up.”
✅ Pick someone senior who has context on both sides.
✅ Pick someone who can assess tradeoffs with less bias
✅ Schedule a session shortly with the other party & mediator.
Pick Your Battle: Disengage, Disagree, or Commit
Last but not least, pick your battles.
Not every disagreement needs to keep going until one side wins. Here's how I think about it in a simple flowchart.
If you've tried all of the above, it's time to ask yourself: How much does this issue truly matter in the grand scheme of things?
If it’s a minor point that won’t significantly impact your work or the team’s success, you should be able to walk away.
Disengage entirely from the decision and leave it to the other party to decide. Note that the better you get at recognizing this, the earlier you might disengage from such conversations.
If a decision needs to be made and you still disagree with the outcome, you generally have two constructive options: “agree to disagree” or “disagree and commit.” It’s essential to understand the difference and choose the right path based on the situation:
DOs:
✅ “I don't think I am helpful as part of this conversation. I'm going to exit from here."
✅ The stonewall method: Ignore them.
Agree to Disagree: All parties acknowledge that they have different views, but they decide to drop the issue further. This leaves it in a deadlock position.
You want to do this when the decision has no immediate or near impact on either team. For example, you and a colleague have differing philosophies on code style. You’ve each stated your case; neither of you is convinced, and ultimately, the choice won’t break the project.
DOs:
✅ “We might not fully agree on this, but since it doesn't impact any of us, let’s each go our ways and move on.”
Disagree and Commit: This principle, popularized by Amazon, means that you voice your disagreement during the decision-making process, but once a decision is made, you commit wholeheartedly to executing it.
DOs:
✅ “I don’t believe this approach is the best, but to unblock all parties and move on, I will go with your reasoning and decision.”
Practicing “disagree and commit” still shows professionalism and teamwork. It’s basically you saying, “I’ve said my piece and still feel differently, but I will support the team’s decision and do my part to make it work.”
Remember to not look at these outcomes as a "they-win-I-lose" or "I-win-they-lose" situation. These should always be construed as an opportunity to move forward together.
TL;DR
When it comes to disagreements, consider how to achieve the best outcome for the team and the company. Even if you don't "win" the argument, frame every disagreement as a learning opportunity. As a chance to grow.
The next time you find yourself in a heated disagreement, take a deep breath and employ these tactics that we talked about today:
Align on what problem you’re debating.
Listen to understand, not to reply.
Acknowledge the other side clearly and calmly.
Engage a neutral third party if you’re stuck.
Decide whether to disengage, disagree, or commit.
Was this helpful? Let me know in the comments.
Fantastic