Experience over features
Features don’t matter, experience does. Who cares if the app promises to do everything but doesn’t do a single thing right?
Being the best is not enough
It’s not enough to make the best app of its kind, one must try to build a perfect app (even though it’s impossible).
Make great design, then implement it in code, not the opposite. While thinking in code it’s easy to lose the scope and roll down to inferior solutions.
Don’t do anything you can’t do right
Ok, you have a great feature scheduled, but the final implementation is less than great. Postponing or even discarding the thing is likely the best idea.
Follow patterns, don’t imitate
Learn from others, try to understand why they’re doing things that way and only then lend the best patterns and integrate them into your app. Take a look at Zune or today’s iPad “competitors,” they’re pitiful, don’t repeat their creators’ mistakes.
Merely working tools for just 39.95 are so Windows… Try to make premium quality software affordable.
Take advantages of your size
When you’re small, don’t pretend being big. Be fast, be flexible.
You’ve made a great thing! You haven’t. Just throw it away and start it anew. Think. Add, remove, change, polish, repeat the process many times. Now compare your result with the original which doesn’t look any good at all…
You’ve messed up something? How unexpected… Now go and tell this. Your customers may forgive you, but don’t expect them to forget.
Beautiful and useful
Don’t make anything unless it’s beautiful or useful. Try to stick with solutions that are elegant and needful.