The Yes Trap
Early in most engineering careers, saying yes to everything feels like the right strategy. You're building credibility. You're showing willingness. You're proving you're a team player.
The problem is that this strategy doesn't scale. Every yes is a commitment. Commitments take time. Time is finite. When you've said yes to more than you can deliver, everything suffers: the new thing you committed to, the existing things that need attention, and your own wellbeing.
The engineers who seem most productive are almost never the ones who take on the most. They're the ones who take on the right things and execute them fully.
What You're Actually Saying No To
When someone asks you to add a feature, take on a task, or fix something "quickly," here's what a yes costs:
- Time you'd have spent on whatever you were planning to do instead
- Cognitive load of context-switching
- Scope of the codebase that someone will have to maintain
- Clarity of the product (more features almost always means more complexity for users)
These costs are real even when they're invisible.
How to Say No Without Friction
The goal isn't to be obstructive. It's to be honest about trade-offs.
Redirect to priority: "I can do this, but it'll push X back. Is that the right call?" This puts the decision where it belongs — with whoever owns the priorities.
Propose a smaller version: "I can't build the full thing this week, but I can do the core part that unblocks you in a day. Want me to do that?"
Ask clarifying questions: Sometimes a request dissolves on contact with questions. "What problem does this solve? Who's it for? What happens if we don't build it?" are all legitimate questions, not resistance.
On Codebase No
The hardest version of this is saying no to code. Feature requests, one-off hacks, "temporary" workarounds — these accumulate. Every line of code has a maintenance cost. Every exception to the pattern makes the pattern weaker.
The phrase I've found most useful: "I can do this, but I want to flag that it's adding complexity to this area. Can we discuss whether there's a cleaner approach?" Not a refusal. A flag.
The Long Game
Saying no well — clearly, kindly, with good reasons — builds more trust than saying yes to everything and underdelivering. People learn they can rely on your commitments. That's worth more than being the person who never pushes back.