Shipping a perfect app

Since I am a heavy Club Mate drinker, I am currently working on an app that utilizes the MateMonkey API to show me all nearby dealers that carry my favorite drink on a map.

The original MateMonkey website, which I want to replace natively on iOS devices, already has a ton of features. It not only lets me search on a map, but it also keeps track of the dealer’s stock and prices, as long as someone enters them. This is really helpful as there are some very special brands or editions that I might be after (one of my favorite mates – 1337-mate is quite rare, especially where I live) and I wouldn’t have to go to a dealer that doesn’t have my mate anyway.

Replacing all of MateMonkey’s features in an app, that is also very well designed, is certainly not an easy task. Additionally, I’m quite a perfectionist and always want to give it my best and not release an inferior product (though I am quite aware that – in hindsight – I have definitely made some bad design choices for my apps in the past).

On the other hand, I don’t want to spend another whole year on an app, like I did with Panchromatic. That’s just too much time, no matter how many people use it and how often they use it or even how well it is received. This is supposed to be a hobby that I do for fun and for free (for now), so it must not become a burden or chore.

This is the reason why I have decided against shipping the perfect app that does everything perfectly. Instead, I will iterate more often, adding one feature after the other to the app and iterate on the design, if it’s obvious that it’s necessary. I think, this is far more useful than doing all the work until I’m fed up with it or trying to get everything perfectly right on the first try. Because this is just not possible. Case in point: All the professionally developed apps that are being updated every day. A shipped app with some bugs or missing features is better than no released app at all. The iPhone itself is on iteration number 10 (!), and the earliest versions were far from perfect.

So I think it’s more than ok for me to dial it back a bit and deliver a good basic product that can be improved in the future instead of adding and implementing all the ideas I currently have all at once, all while getting absolutely no feedback at all.

By the way, if you want to see what I’m doing (or even give helpful tips or improve my code), you can do so, since for the first time as a developer, I am coding out in the open on GitHub.

Leave a Reply

Your email address will not be published. Required fields are marked *