Mobile platforms and technical debt

One of the fundamental problems that killed Nokia, Palm and RIM was that in 2000 or so they designed their platforms around presumptions and tradeoffs that were correct for the time but which made it very difficult to compete with iOS and Android 5-10 years later. They presumed slow CPUs, little memory, and slow networks, as well as only resistive touch screens or no touch at all, and they traded off performance and a richer experience for battery life. These were the correct tradeoffs and assumptions in 2000, but not in 2007. That meant that they had to change platforms, and changing your platform is almost always a near-death experience, as both Apple and Microsoft could testify. 

This raises a question: what assumptions and tradeoffs did Apple and Google make that would also cause them problems further down the road? It was 5 years from the first Nokia Series 60/Symbian phone (the 7650 – I think I might have one somewhere) to the iPhone’s launch in 2007, but 8 years since then. A lot of what we’ve seen recently could be described as attempts to change some of those tradeoffs. 

The original iPhone had a fixed resolution, couldn’t run third-party apps and had no multi-tasking. Some of this was philosophical (we’re told Steve Jobs didn’t want apps, if you believe that) and some was about the iPhone being an MVP in many ways (basic camera and no copy/paste, 3G or picture messaging, for example). But most of it was about what it took to get a device that achieved the desired base level of experience at all at that cost and power budget – exactly the issues Nokia, Palm and RIM faced years earlier. Secure, sand-boxed multi-tasking third-party applications were more than the first generation hardware could manage, at least with a battery that would get you through the day. 

That is, a lot of what Apple has been doing in the past few releases has been about rebuilding the operating system to shift the balance of those trade-offs over time as performance has gone up 50x or so. Hence we did get sandboxed, secure multi-tasking and extensions and (in a slightly hacky way) a move away from fixed resolutions for both iPhone and iPad, 8 years later. Apple has been replacing the engine in flight, and has, more or less, got away with it. It changed all the assumptions. 

You can see something similar in Android, where the key trade-off was in openness. Google built/bought an open-source operating system with a very basic UX and very little central control, and again, that was the right trade-off for the time. It resulted in a hugely successful platform with unprecedented scale – there are almost certainly now more Android devices in use than PCs (if you include both Google’s closed Android and the open variants that dominate in China) and twice many as consumer PCs, which is the more relevant comparison. Of course, it also, inherently, led to fragmentation, a splintered and sub-par user experience and, increasingly, third parties (Amazon, perhaps Xiaomi, perhaps Samsung) trying to take over the user experience.

In 2007 that was the right trade-off – you can see the alternative path in Windows Phone. But over time the balance changed. If you want to attract app developers then fragmentation needs to be addressed, and as the OS itself became a service aggregation layer before the browser, and as user data became as important as raw web search reach, Google’s control of the UX mattered more and more. Hence, Google can now be seen to be pushing back significantly on some of the ‘open’ parts of Android. By putting its own services and APIs into GMS it ensures that a larger proportion of the base can have the latest ‘version’, for example, and it pushes ever harder to retain control over the UX and stop OEMs from changing too much. It’s not yet clear where this will stabilize, with open Android starting to spread outside China and the Android OEM space in flux, but Google is clearly revisiting those assumptions about ‘openness’.

One way to look at this is that iOS and Android have been converging – they arrived with more or less the same capabilities despite starting from opposite ends. Apple has given up control where Google has taken it. And of course Google has had to add lots to Android just as Apple had to add lots to iOS (and they’ve generally ‘inspired’ each other on the way), and just as Apple has added cloud services Google has redesigned the user interface (twice, so far). 

But the underlying philosophies remain very different – for Apple the device is smart and the cloud is dumb storage, while for Google the cloud is smart and the device is dumb glass. Those assumptions and trade-offs remain very strongly entrenched.  Meanwhile, the next phases of smartphones (messaging apps as platforms and watches as a dominant interface?) will test all the assumptions again.