Most apps are riddled with buttons. They've been infected with button plague, the worst of all app diseases because they are noticeably sick to everyone.
The problem is most developers work from the back-end to the front-end. We will spend countless hours building features, and when the time comes to unleash these new features, we need another button to do so.
If we have invested a lot of time into these new features, then it is almost impossible to question their presence with an impartial eye. It's like telling someone you will look after a puppy for a month, just until they find a good home for the little furball. After spending that much time with the puppy, they are impossible to give away.
However, if you start with the UI, and have a very fixed set of elements available to you on the page, you are forced to code up new features differently. You are forced into thinking about how valuable and necessary this feature really is. Should it be bundled with that other feature? Should it only be available to the user on the home screen? Just because other similar apps have this feature, does it really mean that I also need it?
Your UI will be your CEO and project manager. It will make you existential with your feature set. What does it mean for somebody to favorite my widget? What is a favorite, really? Should a favorite even exist? What are they trying to say to me? Is there a better way for them to communicate this to me?
This is particularly helpful if you're a one-man startup. If you have no one to bounce ideas off of, then bounce them off your UI. It will accept or reject them almost immediately.
Let me know what you think. You can tweet me @3solarmasses
If you like the style of this blog post and would like to have your own blog similar to mine, you should check out Silvrback.