At least I have an excuse. Running pre-release operating systems and firmware in production settings is part of my job description. I accept that "beta" items are exempt from expectations of day-to-day stability, backward compatibility, performance and feature completeness. When I took the iPhone 3.0 OS as my one and only system software for the device, I was fully prepared that existing apps would break, some software on App Store would prove incompatible, the device would freeze up, and in any imaginable way on any given day, the beta firmware would show itself as less than firm. That's the point of a beta. It's the price that admins and developers pay for the privilege of knowing what's coming next. In the case of the iPhone, that's essential knowledge. iPhone 3.0 is a platform overhaul: new OS, new APIs, new SDK, new tools and new rules for App Store approval. Apple is dramatically changing the game. In the next three months, every iPhone owner will have a brand-new phone. I take the frustrations of pre-release software in my stride and keep the glitches to myself. Most people do not. That's why handset manufacturers limit the distribution of pre-release system software. By nature, beta OSes and firmware destabilise the platform. For that reason, Apple wraps the iPhone beta in a barbed-wire NDA and issues the stern mandate that iPhone devices registered for development must be used only for development. Apple makes this rule while being aware that it is impractical and unenforceable. App Store is jammed with titles from sole proprietorships, while you and I both know that the luxury of an extra, activated iPhone 3G is one that the typical iPhone developer cannot afford. In general, if you're using iPhone 3.0, it's likely all you've got.
You also know that Apple's iPhone Developer Program and beta program count among their membership, those who trade US$99 for the privilege of early bragging rights to the iPhone 3.0 OS and who have no imminent plans to write code for the device. Yes, they're out there. They're the ones who poison the App Store with one and two-star ratings for otherwise good software that doesn't run properly on iPhone 3.0. You can argue the unfairness of this all you like with the betaphiles. You can remind them that they're breaking Apple's rules by using a development phone in production, that discussion of iPhone 3.0 problems are supposed to be kept within the Developer Program and that the App Store doesn't yet host apps created with the iPhone 3.0 SDK (also beta). No matter — the App Store's comments and ratings system is open, and ugliness would undoubtedly ensue if Apple started moderating it. I've been waiting for Apple to weigh in somehow and it finally did, but not the way I expected. Apple sent a memo to all iPhone developers that future App Store submissions will be validated against iPhone 3.0. Most apps created with a 2.x SDK will just pass, but if you submit an app that doesn't pass, you're pretty much duty-bound to debug it on a device running iPhone 3.0 beta. A firmware upgrade to the 3.0 beta can't be undone, so if you take the leap on your only dev phone, you lose the ability to validate apps against the iPhone 2.x platform. Some problems that prevent an app from running on 3.0 might be solved simply by rebuilding the app with the iPhone 3.0 SDK (and perhaps paying closer attention to compiler warnings), but the App Store won't let you post apps built with the new SDK yet because, ostensibly, iPhone 3.0 is not shipping software. It's a catch-22.
The same scenario is unfolding, or unraveling, on the T-Mobile G1, where cobbled-together editions of the Cupcake (version 1.5) firmware are common in the wild in advance of T-Mobile's official OTA (over the air) distribution of the new OS. It doesn't help that OTA is the only update mechanism T-Mobile has in place; even though 1.5 is now officially released, only hackers have the tools to flash G1's firmware from a desktop. T-Mobile is randomly pacing the distribution of the new firmware so that its US 3G network doesn't crater under the burden of some terabytes of simultaneous downloads. All G1 users will have the 1.5 software by the end of this month, T-Mobile says, but that tease is drawing users into homebrew alternatives. Something like the 1.5 firmware, minus the commercial-grade stability, can be put together from Android sources, and cobbleware Cupcake has the added spice of being "rooted", cracked to permit privileged access to the G1's Linux kernel. T-Mobile has its work cut out to make the official release look more appealing. People who report running Android 1.5 on T-Mobile G1 might be running the operator's official binary release, a homebrew variant built from developer sources, or some blend, but they will all want to download software from Android Market. If something about their particular flavour of firmware breaks an application, if history is any indicator, they'll take out their frustration by pinging the app with low ratings. Comments in Android Market's ratings system tend toward, shall we say, more frankness than the comments on Apple's App Store. Android's still got a "Wild West" feel to it.
This isn't a screed against the practice of running homebrewed or pre-release firmware on mobile devices. Hardly. The variations on the standard firmware of iPhone, Android, and Microsoft Windows Mobile (these are the most commonly hacked enterprise/professional platforms) make my job more interesting, and they prod the vendors to work faster on feature enhancements in their official releases. Many iPhone 3.0 features wouldn't exist if Apple weren't competing with the freedoms in jailbreak firmware, and pitting App Store against the distributed bazaars fronted by the Cydia and Installer utilities. Once you own a device, you're free to do with it what you choose. If you're so enthusiastic about a mobile platform that you want to wring every ounce of potential out of it, I understand. I'm there. I hope you'll try to see that most people who hang out in App Store and Android Market are consumers, professionals and IT. When you post a low rating for a third-party app's poor performance based on something other than a full retail binary distribution of the platform software, you're hurting the platform. The free-for-all comments discourage potential buyers, and that costs an erstwhile colleague money or reputation. IT is watching closely as iPhone and Android mature. They're nearly irresistible as open and POSIX-complaint platforms. And yet when those considering the platforms for serious purposes see such a range of lackluster reviews, and downright pans that can tend toward incivility and insulting, they wonder if the platform is getting worse, not better. If you're running freaky firmware — that is, anything but what your wireless operator delivers for your phone — here's all I ask: Keep remarks about what apps break on your unreleased and off-the-path firmware out of App Store and Android Market comments and ratings. The savvy types have their own places to play and they should go to those forums and IRC chatrooms to speak developer to developer, and to submit attachments illustrating failures in ways that comments and ratings can't. If seeking out those avenues for feedback seem like too much work, you're a poor candidate for testing beta or altered firmware.
I used to wonder why the manufacturers of Symbian, BREW, BlackBerry, Treo and Windows Mobile eschew radical firmware updates. Like all mobile developers, I know the biggest difference between phone models is the firmware. Why not let everyone in on the thrill of a new device through software alone, without the additional toxic outgassing of semi-cured plastics? Now I know why. It's a pain just from where I sit. I can only imagine what it's like for T-Mobile, Apple and AT&T customer support, as increasing numbers of inadequately savvy users prematurely flash, then follow 'net tutorials for mangling their firmware. With that knowledge and with all I've said about the downside of massive Apple and Android phone OS updates, I still believe that keeping existing customers in parity with current model capabilities is a hallmark of a winning mobile platform. It's early days yet. Apple has only done this once, and then with a much smaller installed base, and Android just took its first swing. It will take time for both players to balance the market's desire for the new, against the need to maintain a stable platform. Some combination of Android's open source approach and Apple's fast-evolving early access programs will help keep the buzz going leading up to a major release. Yet, that outspoken minority of users who choose to live on the bleeding edge, and who insist on grading mass-market applications for their adeptness at surviving a high-risk, beta environment, need a place of their own to play. They're scaring away the customers.