Much of the popular media these days is dubbing the iPhone App store and Apple’s process as:

After thinking about this for a couple of days, I think that the people writing these claims have some valid points, but I’m actually really in favor of the model Apple has set up with their store. I feel that many of these complaints aren’t actually with the process or the store, but really with the execution of the process.

The process that you must follow to develop for the iPhone is more demanding that most developers are used to. You have to come up with an idea, submit it to Apple, be approved, develop an application and then submit the application to be reviewed by Apple. During any point in this process Apple can choose to reject your application for any arbitrary reason.

Why would Apple require such a process?

Lets start with Apple’s brand image. In 1984, during the Superbowl, Apple introduced the Macintosh with a commercial that said “we are against complete control over, we are the company of rebels.” In an age where big companies were completely dominating the market, Apple was trying to change things up. That is what they did the Macintosh. The message presented in that commercial has resonated through the halls of Apple from that day to today. Joel Spolsky mentions this in his book: Smart & Gets Things Done.

The App Store for the iPhone go against this. They require developers to submit their designs and have them approved before they can start selling them to clients. Apple can look at the code, design or any other aspect of the application and decide to deny them the right to sell their App to the public. Apple is taking control over their device, the opposite message of their original premise with the Macintosh.

But the iPhone isn’t the Macintosh. The Macintosh is a computer that sits on your desk and does a bunch of computing, using custom applications and manipulating data in any way choose. You have the freedom to build your own Apps, customize the machine in any way you want to make it work better for you, with a small set of limitations from Apple.

  1. You buy Apple hardware to use Apple software
  2. Certain components of the operating system are protected from developer manipulation
  3. There is no 3rd rule

That is a large amount of freedom, but if your computer breaks, there is usually someone you call for assistance, either Apple, or the guys who made the software you are having a problem with.

The iPhone is a completely different product. Its a phone replacement. Phones are important, they allow us to communicate. Also the standard for using them is different than a computer. Computers have crashed since the day they were created. It is somewhat expected that the computer you are using will crash and you will have to restart it. You hope you remember to save every once in a while, so not too much of your data is lost (I’m saving this post right now), but crashing is a fact of computing. When was the last time your touch-tone phone crashed?

The expected level of performance for a phone is significantly higher. People use phones to call their family, or the hospital. The process of navigating a phone menu can be tedious and annoying if forced to do it several times. Now cell phones, loose reception, and that is something that a cell carrier has to worry about, but if a phone in the middle of an important phone call needs to restart, we have a concern.

When the team at Apple started to develop the iPhone, I’m nearly positive that one of their top priorities was reliability of the device. Apples goal was to build that phone. As the demand for the iPhone out stripped the supply when it was released, I’m pretty sure Apple itself was surprised by the success this phone made. When people started calling for the ability to produce software for the device, Apple had to rush to put something together. Their first answer was web page based. This solved the initial problem of letting people develop for the phone, but not the bigger issue. Developers wanted to put their Apps on the phone, use the phone information, like contact info, location, other pieces of info that weren’t available to web clients.

So Apple made the SDK, and started building out ways for developers to write software for the iPhone, but they still had to be concerned with the reliability of the device. Again, we can’t have this phone crashing because people install bad software. So, Apple created the process: You submit the App, we review it and test, and make sure it fits with our concerns and then we’ll let you sell it. Heck, we’ll even help you market it through our store. Reliability is now mediated by Apple itself.

Here’s where the problem gets sticky. How does Apple decide which Apps should be allowed through? It needs a process, with a team of people reviewing these Apps, making sure they are safe, and then notifying developers of this process. Okay, so that was one sentence, but it is actually a lot more complicated than that. Many eyes need to see his App before it gets approved or released. That is a ton of work on the part of Apple. This is where the breakdown happened.

My guess, and this is just a guess, is that the amount of people working on this project is: 1) not enough for the amount of apps coming through the door; and 2) too large for people to keep up on which other apps are being approved. That is why some apps that seem to be replicating functionality of other approved apps are rejected. Also, because there are so many Apps coming through the doors to this organization, I would guess that default choice is to reject the Apps for anything small, even has a way to reduce the amount of code the reviewers have look through.

The App Store is still young, though. My guess is that Apple is beginning to see the problem and starting to take steps to mitigate it. It won’t happen over night, and those of you expecting this are dreaming, but in time, I believe it will work out. In the mean time, I’ve a got a portable phone with a high reliability factor.