Learning to Say No
I said yes to everything for the first few years. An extra project, a meeting I had no reason to attend, a feature request that didn't fit the system - I'd take it on. I thought that's what being a good teammate looked like - being available, being willing, being the person who doesn't push back.
It took me a while to realize that saying yes to everything was more about avoiding discomfort than actually helping. I was dodging the conversation where I'd have to tell someone no, and I was paying for it with my time, my focus, and occasionally the quality of what I was building.
The first kind of no that got easier was the technical one. Someone asks you to bolt a feature onto a system where it doesn't belong - maybe because the functionality already exists in a different form, or because adding it would create problems that aren't obvious from the outside. Early on, I'd just absorb those requests and try to make them work. I'd spend days building something that fought the system the whole way, and the end result was always fragile. At some point I started saying "this doesn't belong here, but here's what we could do instead," and that turned out to be a more honest and more useful answer than just absorbing the request.
The harder no is the one where I'm stretched thin and someone asks me to take on more. There's a voice in my head that says if I push back, I'll look like I'm not contributing enough. In my experience, that fear almost never plays out. I've found that people respect a clear "I can't take this on right now without dropping something else" more than they respect a yes that leads to missed deadlines or half-finished work. It took me years to trust that, though.
Quality compromises are their own category. When someone asks me to cut corners - ship it faster, skip the tests, don't worry about the edge cases - saying no feels like I'm slowing the team down. Sometimes I am, in the short term. I've been on the other side of that enough times to know that the "quick fix" almost always costs more later. I've gotten more comfortable saying "I'm not comfortable shipping this as-is" and explaining why. Sometimes the answer is still "ship it anyway," and that's a decision someone else can own.
The shift was gradual - a slow accumulation of times where saying yes led to worse outcomes than saying no would have. I started noticing the pattern: say yes, overcommit, deliver something mediocre, feel bad about it. Or say yes, build the wrong thing into a system, spend twice as long fixing it later.
The approach I've landed on depends on the situation. Sometimes it's a direct no with reasoning. Sometimes it's redirecting to a better alternative. Sometimes I pick my battles and absorb a request I don't love because the political cost of fighting it isn't worth it. That judgment call is its own skill, and I'm still refining it.
I don't think saying no gets easy, exactly. The guilt and the worry about how I'm perceived don't fully go away, but over time they get quieter, and the pushback itself gets less stressful. Most of the consequences I used to brace for just never showed up.