Why Cross-Functional Teams Fight (It’s Never About the Thing They Are Fighting About, I Promise)
When product, engineering, and sales are constantly at odds, the surface argument is almost never the actual problem. They appear to be fighting about a deadline, a feature, a spec, a launch date. What they are actually colliding over is a structural gap nobody has addressed: they are measured on different outcomes, they disagree on definitions nobody agreed upon, and no one owns the tradeoffs between them. The fight feels personal because it shows up as people clashing, but the cause sits in the structure, and you cannot mediate your way out of a structural problem.
This breaks down what teams are actually fighting about underneath the surface argument, why treating it as a personality or communication issue fails, and how to fix the structure that manufactures the conflict, from the vantage point of someone who walks in from outside all of the departments.
The surface fight is a symptom
Walk into a company with chronic cross-functional tension and you will hear it framed as people problems. Engineering is being difficult. Sales overpromises. Product keeps moving the goalposts. Everyone has a story about how the other team is unreasonable, and everyone is a little bit right, which is exactly what makes it feel like a personality problem.
Look closer and the teams are behaving rationally given what each is measured on. Engineering is rewarded for stability, quality, and not shipping things that break. Sales is rewarded for closing deals, which means promising what the customer wants now. Product is caught between shipping fast and shipping right. Each team is optimizing for its own scoreboard, and those scoreboards point in different directions. You have, without meaning to, designed the conflict into how the company operates. The incentive structure is doing exactly what it was built to do, and it is carrying the blame the people are getting.
That is why the conflict is chronic rather than occasional. A personality clash flares and fades. A structural conflict regenerates, because the moment one argument resolves, the underlying misalignment produces the next one. If the same two teams keep fighting about different things, you are not watching a series of disputes. You are watching one unaddressed structural gap throw off sparks.
The three things actually being fought over
Underneath almost every cross-functional fight, one of three things is missing.
The first is shared definitions. The classic version is that nobody agrees on what "done" means. Engineering thinks done means the code is merged and stable. Design thinks done means it looks and works the way it was meant to. Sales thinks done means it is ready to demo and sell. These are different finish lines, and when people are running toward different finish lines, they collide and call it a disagreement about effort or commitment. It is actually a disagreement about a definition that was never made explicit. The same happens with "good," with "ready," with "urgent." Undefined shared words are a conflict engine.
The second is shared goals. When each team is measured only on its own function, there is no common scoreboard to settle a tradeoff against. Engineering's quality goal and sales's speed goal have no shared parent metric, so when they conflict, there is no higher number to appeal to, and the argument defaults to whoever has more political weight. Teams that share an outcome, customer adoption, retention, revenue, something they all move together, have a way to resolve tradeoffs that does not come down to who pushed hardest.
The third is an owner for the tradeoff. This is the one most content misses. Even with shared definitions and shared goals, hard tradeoffs remain, and someone has to own the call. Should we ship the smaller version now to close the deal, or build the durable version and lose the quarter? That is a true tradeoff with no objectively correct answer, and if nobody clearly owns deciding it, the teams fight about it indefinitely because the fight is the only mechanism available to resolve it. Naming an owner for the contested decision converts an endless argument into a decision someone makes.
Why mediation does not fix it
The standard advice is to improve communication, build trust, run better meetings, foster psychological safety. None of that is wrong, but none of it fixes a structural conflict. You can put two teams with opposing incentives in the most psychologically safe room in the world and they will still pull in opposite directions, politely. Better communication makes the fight more civil. It does not make it stop, because the cause was never a communication failure.
This is the trap of treating cross-functional conflict as a soft-skills problem. It sends leaders chasing offsites and team-building while the structure keeps generating the exact same collisions. The friction is information. It is telling you precisely where the structure is missing a definition, a shared goal, or an owner. Treating the symptom as the disease means you keep soothing the sparks while the engine keeps running.
How to fix the structure
Fixing cross-functional conflict means changing the structure that produces it, which is work you do from above or outside the individual departments, not from inside any one of them. That outside vantage point matters, because each team can only see the fight from its own side. Someone has to look at the whole system.
The fix follows the three gaps. Make the contested definitions explicit, starting with "done" and "good," so teams stop running toward different finish lines. Install a shared goal that all the fighting teams move together, so tradeoffs have a common scoreboard to be settled against instead of defaulting to political weight. And assign clear ownership of the hard tradeoffs, so the unavoidable hard calls get decided by someone rather than fought over forever.
None of that is mediation. It is redesigning the incentives and the decision rights so the teams are no longer structurally pointed at each other. When you change what people are aiming at and who decides the close calls, the chronic friction drains away, not because anyone learned to communicate better, but because the thing that was generating the conflict is gone.
Frequently asked questions
Why do product, engineering, and sales always seem to fight?
Because each is measured on different outcomes that point in different directions. Engineering optimizes for stability and quality, sales for closing deals, product for balancing speed and correctness. The conflict is structural, built into how the company measures each team, so it regenerates no matter how well the individuals get along.
Is cross-functional conflict a communication problem?
Usually not, even though it gets treated as one. Better communication makes the conflict more civil but does not resolve it, because the cause is misaligned incentives, undefined shared terms, or unowned tradeoffs. Those are structural problems, and no amount of trust-building or better meetings fixes a structure that is pointing teams at each other.
What is actually behind most cross-functional fights?
One of three missing things: shared definitions (nobody agreed what "done" or "good" means), shared goals (each team has its own scoreboard with no common metric to settle tradeoffs), or an owner for the tradeoff (the hard calls have no clear decision-maker, so they get fought over instead of decided).
How do you resolve conflict between departments for good?
Fix the structure rather than mediating the symptoms. Make contested definitions explicit, install a shared goal the conflicting teams move together, and assign clear ownership of the hard tradeoffs. When the incentives and decision rights change, the teams stop being structurally pointed at each other and the chronic friction fades.
Why does the same conflict keep coming back after we resolve it?
Because you resolved the surface argument, not the structural cause. A structural conflict regenerates: settle one dispute and the underlying misalignment produces the next. Recurring fights about different things between the same teams are a signal that an unaddressed structural gap is throwing off sparks, and only fixing the structure stops the pattern.
If your teams are stuck in chronic conflict that no amount of better communication seems to fix, the problem is almost always structural, and stepping in from outside the departments to redesign what is generating it is a large part of what I do.