It's very rarely a developer's role to say outright "no". It's our role to make trade-offs understandable by decision-makers, and to clearly articulate why we think something is a bad idea. Sometimes (usually...) the broader business has different goals that just delivering quality software, and I think part of being a professional is understanding that.
There is, of course, a time and a place for a hard "no". I've genuinely threatened to quit rather than implement a particularly user-hostile feature in the past.
There is, of course, a time and a place for a hard "no". I've genuinely threatened to quit rather than implement a particularly user-hostile feature in the past.