When I was a younger programmer, I thought, "Features are great! Always add a feature, if it could help someone!" I overestimated the value of the feature, and didn't think at all about the costs of the feature. "I mean, how long does it take to implement this? 10 minutes? A couple days? What's that matter, vs. the utility that this would provide?"
What I didn't realize at the time was that every feature basically adds an exponential cost, and has an impact on everything else going on in the codebase. Features introduce new possibilities, and new possibilities create new state combinations, and new state combinations create new bugs and new need-to-test circumstances. New features usually have a user interface impact, several new features have a dramatic user interface impact. New features need to be supported by new or future-self programmers, who have to understand and navigate around the code. If the product is ported, the feature needs to be ported as well. New features also require additional documentation, and if the product is localized the new documentation requires new localizations.
I've heard that "the skilled Go player is reluctant to make a move." I think it's similar for the application developer, and for much the same reason.