This interesting article comes from an app-developer's perspective and looks at whether or not you should be adding that new feature to your app.

In general, there are three great reasons not to add a feature:

1. You have limited resources, is this feature the most important place to direct your limited resources? If not, don't do it

2. You will have to maintain this feature forever. So, if someone finds a weird corner-case bug, or some external change breaks things, you'll have to revisit your new feature

3. If you ever withdraw the feature, some users will hate you for it

The most tempting new features are the ones where, as a developer, you wonder if that's even possible. But there are the ones that can cost you most in the long-run.

In the world of Salesforce development, there's always another factor as well:

4. Will Salesforce implement this themselves in the short/medium term?

If whatever you need is going to become a feature of the platform, you'd be mad to spend your resources on it today, unless it gives you a big competitive advantage to be the first one there.

So, as a consultancy, sometimes the best advice we can give is to just continue as is. Or to rein in the specification a little. And, only when you're really sure: build it!