> Meanwhile, the answer is that the features are necessary because someone is willing to pay $$$ for them.
Just because someone is willing to pay for them doesn't mean they're worth doing. It could be that adding a feature makes other features harder to add or support. So sure, it might get you a win today, but it will cost you in the long run. And someone needs to be making sure the question being answered isn't "do we want a win today", it's "do we want the win today at the cost of a larger loss tomorrow" (when that's the case). And the sales team and higher managers don't see that. So it's the developer's job to make sure the questions are asked.
Sure, sometimes the answer is that yes, the feature is needed today, and it's worth the pain later caused by it. But if someone doesn't ask about the pain, it can't be considered into the decision.
Just because someone is willing to pay for them doesn't mean they're worth doing. It could be that adding a feature makes other features harder to add or support. So sure, it might get you a win today, but it will cost you in the long run. And someone needs to be making sure the question being answered isn't "do we want a win today", it's "do we want the win today at the cost of a larger loss tomorrow" (when that's the case). And the sales team and higher managers don't see that. So it's the developer's job to make sure the questions are asked.
Sure, sometimes the answer is that yes, the feature is needed today, and it's worth the pain later caused by it. But if someone doesn't ask about the pain, it can't be considered into the decision.