I've been thinking for a bit about what makes software go from good to great. I realized something: the number of features is irrelevant. No, what makes software great is the little touches. Tiny little things that make your life easier. The itunes music player has a perfect example of this. On a feature-by-feature comparison with Windows Media Player, it probably loses big time, but it does the right thing more often. I can't exactly quantify what those are, but I know I enjoy using Itunes more than Windows Media Player.
The standard thinking about building a software product goes like this: You create a list of features. You sort the features by priority. Then you start writing specs. Each of those specs has subfeatures that each have their own priority. What ends up happening is that you end up selecting a large set of features due to optimistic scheduling. Then each of those features ends up having to cut back its scope or lose polish.
What happens next? Well now all those really neat things that would have made your product really awesome end up getting cut as they're "nice to have", instead of "must have" for the features.
Those "must haves" might be on a checklist for a business customer, but for an end user, those kinds of things aren't going to make them fall in love with your software. No, the "nice to haves" are what will make your end users love your software and tell all their friends.