So. It’s fashionable lately to whine about app review. I’ve done it. I’ve blogged about how evil it is.
Being at WWDC though, and hanging around Apple reps 24/7, I’ve started to drink the kool-aid. Now, I still think app review is often terribly unfair (I’ve had some absolutely awful rejections). But. I’m kinda starting to see Apple’s point. If you were looking for another article to enforce the mob mentality and get your juices flowing, you can stop reading now.
The reason app review exists is because it enhances the user experience. Jobs has said this. Apple PR has said this. Apple engineers have said this. Apple legal has said this. But I don’t think, in a very serious way, many developers have actually considered this statement on its face.
You see, from any other company, it would be a joke, or worse. On the level of “We’ve raised our prices to serve you better.” The sort of parroting that happens out of fear that it will be quoted in a class action lawsuit somewhere.
However, I’ve come to the conclusion after speaking with high levels of Apple insiders that Apple is indeed being deadly serious about user experience.
Part of the huge disconnect comes because I think most developers look down on mere users. In today’s world, the number of people who really want to use computers is pretty small. Real people want to browse web sites. They want to get e-mails. They don’t want to use a computer. They don’t want to have to learn the file metaphor. They don’t want to have to learn to use a mouse.
When developers talk about usability, we’re talking about GUI vs. commandline, or mac vs. linux. Nobody cares. The difference in usability is so minuscule for a normal person that it can hardly be measured: that is, everything sucks. It might be just a hair easier to use Apple Mail than Outlook. It’s certainly prettier to look at. But that’s the extent of the difference.
We’ve forgotten what it’s like to be frustrated by a mouse. We’ve forgotten what it’s like to not know what “IMAP” means. We’ve forgotten what it’s like to forget what we named that file or where we placed it. At this level of computer-uneducation, the sort of “prosumer” usability gains from Mac OS just don’t exist.
When developers see these people, we tell them to RTFM or to learn how to subscribe to the mailing list, or even things that (to us) are really trivial like drag this app to your Applications folder or control-click with that icon selected or “type it in spotlight.” All these require the parallel mental understanding of at least:
Contrast this with iPhone OS, where the steps to do just about anything are:
As developers, we underestimate the order of magnitude of this distinction. We learn a new programming language once a week. Pro users learn a new version of Final Cut once a year. Your mom might learn how to send e-mail once, if you’re lucky.
And so, while we’ve laughed at Apple’s claim that Google Voice was rejected for a user experience issue, rather than an anticompetitive issue, consider the assertion on its face: mom installs the GV app. Maybe she even makes calls with it, some of the time. But she wonders why it only works occasionally, having never even entertained the idea of a dialing “program” before, and using GV over the phone’s native dialer is far from her mind. She gets confused–she has these notifications for voicemail, but they’re not in the usual voicemail place? She sends SMSes, but some of them aren’t recorded in GV? Maybe that will get fixed when iOS4 introduces support for “multitasking.”
The real place to have GV support is in the OS itself–perhaps refusing to do so is anticompetitive. But Apple’s statement is certainly true: a GV app is a serious usability issue for normal people.
Developers start with the assumption that the user is wrong. The user needs to be re-educated. Don’t delete your mail, archive it. Don’t power off your computer by pulling the plug. Use “documents” for documents, don’t put your downloads in there. Stop clicking “allow” on all those prompts. Don’t use IE, use <insert-browser>.
Apple is starting with the assumption that the developer is wrong. Developers write software that is way too hard for users to use. Developers need to throw away old metaphors like “save” and “load” and make things Just Work (TM). And if it can’t Just Work then don’t even do it in the first place.
I read an article the other day about a person who died because of a third-party dialer on Android. Can you even imagine if an article like that was written about the iPhone? I mean it’s obviously not Google’s fault. But in the mind of your mom who just watched a scary Fox News piece on it… it kinda is. Now she’s too scared to buy apps anymore. Good thing she has an iPhone, were nothing bad can ever happen.
A free app market is kinda like terrorism. Not many people really get hurt, but due to psychology it’s way scarier than the mundane things we really should be worried about. Especially in the minds of people who don’t really understand technology.
So if there was, say, just a single app in the store that accidentally deleted all your data–how many newspaper articles would be written about it? How many people would swear off buying apps? By how much would the app market shrink? How much would it cost you personally, competent app developer who doesn’t delete anybody’s data?
If one app deletes a customer’s contact list, that anger will be directed at Apple. If one app manages to hit 100% CPU for an hour and drain the user’s battery, that anger will be directed at Apple. If one app gets a kid busted for looking at porn, that anger will be directed at Apple. Developers in theory know better than to direct that anger at Apple–yet in the same breath we blame MS for creating a shoddy architecture that allows malware to thrive.
Already, newspapers don’t need any excuse to blame technology for today’s ills. Any day now, Australia or Jack Thompson or somebody’s ready to ban the Internet. Apple wants to pull itself entirely in the opposite direction–to be totally above reproach. They want those articles to be written about Android.
Due to psychology, consumers are irrationally afraid of bad apps. But developers can be irrational too. Here are a few amusing fallacies I’ve heard against the Apple market:
“There’s crap on the market already, so opening it up can’t make it any worse.” Why not? Seriously, why not? Just because it’s X bad now doesn’t mean that performing some action A won’t cause it to be 2X bad.
“Android has an open market and it’s doing fine.” If by “fine” you mean people aren’t buying anywhere near as many apps. You have two things working against you on Android: 1) The people who buy Androids are more often than not developers, who either write their own software or are used to FOSS apps and are conditioned against paying money and 2) Any “real users” who pick up an Android device have the same barriers to buying apps that anyone not on an iPhone has: (irrational) fear of bad things happening. Paradoxically, an open market leads to reduced consumer trust and reduced consumer spending.
“Apple could use a community policing policy and that would work out fine.” It would work out fine until the first article about a third-party dialer causing somebody to die. At that point, sales both of iPhones and of apps would drop off pretty sharply.
“Maybe with some consistent, clear rules, app review would be better.” No, it would be worse. Right now, there’s (really) only one (secret) rule. Don’t tell anyone I told you…
There’s only one rule on the app store. Here it is:
Make your app a magical experience for ordinary people.
Things that are not a magical experience include:
Almost every rejection ever is a violation of The One Rule.
Conversely, if you follow the One Rule, you’ll find you can break a lot of the things in the SDK agreement. Providing video recording on the iPhone 3G? Turns out you can use private APIs. Writing themes for your game? Turns out you can use Lua. The SDK agreement is just writing out a lot of things that are somewhat tangential to The One Rule, in a failed attempt to make app review seem objective. Well, it’s not. But that’s not necessarily bad.
“My app got rejected for some other reason!” Possibly. The problem here is that Apple gets like 10,000 submissions a week or something ridiculous. The best QA team in the world would have trouble with that number of submissions. Mistakes are made.
Personally, I would love to be able to front, say, $99 or so per submission to get a serious app evaluation, maybe even with feedback from an Apple UI designer (currently I have to fly to WWDC to do this, and only once a year). As a professional app developer, I would have zero problems with fronting some cash to get my app looked at if it meant an “express lane” better-quality review, with actual feedback. At least I wouldn’t be in the same bin as the crap submissions. I think Apple’s concern here is that it wouldn’t be “fair” to poor developers. So keep the same “free” review lane, and add a premium lane. Problem solved.
Apple might be a little misguided. They might be treating developers poorly. But they’re making a hell of a lot of money doing it. Who are we to say that they’re doing it wrong?
This quote from a developer I think really sums up how a lot of developers feel:
If the end result has and continues to be shoddy then maybe there’s only one way to vote — with your feet.
My rebuttal is simply:
If everybody’s flocking to iPhone, doesn’t that mean the result is better than shoddy?