One of the many cool things about working in wireless in general and at a device management company like InnoPath in particular would be....devices! We always need to keep on top of the latest and greatest, so we have a cool assortment of commercial and prototype devices coming through here. If you are of the nerdly persuation, this is powerful good stuff indeed.
One of the more interesting toys to come down the pipe has been the Tmobile G1, the first Android phone. All in all, a reasonably solid smartphone that is in some ways almost as slick as an iPhone and almost as stable as Symbian with one of the best browsers and a big, bright, lovely screen. Some fatal flaws, like lack of real Exchange support, but what fun would a first effort be without some sort of missing features or blemishes?
The phone we have here is currently on Firmware Version 1.1, we have been through one update, which was pretty slick. With Cupcake, the 1.5 FW being out, I am of course eager to get my hands on it.
Here is the sticking point. One of the rules of good UI design is that you should never tease the user or create expectations that are not going to be met, but that is what happen here. We know that Cupcake has been released, and the UI of the phone has a place where you can check for FW updates. Thus the expectation is that even if there is a FW push going on that has not reached the device that a client initiated update done from the phone would be successful. In this case, checking for an update just gets you "Your system is currently up to date".
One of the lessons I learned from a long and painful stint in corporate IT was that managing expectations was key, perhaps even more important than overall technical excellence. If you set expectations right and kept people updated, they usually didn't complain too much no matter how hosed up things were. In contrast, technical excellence meant little when the unmanaged (and often unreasonable) expectations of the unwashed masses were not met.
So clearly the hard part is building a new version of the firmware and coming up with a decent OTA distribution system. Clearly the easy part is manipulating a string such as "Your system is currently up to date" which could easily be manipulated to say something like "An update for your phone will be available shortly" or better yet, do the push such that the main push happens on schedule but client initiated jobs are allowed priority. Even home networks can handle QOS these days and let VOIP traffic have priority over email, business processes probably should be able to do the same.
So, where's my cupcake?
The best Christmas lights
4 months ago