I’ve commented on the App Store approval process before from the position of a potential future App Store supplicant, but now that theory has become practice my feelings have changed. But this doesn’t mean I’m completely in the App Store is broken camp (paulgraham.com).
Apparently Apple’s attitude is that developers should be more careful when they submit a new version to the App Store. They would say that. But powerful as they are, they’re not powerful enough to turn back the evolution of technology. Programmers don’t use launch-fast-and-iterate out of laziness. They use it because it yields the best results. By obstructing that process, Apple is making them do bad work, and programmers hate that as much as Apple would.
Paul Graham (my emphasis)
From the point of view of a developer, the App Store approval process is just horrible. You basically submit your app and wait. And wait. And eventually you either get rejected with some kind of set of suggested changes (my wife’s experiences in Academia have led us to refer to this as “revise and resubmit”), rejected outright, or (you hope) accepted. In the best of all possible worlds, you produce a new or updated app and … some time later … it appears online.
The worst case scenarios are, in large part, well-known. Apps left in limbo. Bizarre and inconsistent rejections. Apps made with annoyingly conservative content or feature sets to avoid potential rejection or handle insufficiently specific rejections. Yuck.
Also annoying is the idea that, say, an App has a problem, the problem has been fixed, but there’s a bureaucratic snarl between me and the solution. The developer is ticked off because he/she looks bad. The customer is annoyed because he/she is living with a problem. And Apple looks bad because of both of the above.
So I reread Paul Graham’s (as usual) thoughtful take on the whole thing the other day when I was trawling his site for new essays (there were several, Paul is a super smart guy and a very good writer) and his issues with the App Store approval process seemed suddenly much more compelling. But as I was turning it all over in my head this morning, it struck me that (a) Apple knows all this, (b) Apple isn’t stupid, (c) the App Store approval process is obviously quite complex and expensive to administer; so why was Apple persisting with this obviously broken model?
Let’s take a step back for a moment and think about how the App Store submission process affects both developers and customers:
- If I fix a bug in my program, I can’t just recompile and stick it on my website where one of the various automatic update mechanisms can send it straight out to all my customers as their apps “phone home”. This sucks, because I like fixing stuff and my customers really appreciate getting quick fixes.
- If my app is in the submission queue and I discover a bug and fix it, I need to trade off waiting for the current version to get approved/rejected or reject my own submission and lose my spot in the queue. This sucks because it creates an incentive for me to leave buggy apps in the queue rather than send out my latest, greatest binary.
- It’s unfair for me to have to invest in developing an App not knowing if I’ll even be allowed to sell it.
- I want good software that Just Works and is easy to use.
- I don’t want apps that update themselves every time I launch them. On the other hand, I don’t like using out-of-date apps not knowing if I’m missing out on some really great new feature or risking running into some horrible bug that’s already been fixed.
- I don’t want to buy an app and then discover it doesn’t work any more or isn’t supported on the latest version of the OS.
It may seem like there’s an obvious win-win here that Apple is perversely ignoring. Let developers ship product when and where they want. Let customers buy the products they like. But actually that’s not true at all.
Here’s what the Wild West has delivered:
- Big Commercial Apps that treat OS updates as an opportunity to sell largely worthless version upgrades (I’m looking at you Adobe, Avid, Autodesk, Microsoft, et al.)
- Small Indie Apps that rev constantly so that every time you launch them it seems you need a new version. (“Install and Launch” is practically the equivalent of saying “good morning” to Acorn, GraphicConverter, etc.).
- Small Indie Apps that seem really great but never get to version 1.0, even after charging people for registration (The Hit List), or suddenly become unsupported with no word from the vendor (Silo 3d, Textmate).
Apple can’t do much about the last one except make it easier to track developers by reputation, but the App Store submission process is an attempt — a deeply flawed attempt, to be sure — to address the first two.
So here I am, Manta is in the queue, and I have a list of known bugs I am slowly working through. If I want to update my submission I will lose my place in the queue, so I am holding back my fixes until I get approved or rejected (since any issues leading to rejection will clearly be higher in priority than various things I think might need polishing). If I found a show-stopping issue, there’d be no point but to reject my own submission, but as things stand I think on balance I will stick it out.
Am I being “forced” to do “bad work”? No, I’m being forced into thinking of releases as being something I need to think about and not “whatever last compiled cleanly”. I’ve been selling software online since before it was terribly sensible to do so (e.g. when we sold Prince of Destruction online, we couldn’t handle credit card payments and most people had no idea what a website was) and the App Store submission process has certainly been useful and educational (and frustrating and scary) for me.
Arguably some developers don’t need to have this discipline enforced on them by Apple, but I don’t hear any of the likely candidates complaining (Omnigroup? Panic? Electronic Arts?). There are over 100,000 would-be App developers out there, and I’m guessing being forced to think in terms of concrete, well-defined, tested releases is going to be a big win for 99+% of them.
Stop whining and do a little QA.
Manta has been approved and is now on sale in the App Store. Also, I added an image to the post.