One thing we'll want to get into the habit of doing it, before adding new features, sitting down and taking a nice, thoughtful look at how we'll be designing our features. We want to figure out what the use cases are: why do we want to add these features? What do they add to the experience that makes our application more compelling for the user to use and continue using? What benefits do they add, and just as importantly, what will it cost us to add them?
This isn't just a question of straight-up money or initial time sink, but it is a long-term question as well. How hard will it be to support? How much extra work will we need to do to be able to support this feature? Not only that but is it the kind of feature that is required for the application to succeed? When you sit down and start answering these questions, you can...