The tension between product management and engineering is one of the most discussed dynamics in technology organisations, and one of the least well understood. It shows up in a hundred different forms: engineers who feel their work is being driven by uninformed stakeholders; product managers who feel their roadmaps are being constantly undermined by technical objections; leadership teams who oscillate between giving engineering more autonomy and giving product more control, never quite finding the right balance.

The tension is real. What is wrong is the assumption that it should be resolved. Product and engineering pull in different directions by design, and the creative friction between them — when it is managed well — is one of the most productive forces in a technology organisation.

What Product and Engineering Are Actually Optimising For

Understanding the tension starts with understanding what each function is optimising for. Product management is optimising for outcome: does this product solve the user's problem, does it generate revenue, does it advance the company's strategic position? Engineering is optimising for implementation quality: is this code maintainable, is this system reliable, is this architecture extensible?

These are not the same thing, and they frequently point in different directions. The product manager's instinct is to build the feature that users need, as quickly as possible. The engineer's instinct is to build it in a way that will not create problems six months from now. Both instincts are correct. The conflict between them is not a failure of understanding — it is a genuine tradeoff between speed and quality that needs to be negotiated explicitly.

"The goal is not to eliminate the tension between product and engineering. It is to make the tension productive."

The Common Failure Modes

When the relationship between product and engineering breaks down, it tends to break down in one of two directions. The first is product dominance: engineering becomes a feature factory, building whatever the roadmap specifies without the ability to push back on technical feasibility or quality. This typically produces a product that ships features quickly and accumulates technical debt rapidly, until the debt becomes so large that delivery slows to a crawl.

The second failure mode is engineering dominance: the roadmap is perpetually delayed by technical concerns, refactoring projects, and architecture discussions that never quite resolve. Product feels it has no control over what gets built or when. Users wait for features that are stuck behind infrastructure work. The business loses confidence in the product team's ability to deliver.

Both failure modes reflect the same underlying problem: one function has unilateral authority over a decision that should be made jointly. The solution is not to find the right balance point between product authority and engineering authority — it is to create decision-making processes that require both perspectives to be heard and weighed.

The Decisions That Belong to Each Function

A useful starting point is being explicit about which decisions belong primarily to product and which belong primarily to engineering. Product owns the what and the why: what problem are we solving, why is it the most important problem to solve now, what does success look like. Engineering owns the how and the when: how will this be implemented, what are the technical constraints, how long will it take.

This sounds simple. In practice, the lines blur constantly. A technical constraint changes what is feasible to build, which changes what the product can be. A product priority changes what needs to be built, which affects what technical debt can be tolerated. The negotiation between product and engineering is a negotiation about where to draw these lines in the specific context of each decision.

Building the Relationship at the Person Level

Beyond the structural and process dimensions, the product/engineering relationship is a human relationship, and it functions better when the people involved have genuine mutual respect and understanding. Product managers who have some technical background — not necessarily as engineers, but enough to understand why certain decisions are hard — are better partners to engineering teams. Engineers who understand the business and user context in which their work is deployed — not as product managers, but enough to care about the outcome, not just the implementation — are better partners to product teams.

I have invested significantly throughout my career in building this mutual understanding. On my teams, product managers sit with engineering. They attend technical planning sessions, not to make technical decisions but to understand the constraints. Engineers are present in user research sessions, not to drive the research but to hear directly from users what problems they are trying to solve. The goal is not to blur the roles but to ensure that each role is informed by the other's perspective.

Technical Debt as a Joint Responsibility

Technical debt is one of the most contentious topics in the product/engineering relationship, and it deserves specific attention. Engineering teams often feel that product managers do not take technical debt seriously — that every sprint is filled with feature work, and the time needed to address debt is never allocated. Product managers often feel that engineering uses technical debt as an excuse to avoid accountability for delivery.

Both of these perceptions contain truth. The resolution is to treat technical debt as a product problem, not just an engineering problem. Technical debt slows delivery, increases bug rates, and makes the codebase harder to change — all of which affect the product team's ability to execute on its roadmap. When product managers understand this connection, they have an incentive to allocate time for debt reduction. When engineering teams can articulate the debt in terms of its product impact rather than its technical details, product managers can prioritise it appropriately.

Shared Ownership of Outcomes

The product/engineering relationship works best when both functions feel genuinely responsible for the same outcome. Not product responsible for the roadmap and engineering responsible for the implementation — both responsible for whether the product works for users and advances the business. This shared ownership changes the nature of the conversation from "you need to build what I specify" and "you need to accept that this is how long it takes" to "how do we solve this problem together."

It also changes how success and failure are attributed. When a product ships late, it is not the engineering team's failure. When a product ships on time but does not solve the user's problem, it is not the product team's failure. Both outcomes are joint failures that the whole team owns. That shared accountability is uncomfortable and necessary.

Product ManagementEngineeringProduct DevelopmentTeam CollaborationTechnical DebtFintech

I advise founders and product teams on strategy, delivery, and building financial products that work. If this resonated, let's talk.

Get in touch