Marriage and Developing for the App Store
So today, Joe Stump (whom I don’t know) posted a very colorful rant that I’m sure is creating a strong fanbase at The House That Jobs Built, aka Apple HQ. To summarize – he submitted a version of the app, it got accepted, it had a major bug relating to FB Connect for “users who had nobody who were friends with the application installed” (seems like a major use case, as most people will NOT have friends who have the app installed, but I digress). Anyway, he fixed it, resubmitted it, and it eventually got approved, and then a related bug appeared once again. Now, having resolved said issue, he resubmitted, and has been waiting for forever to get it approved. In the meantime users are killing him in the reviews, he can’t get any word back from Apple, and feels helpless as he watches users get frustrated with his application while he has a fix in his hand, but has no way to get it to the user.
Apple sucks, right? By delaying his patch, they are effectively letting their users deal with a crappy piece of software when the better piece of software is just sitting on some verification dude’s desk collecting spiderwebs.
Joe sucks, right? I mean, with no real insight beyond the blog post, it sounds like he left out a pretty major use-case (unless he assumed he’d have massive scale immediately…just like I assume Megan Fox would totally be into me). He messed that up, and then likely in a rush to get a patched version to fix that issue, either broke something else or didn’t fully test it, once again. So on his third try, he thinks he’s finally got it right, and is super pissed at Apple for sitting on it.
Leaving aside those two discussions, it was really this comment on TechCrunch that got me thinking. Kyle basically said, “anyone who blames Joe hasn’t developed software cause you can never have bugfree software and anyone who tells you so is a liar or is a pompous freak who doesn’t know anything about coding” (I’m paraphrasing, but since Kyle left his twitter URL, but has a private account, I can’t find any info about him).
Anyway, to me, this is what it boils down to: we got a web developer writing a client application. Developing for the web is like dating a chick. In the web world, you release stuff at midnight Monday, realize there are 805 use cases uncovered in the first 30 minutes that you had never anticipated, rollback the changes by 1am, code until 10am the next day, and then deploy again. By Wednesday, you get some feedback and some meaningful stats, and then you can change it a couple more times and re-release by Friday. This is awesome on so many levels because of the ability to iterate fast, and make changes based on real user feedback. Sweet right? At a web company, your developer-to-QA ratio is probably something like 5:1 or 10:1 or 10:0 where the guys who wrote the code are the same guys who test the code. If on Monday the chick you meet is ugly, by Tuesday you could line up another date and start over with little or no consequence, save for a few angry text messages.
That’s all fine and dandy because of the nature of the web. BUT, the reality of the iPhone/iPod Touch is that you’re writing client side software. And when you’re writing client side software, you’re getting married. If you mess up, you just can’t patch and deploy as frequently or seamlessly as you can on the web. You can’t just line up another date. You have to fill out divorce papers. And split assets, and figure out child support, and pay lawyers, and stalk ex-wives on Facebook and…eh hem, where was I? If you’ve ever worked at a desktop software company, the developer-to-QA ratio is often 1:1, and for a 6 month development project, QA will easily take 4-6 months on top of that. Why? Cause at the end of the day, you’re printing that bad boy onto a DVD, and putting that DVD in a box, and then putting that box on a shelf at BestBuy. When you do that, you’d better damn well be sure that that version is the right one, that you’ve tested it, and dated it, and found all its flaws and fixed them or worked around them. Point is, when you’re developing for the iPhone, you have to change your mentality. I’m not saying that you need to QA the crap out of that thing and never release it, but I am saying that I bet TechCrunch commenter Kyle never built client software, and I bet Joe Stump just learned that he might want to date his app a little longer before wedding it to the App Store.