When Engineering and Product Have Misaligned Priorities
In fast-paced tech environments, then tension between engineering and product teams is almost inevitable. Product wants features yesterday, and engineering wants to fix foundational issues that have been ignored for months. One side speaks in terms of customer value and roadmaps. The other talks about latency, scalability, and technical debt. Both are right.
The Classic Tensions
This situation is classic–a product manager requests a new feature, but the engineering team is knee-deep in resolving critical bugs or refactoring outdated code. The trade-off often comes down to technical debt vs. feature velocity, or nonfunctional vs. functional requirements.
The problem lies in a lack of understanding between the stakeholders.
Key Strategies to Navigate Misalignment
1. Understand What They Really Want
Often, what product says is not the same as what they mean.
Product might say: “This feature needs to go live by next week.”
What they might actually mean: “Marketing has a campaign tied to this, and we just need something usable enough to support it.”
Your job as an engineer or engineering leader is to dig deeper. Some things to consider during discussions with the product team:
-
What’s the real constraint?
-
Who are the stakeholders?
-
What happens if we delay or compromise?
Once you understand the real goal, you may discover there’s more options available.
2. Be Honest
This can’t be overstated: transparency builds trust.
-
If something is hard, say so.
-
If something will take time, say that too.
-
If you don’t know yet, say you don’t know but you’ll find out. Do not fake certainty.
Sugarcoating complexity only leads to broken trust later when deadlines slip or systems break. Being honest allows for real negotiation and prioritization.
3. Have the Courage to Say No
“No” is a hard word, especially when there’s pressure from above. But sometimes it’s the right answer.
You don’t always have to say “no” outright. Sometimes “not right now” or “not this way” is more appropriate. Frame it in context:
-
“We could do that, but it will delay other high-priority work.”
-
“That approach could introduce reliability risks. Here’s a safer alternative.”
Saying no takes courage, but it earns respect, especially when it’s backed with thoughtful reasoning and alternatives.
Real-World Example
I once worked on a project that needed to send out a large volume of emails (thousands) at a time.
Every time the email job ran, the system would crash. Some users wouldn’t get the email, and others would get it twice. Product insisted: “All emails must go out at exactly the same time.”
We knew that wasn’t technically feasible and not reliable. So we asked: “Why does it need to be the exact same second?” After digging deeper, we discovered their real concern was that users receive the email in a reasonable window, like within an hour.
With that clarification, we proposed a buffering approach:
- Batch the emails
- Space out the sending with sleep intervals
- Build an audit table to track which ones had been sent, so we could resume in case of failure
This solved the reliability problem and met the product need.
Later, we discussed a next-level improvement: using a producer-consumer queue with multiple workers pulling jobs. This would allow parallel processing, maintain auditing, and provide scalability.
Lesson: once we understood what they really wanted, we could find a solution that worked for everyone.
Final Thoughts
Misalignment between product and engineering is natural, but not impossible. Clear communication, honest timelines, and thoughtful negotiation go a long way.
When you stop reacting and start listening, you’ll often find more alignment than you expected. And where there isn’t alignment, you’ll be equipped with these key strategies to navigate the tough conversations with confidence.