Here is a scene that has played out at every company that has ever existed. You are in a design review. You believe the approach being proposed is wrong — not slightly wrong, not a matter of preference, but actually wrong in a way that will cost your team months of pain later. You have good reasons. You have thought about this carefully.
You say your piece. The person driving the review disagrees. Now you are both stating your positions more forcefully. The room gets tense. Nothing is being resolved, just restated at higher volume. Forty-five minutes later, a decision gets made — not because anyone changed their mind, but because people got tired and someone with more seniority said "let's move forward with the original plan." You leave the room feeling frustrated and unheard. The project proceeds with the approach you believe is wrong.
Three months later, exactly what you predicted happens.
What went wrong? Not your technical instinct — that was right. What went wrong was the conversation itself. You were having a debate when you needed a decision. You were arguing a position when you needed to move someone. These are completely different activities, and almost nobody teaches you the difference.
This chapter is about having disagreement conversations that actually go somewhere. Not conversations where you "win" — winning is not the goal. The goal is to either change the decision, or change your mind, or get to a real disagree and commit rather than a frustrated silence that masquerades as one. All three outcomes are good. None of them happen by restating your position louder.
The core skill is not persuasion. It is structured movement toward a decision. Persuasion is a byproduct. What you are actually building is a shared understanding of what we know, what we disagree about, and what would change our minds.
What Disagreements Are Really About
Before you can have a productive disagreement conversation, you need to understand what the disagreement is actually about. This sounds obvious, but most people skip it entirely. They assume the disagreement is about the topic — the architecture, the timeline, the approach. It often isn't.
Disagreements at work cluster into four types. Each one requires a different response. Getting them confused is how you end up spending two hours arguing about microservices when the real issue is that one team is afraid of losing ownership of a service.
Type 1: Factual Disagreement
This is a disagreement about what is true. "Our database can handle this load" vs. "it cannot." "This migration will take three months" vs. "it will take six." Factual disagreements are the most straightforward kind — they have a right answer, and the right answer can be found with evidence. A query plan, a load test, a historical comparison.
The trap here is treating a factual disagreement as if it is a matter of opinion, and therefore trying to negotiate a middle ground. There is no middle ground on "how many requests per second can this database handle." Run the benchmark. Get the number. The disagreement is over.
Type 2: Values Disagreement
This is a disagreement about what matters most. "We should ship fast and fix bugs later" vs. "we should not ship until it is solid." "Developer experience is more important than operational simplicity" vs. the reverse. Values disagreements do not have right answers. They have tradeoffs.
The trap here is trying to win a values disagreement with facts. You can throw all the data you want at someone who values stability, while they value velocity, and neither of you will move. The path through a values disagreement is not evidence — it is getting both sides to state their values explicitly, so you can have a real conversation about what tradeoffs your context actually demands.
Type 3: Prediction Disagreement
This is a disagreement about what will happen. "If we do X, users will behave in Y way." "This approach will cause problems at scale." "That team will not deliver on time." Nobody knows the future. Prediction disagreements are the most common type in software, and they are the most frequently confused with factual disagreements.
The key move with prediction disagreements is to make the prediction explicit and testable. Instead of arguing about whether something will work, ask: "What would we have to see, and by when, to know if this is working?" If you can define a test, you can make progress. If neither side can define what evidence would change their mind, the disagreement is actually a values disagreement in disguise.
Type 4: Priority Disagreement
This is a disagreement about what to do first, or what to sacrifice. "We should fix the data model before adding features" vs. "features matter more right now." These disagreements look technical on the surface but are almost always driven by different contexts. The person pushing for the data model fix might be the one who gets paged at 3am when things break. The person pushing for features might be the one whose roadmap reviews are coming up.
Priority disagreements are not resolved by argument. They are resolved by making the context visible. Once both people understand why the other person prioritizes what they prioritize, the path forward usually becomes obvious — or at least, the tradeoffs become something that can be explicitly decided rather than silently fought over.
Before your next disagreement conversation, ask yourself: which type is this? Factual disagreements need evidence. Values disagreements need explicit tradeoff conversations. Prediction disagreements need falsifiability. Priority disagreements need context-sharing. Most conflicts drag on because people are applying the wrong tool.
Separating People from Positions
Roger Fisher and William Ury wrote a negotiation book in 1981 called Getting to Yes. One of their central ideas is that you should separate the person from the problem — attack the issue, not the human holding the position. This idea has been so widely quoted that it has become almost meaningless. Let's make it concrete.
When someone takes a position in a disagreement, they are not just expressing a technical opinion. They are also expressing something about their identity. "I have been doing infrastructure for ten years and this is how it should be done." "I was on the team that built the original system and I know why we made those choices." "I reviewed this design and I think it is solid." Their position has become part of how they see themselves as competent, experienced, and trustworthy in this room.
When you directly challenge their position, they do not hear "your idea might be wrong." They hear "you might be wrong." And no one likes to be told they are wrong, especially not in a room full of their peers. The natural response is to defend themselves. The conversation stops being about the technical question and starts being about status protection. Both of you are now trying to win, not trying to find the best answer.
"Hard-nosed bargaining about positions produces wise agreements less efficiently, and more acrimoniously, the more extreme the positions and the smaller the concessions."
— Roger Fisher & William Ury, Getting to YesThe practical fix is simple to understand and hard to execute: attack the decision criteria, not the position. Instead of saying "I think your approach is wrong," say "I'm not sure this approach satisfies the latency requirements we agreed on." You are not questioning their competence or identity. You are questioning whether a shared standard is being met. That is something you can both look at together, from the same side of the table.
The "Same Side of the Table" Reframe
The single most powerful thing you can do at the start of a hard disagreement conversation is to explicitly reframe it as a joint problem-solving exercise rather than a debate.
Most disagreements start with an implicit structure: I have a position, you have a position, we are going to argue until one of us wins or the meeting runs out of time. Everyone in the room can feel this structure. It puts people into defensive mode before a single word has been said.
You can break the structure explicitly. Something like:
This does three things at once. It shifts the frame from debate to joint analysis. It signals that you are open to updating your view (because you're asking them to correct you). And it creates a shared standard — the optimization criteria — that both of you can evaluate the approach against, rather than fighting position vs. position.
Positions vs. Interests
Fisher and Ury make a distinction that is almost criminally underused in engineering. A position is what someone says they want. An interest is why they want it — the underlying need that their position is trying to satisfy.
Here is an example. An engineering manager insists that a new API must be backward compatible. That is their position. Why do they want backward compatibility? Maybe they are afraid of a breaking change causing an incident that will reflect badly on them. Maybe they have a team of clients they are responsible for who would need to re-integrate. Maybe they just believe strongly in API stability as a principle. Each of these is a different interest, and each suggests a different path to resolution.
If the interest is "avoid incidents," maybe you can satisfy it with a long deprecation window and a migration tool. If the interest is "not burdening my client teams," maybe you can offer to do the migration work for them. If the interest is "principled API design," you need a different conversation entirely — one about standards and tradeoffs rather than logistics.
You cannot satisfy an interest you do not know about. The way to surface interests is to ask, genuinely, why something matters: "Help me understand what we're most worried about here" is a question that has saved more projects than any technical argument ever has.
"Help me understand what we're most worried about here" — this is not a rhetorical question. It is a genuine request for information. Ask it as if you mean it. Then listen. Do not formulate your counter-argument while they talk. Actually listen. The answer will change how you approach the next ten minutes of the conversation.
The Disagreement Conversation Framework
A disagreement conversation that actually goes somewhere has a shape. Not a rigid script — real conversations are too messy for that — but a direction. What follows is a framework for giving the conversation direction. Think of it as guardrails, not a recipe.
State what you agree on first
Start by mapping the ground you share. What is the goal everyone agrees on? What constraints are non-negotiable for everyone? This takes two minutes and it makes everything else easier. It tells both of you how much you actually agree on before the disagreement starts — which is usually more than you think.
Name the disagreement precisely
What exactly are you disagreeing about? Make it as specific as possible. "We disagree about the architecture" is too broad. "We disagree about whether to use a separate service or a library for this logic, specifically because of how we expect the deployment model to evolve" is something you can actually work with. Precision eliminates phantom disagreements — conflicts that felt real but evaporate the moment you define them carefully.
Identify what type of disagreement it is
Factual, values, prediction, or priority? This step takes thirty seconds and changes everything. Factual disagreements need evidence. Values disagreements need explicit tradeoff discussion. Prediction disagreements need testability. Priority disagreements need context sharing. Applying the right lens early saves hours of circular argument.
Surface the underlying interests
Ask "what are we most worried about?" Ask it in a room setting, not just to the person you are disagreeing with. Often you will discover that the worry is something entirely solvable with a different mechanism than the one being argued over. An engineering manager worried about operational complexity might be satisfied with a commitment to documentation and runbooks, not a different architecture.
Define what would change your mind
This is the most uncomfortable step because it requires intellectual honesty. What evidence, if it existed, would make you update your position? Ask the other person the same question. If neither of you can answer this — if there is literally no conceivable evidence that would change your position — then you are not in a disagreement, you are in a values conflict. And values conflicts require a different tool: explicit authority, not persuasion.
Drive toward a specific decision
A disagreement conversation without a decision at the end is just a discussion. Make the decision explicit. What are we deciding? Who is deciding? By when? Even if the decision is "we are going to gather more data before we decide," that is a decision. Name it. Write it down. The number one reason disagreements drag on for weeks is that nobody owns the decision, and nobody has named what it is.
This framework does not guarantee that the right decision gets made. What it guarantees is that a decision gets made with full information, in a reasonable amount of time, without leaving the room feeling like a loss for whoever "didn't win." That is a substantially better outcome than what happens without a framework.
How to Disagree with Someone More Senior Than You
This is the part nobody talks about honestly. Most of the advice out there is some version of "just be respectful and make your case clearly." That is not wrong, but it dramatically undersells how complicated this situation is.
Disagreeing with someone more senior puts you in a genuinely asymmetric position. They have more status in the room. Other people look to them as a reference point. If you challenge them directly, you risk being seen as difficult, naive, or not understanding the full picture. And yet, if you never disagree with senior people, you become useless — a yes-machine who adds no value to the decisions being made.
The solution is not to be bold or brave. The solution is to be precise about what you are disagreeing with, and to signal clearly that you are not challenging their authority or judgment — you are adding information to a decision.
The Five Moves for Disagreeing Up
Move 1: Start with the assumption that they know something you don't
This is not false humility. Senior people in large organizations genuinely have context you do not have. They may know about a strategic decision that hasn't been announced. They may have tried this approach before and have scar tissue you lack. They may have constraints they cannot talk about.
Starting with the genuine acknowledgment that you might be missing something important does two things. It is often literally true — and acting on true things tends to go well. And it signals to the senior person that you are not trying to undermine them. You are trying to add to the information pool, not subtract from their credibility.
Notice what this does. It frames you as seeking information, not challenging authority. It gives the senior person an easy out — "there's context you're missing" — which they can take gracefully if there is indeed context, or which they can pass on by actually engaging with your concern. And it names the specific technical concern precisely, so they cannot dismiss it as a vague worry.
Move 2: Lead with the concern, not the conclusion
There is a big difference between saying "this architecture is wrong" and saying "I'm worried about how this will behave under the write load we're projecting for Q3." The first statement invites a debate about who is right. The second invites a conversation about a specific risk.
Senior people are not threatened by risk conversations. They are expected to think about risk. By leading with the concern rather than the conclusion, you put yourself in a conversation about shared risks rather than a debate about whose analysis is better.
Move 3: Quantify where you can
Vague concerns are easy to dismiss. Specific, quantified concerns are hard to dismiss. "I'm worried about performance" is easy to wave away. "Based on our current p99 latency of 180ms and the additional 60ms this adds, we would breach our SLA of 200ms under this design" is not something you can dismiss without engaging with the numbers.
Even rough quantification helps. "Back of the envelope, this adds about 3x the operational surface area we have today" is not a precise measurement. But it is something you can discuss. It gives the conversation a handle.
Move 4: Make the stakes explicit
Senior people have many things on their plate. They may not have thought through the specific downstream consequences of the decision you are discussing. Your job is to make those consequences visible, not as a threat, but as information.
"If we go with the faster timeline and the data migration takes longer than expected, we would either delay the launch or ship without completing the migration. I want to make sure we're consciously choosing that tradeoff." This is not pressure. It is service. You are handing them the full picture so they can make a better-informed decision.
Move 5: Know when to stop
You have made your case once, clearly, with specific concerns and quantified risks. You have genuinely listened to the response. And the senior person has heard you and decided differently. At this point, you stop.
This is the part that requires actual discipline. The urge is to restate your concern one more time, in different words, at slightly higher emotional intensity, hoping that this time it will land. Resist it. Repeating yourself tells the senior person that you were not actually listening when they responded — that you were just waiting to talk again. It destroys credibility. It turns a professional disagreement into a stubbornness contest. And it rarely changes anything.
One good articulation of your concern, heard and considered, is enough. If the decision still goes the other way, you accept it with as much genuine grace as you can manage. Then you watch what happens. If you were right, that information will become available — and a future conversation will go differently because you were the one who called it early.
Every time you repeat a concern that has been considered and rejected, you spend a unit of credibility. You only have so many units. People who are known for continuing to push after a decision has been made get tagged as "not a team player" or "unable to disagree and commit." Spend your credibility units on the things that really matter. Accept the rest gracefully.
When Both Sides Have Valid Points
Here is the hardest case. You have both made good arguments. You have listened to each other genuinely. Neither side is wrong — the disagreement is about a real tradeoff with legitimate costs on both sides. Reasonable people can look at the same information and come to different conclusions.
This happens a lot. More often than most people admit. And the standard advice — "weigh the tradeoffs and make the best decision" — is almost useless in practice because it does not tell you how to actually get unstuck.
The Decision Criteria Approach
When both positions are valid, the tie-breaker is almost never more technical information. It is decision criteria — the explicit statement of what your situation, your team, and your organization values most right now.
For example: if two architecture options both have merit, but one is simpler and one is more flexible, the right choice depends on whether your team is in a growth phase (where flexibility matters) or a consolidation phase (where simplicity matters). That is a decision criteria question, not a technical question.
The move is to surface the decision criteria explicitly, rather than letting them hide inside each person's unstated assumptions. Ask: "Given that both options have real merit, what should be driving this choice? What does our current situation most need?" The answers to that question often resolve the impasse in minutes, because people find it much easier to agree on criteria than to agree on conclusions.
Notice that this conversation does not end with you "losing" even though you advocated for the more careful approach. It ends with a conscious tradeoff, made with full information. That is a completely different feeling — and a completely different quality of outcome — than being overruled.
The Time-Box Technique
Sometimes both sides are valid, the decision criteria are genuinely unclear, and neither party can articulate what would change their mind. You are stuck. The worst thing to do in this situation is to keep arguing. The second worst is to make a coin-flip decision just to end the discomfort.
The best thing is to time-box. Make a small, reversible version of one of the approaches real — a spike, a prototype, a two-week experiment — with an explicit hypothesis and explicit success criteria. Then test it. "Let's try approach A for two weeks and see if it satisfies the latency constraint. If it does, we proceed. If it doesn't, we revisit."
This is only possible when the decision is reversible. When it is not reversible — when you are choosing a database schema that will cost you months to redo — time-boxing is not available and you need to actually commit. In those cases, the right move is to escalate the decision criteria question to whoever owns the strategy. They may have a perspective neither of you has.
The "Both-And" Solution
A third option that is frequently overlooked: both sides are valid, and both can win, because the disagreement contains a hidden third option that satisfies both interests.
Two teams disagree about whether a shared library should be versioned with hard pins or floating ranges. Team A wants stability — they have been burned by unexpected updates breaking their service. Team B wants currency — they need to consume security patches quickly. These look irreconcilable. But they are not. The third option might be: floating ranges in CI, with hard pins in production, with a monthly pinning review that evaluates each update. Both teams get what they actually need.
You only find the third option if you have surfaced the underlying interests — what each team is actually worried about — rather than fighting over positions. This is why spending the first ten minutes of a hard disagreement conversation on interests, not positions, is almost always worth it.
When two positions appear irreconcilable, resist the urge to immediately choose one or split the difference. Spend five minutes asking: is there a version of this that satisfies both underlying needs? Not always — but often enough that the habit of asking is worth building.
The Real Disagree and Commit
"Disagree and commit" is one of the most abused phrases in corporate life. It is used to mean "you've been overruled, now shut up." That is not what it means. It does not mean you pretend to agree when you don't. It does not mean you stop caring about the outcome. It means something more specific and more useful than either of those things.
A real disagree and commit looks like this: the decision has been made, with your concern on record. You understand why the decision went the way it did — you may not agree, but you understand. You are now fully committed to making the chosen approach work, including using all of your knowledge and energy to navigate the risks you identified.
That last part is critical. The person who disagrees and commits does not execute the decision halfheartedly while hoping it fails so they can say "I told you so." They execute it as hard as they can, with extra attention to the failure modes they predicted, so that if those failure modes materialize, they are caught early and fixed — rather than becoming a launch-blocking crisis.
"Disagree and commit" means your concern is on record, the decision is made, and you are now the most committed person in the room to making it succeed — because you have the clearest view of what needs to not go wrong.
How to Actually Do It
There are four concrete things that make a disagree and commit real rather than performative.
- 1. State your disagreement clearly, once, in writing. Send a short message after the meeting: "Just confirming — we're going with approach B. My concern about the latency under write-heavy load is on record. I'm fully in on making B work." This is not passive aggression. It is a paper trail that protects everyone. If the concern materializes, you are not the person who quietly watched it happen. If it does not materialize, you have evidence that you were thoughtful enough to flag it.
- 2. Identify the highest-risk assumption in the decision. The thing you are most worried about. Then spend disproportionate early attention on it. Not to prove you were right — to disprove your own worry as fast as possible, or to catch the problem while it is still small.
- 3. Do not bring it up again unless it is relevant. If you committed to approach B, do not mention every three weeks that you preferred approach A. If things are going well with B, quietly acknowledge it — in your own head if nowhere else. This is how you build a reputation as someone with good judgment who does not grind an axe.
- 4. If your concern materializes, raise it immediately — with solutions, not blame. "The latency issue I flagged is happening. Here's what I think we should do about it." This is useful. "I told you this would happen" is not.
When Disagree and Commit Is Not an Option
Sometimes the stakes are high enough that you genuinely cannot commit to a decision you think is wrong. The decision has safety implications. It will mislead customers. It will create a security vulnerability that you cannot live with. These situations are rare, but they are real.
In these cases, disagree and commit is not available to you. What is available is escalation. Take the concern up one level. Be specific about the stakes and about why you cannot in good conscience execute the current plan. This is a significant move — you are pulling a lever that should not be pulled often — but it is the right move when the alternative is participating in something you believe is genuinely harmful.
The test for whether escalation is appropriate is not "I disagree strongly." It is "I cannot ethically execute this." Most disagreements, even strong ones, do not pass that test. Reserve escalation for when they do.
What Happens After the Conversation
The conversation ends. A decision has been made. But the consequences of how the conversation went will continue for months. The way you handle the aftermath is as important as the way you handle the conversation itself.
When You Won the Argument
If the decision went your way, be careful. The person who advocated for the other approach is now in a situation where they are executing something they disagreed with. They may feel embarrassed in front of their team. They may feel dismissed or unheard.
The best thing you can do is acknowledge their concerns, for real, and make sure they are incorporated into how you execute. If their concern was about operational complexity, make sure the implementation actively addresses that. If their concern was about a timeline, make sure it is tracked as a risk rather than forgotten. You will not always agree with the other person's position, but their concerns are often telling you something real about the risks involved. Treating their concerns seriously — even after the decision has gone your way — is how you preserve the relationship and improve the execution.
When You Lost the Argument
This is the harder case. The decision did not go your way. You think it was the wrong call. You are now expected to execute it.
The path forward has two parts. First, do the work of actually accepting the decision — not just saying you accept it. This means spending some time genuinely trying to understand the reasoning, looking for the ways the other approach might be better than you thought, and updating your priors even a little. You do not need to fully change your mind. But if you go into execution mode with 100% conviction that the decision is wrong, that belief will leak out in small ways — in how you talk about the work, in the energy you bring, in the risks you monitor with more excitement than appropriate.
Second, find the version of the decision you can be proud of executing. Even approaches you disagree with can be executed well or poorly. Find the version that makes you genuinely proud — that executes the decision at its best, navigates its risks proactively, and positions you as the person who made it succeed despite reservations. This is not surrender. It is professional excellence.
- Executing the decision minimally, waiting for it to fail
- Referencing your disagreement when things get hard
- Monitoring the failure modes with visible satisfaction
- Telling other people privately that you disagreed
- Bringing it up again at the next planning cycle
- Executing the decision at its maximum potential
- Proactively addressing the risks you identified
- Monitoring failure modes to catch problems early
- Updating your model based on what actually happens
- Being the first to say "I learned something" if you were wrong
The Long Game: Credibility Through Disagreement
Your reputation as someone worth disagreeing with is built over years, through hundreds of small disagreement conversations. The things that build it: being precise about what you disagree with, being genuinely open to updating your view, being the person who called problems early and then helped solve them, and being graceful when the decision goes the other way.
The things that destroy it: repeating yourself after being heard, bringing up past disagreements as "I told you so" evidence, executing commitments half-heartedly, and treating every disagreement as a referendum on whether you or the other person has better judgment.
Over time, the people who develop a reputation as good disagreers become the people whose technical concerns are heard before decisions are made, not after. They become the people in the room who make everyone's decisions better — not by winning arguments, but by making sure the best information is in the room when it matters.
That is a much more valuable reputation than "the smartest person in the meeting."
The Most Common Mistakes
Knowing the framework is not enough. You also need to know the ways it breaks down in practice. These are the mistakes that show up most reliably in real disagreement conversations.
Mistake 1: Confusing preparation with stubbornness
Coming into a disagreement conversation with a clearly-articulated position is good preparation. Refusing to update that position regardless of what you hear is stubbornness. The difference is whether you genuinely engage with the other person's arguments. If you walk in with a clear position but walk out with a slightly modified or completely different one because you heard something that changed your thinking, that is strength. If you walk in with a clear position and walk out with exactly the same position regardless of what was said, something went wrong.
Mistake 2: The data ambush
Arriving at a meeting with a spreadsheet, a benchmark result, or a presentation that your counterpart has never seen before — designed to "prove" your point in front of an audience — is a power move, not a disagreement conversation. It works once, maybe twice. After that, you become the person who springs surprises in meetings, and people stop trusting your analysis because they assume it is always prosecutorial rather than exploratory. Share data before the meeting. Give people a chance to engage with it honestly.
Mistake 3: Winning the argument, losing the person
You can be completely right and still damage the relationship in a way that costs you more than being right was worth. The person you disagreed with publicly and humiliated will find subtle ways to make your work harder for the next six months. Being right in a way that protects the other person's dignity is not weakness. It is strategy.
Mistake 4: Treating all disagreements as equally important
If you push back on everything with the same intensity, your pushback becomes noise. Choose the disagreements that matter — the ones where being wrong has real consequences for the project or the team. Let the small stuff go. Your credibility as someone who raises concerns is built by the quality and precision of what you choose to raise, not by the volume of objections you produce.
Mistake 5: The hallway consensus
Talking to everyone individually before a meeting to line up support for your position. This feels strategic. It is actually corrosive. It bypasses the real disagreement conversation and replaces it with a political one. People who discover they have been lobbied before a meeting feel manipulated, not persuaded. Build your case on merit. If your case is strong, it will hold up in the room. If it is not, you should want to know that before the meeting, not after.
The rarest skill in a disagreement conversation is not the ability to argue well. It is the ability to publicly update your position when you hear something that changes your thinking. "That's a good point — I hadn't thought about it that way. Let me reconsider" is something that almost nobody says in a meeting. But it is the sentence that does more for your credibility than any argument you will ever win.
A Complete Example
Let's walk through a complete disagreement conversation from start to finish, so you can see how the pieces fit together. The scenario: you are a principal engineer. Your team's VP wants to ship a feature in six weeks. You believe the data migration required for the feature will take ten weeks at minimum, and shipping before it is complete will create a class of data corruption bugs that are very hard to fix after the fact. The VP has done this calculation before and thinks you are being too conservative.
Before the Meeting
You spend thirty minutes writing down exactly what you know and exactly what you are uncertain about. You build a rough timeline breakdown for the migration: schema changes, backfill job, validation phase, cutover. You estimate each phase based on comparable work your team has done. You note the specific scenarios that create data corruption if the migration is incomplete at launch.
You send this to the VP as a document the night before, with a note: "I want to make sure we're looking at the same information before tomorrow. Here's my breakdown. I might be wrong about some of these estimates — would love to understand where you're seeing it differently."
The Meeting
Notice what just happened. The VP came in with a position (six weeks). You came in with a position (ten weeks, or data loss). The conversation did not stay in position-vs-position mode. By getting the VP to engage with the specific risk (320,000 affected records), you created space for a third option neither of you had started with — a phased rollout using a feature flag. The VP got to "save face" because they proposed it. You got the data safety you needed. The timeline concern is partially addressed.
This is what a productive disagreement conversation looks like in practice. Not a debate with a winner. A joint exploration that ends in a better decision than either side started with.
The Key Principle in One Sentence
A disagreement conversation is not a debate — it is a structured movement toward a decision, and its goal is never to win, but to get the best available information into the room before someone commits to an irreversible path.
Repeating your position with more emotion after it has already been heard and rejected. You are not adding new information — you are signaling that you were not actually listening. This burns credibility and turns a professional disagreement into a stubbornness contest. State your concern once, clearly, then let the process work.
- Before the conversation: what type is this disagreement — factual, values, prediction, or priority — and what does that tell me about how to approach it?
- During the conversation: do I actually know what the other person is most worried about, or am I just assuming I know?
- After the conversation: what did I learn from the other person's perspective, and how has it updated my model of the problem?