Why Nokia failed: 'Wasted 2,000 man years' on UIs that didn't work
For want of a nail, the Kingdom was lost?
When Nokia CEO Stephen Elop announced that Nokia was abandoning its development of its own smartphone platforms and APIs, and betting the farm on somebody else's, many people asked why it was necessary.
Nokia had spent 15 years trying to develop and maintain its own software, which it regarded as strategic to maintaining its independence. Elop's decisions have ensured that Nokia didn't just get another option to run alongside its own, but it would abandon these, writing off the investments it had already made. In his opinion, these weren't good enough.
But why? Nokia had (and still has) one proven and successful smartphone platform, and had spent years bringing another one to maturity. It had, belatedly, unified both under one API for developers. Yet Elop judged that neither of these two high-end platforms would ever gain the developer support they would need to stay competitive.
Nokia had been watching the Symbian software as it was created, since the mid-1990s, and licensed the operating system before Symbian was even created. Symbian proved to have many advantages over the recent competition in some important areas. With its mature and well-debugged phone stacks, it is better for phone calls than any other smartphone: it drops fewer calls, the calls sound better, and it uses the antenna better. Symbian's power consumption and performance on comparable hardware are also best of class, despite the baroque middleware added over the years by Nokia. Yet Nokia's phones were considered uncompetitive in the marketplace, because new products from Apple and Android had raised the bar for ease of use, particularly for new data applications, and Nokia's user experience was awful.
The UX matters: it's the first thing potential customers see when a friend passes them their new phone in the pub. A well-designed UX is consistent, forgiving and rewarding; Nokia's user experience was inconsistent, unforgiving and hostile. Nokia's designers honed in with meticulous attention to the wrong detail. Apple's iPhoneOS UI had some unusual features – smooth graphics that played transitions at 60-frames-per-second, thanks to a dedicated graphics chip. Instead of redesigning the entire UX, Nokia acquired expensive professional-grade video cameras to determine the animation speed, and having confirmed that yes, it was 60fps, tried to recreate the transitions.
Touch input was welded onto Nokia's Symbian S60 user interface – which had originally been designed for alphanumeric keypad-based phones back in 2000 – and it was a clumsy fit. Punters expected a "direct manipulation" UI, which this plainly wasn't. Long overdue rationalisations to the confusing S60 menu hierarchy or settings weren't executed, making it very hard to do the simplest things.
Nokia showed a demo in 2007, nine months after the iPhone was announced, but before it had even landed on non-US shores. "We can do this passing fad for touch screens, too," Nokia assured developers.
But it was, at best, a stop-gap. And Nokia was still relying on this ugly mess for its "flagship" two years later. The question as to why Nokia surrendered its independence lies in why it took so long to engineer a competitive UI, and then under new management, decided that it couldn't.
I've called it the "for want of a nail" question: if Nokia had a UI, it would not have had to lose its independence. And as Nokia gave up its independence, Europe lost its last global technology platform. US and Japanese companies now dictate the market.
Now the lid is being lifted on this saga.
A great introduction comes from veteran mobile developer and co-author of a couple of technical Symbian books, Mark Wilcox. Wilcox had worked inside and outside Nokia before joining the Symbian Foundation several months after it launched. I'm surprised his account hasn't got more coverage in blogland since it was published last week. It would be the basis for a good disaster movie for techies – but one where the ending is so depressing nobody would want to watch it.
Through incredible software mismanagement, Nokia simultaneously pursued two dead ends, writes Wilcox, neither of which worked. Nokia management had belatedly realised it needed a better story to tell developers, and in early 2008 acquired Trolltech, which has a very successful and well-regarded C++ framework called Qt. Qt doesn't specify a look and feel, though, but the Trolltech had plenty of experience creating these for potential customers, and saw little point in simply recoding a legacy UI that already looked dated. Having done as they were asked, and made Symbian programmable via Qt, they set about modernising and simplifying UI development.
Design patterns were 'reverse engineered from code'
Orbit absorbed huge resources within the Nokia organisation, but was a mess from the start. Wilcox writes:
From the outside it seems there was no proper requirement spec for this new framework and the engineers were incompetent. Now by that I don't mean that they're incompetent engineers – far from it. They were incompetent at designing APIs for 3rd party developers (a very specialist engineering skill) and they were incompetent at designing UIs (which most engineers are, myself included). Unfortunately they were doing both, as evidenced by the code, and the comment of one Nokia designer at a Symbian Foundation meeting who was publicly cornered into revealing that the S^4 UI design patterns had been reverse engineered from the code.
Some Nokians refused to use it.
Orbit wasn't really portable beyond Symbian. Management didn't notice
The Linux team had been developing its own however: the framework called libdui, or Direct UI. Now there were two options.
This kind of internal competition was encouraged within Nokia, and enshrined into the "company constitution" in the 2004 restructure designed by then CEO Jorma Ollila. Perhaps taking Darwinian metaphors too literally, he hoped this would avoid the creation of a bureaucracy.
Qt was supposed to unify development for Nokia devices, so source code should only be written once. But without adequate management, Nokia's engineers had gone off and created two incompatible UI APIs. Nokia was losing this vital source compatibility.
With management unaware of the implications, Nokia continued to support the two parallel UI projects. But "both teams had built the wrong thing", as Wilcox describes it. Loyal Nokia developers couldn't believe that Nokia was making the same mistake of fragmenting its APIs once again. In 2004 it had decided to fold three of its Symbian UI APIs into one – S60 – to rationalise development, a crucial decision we'll come back to in a later article.
"And here we are, five years down the road, and Nokia is making exactly the same mistake again," wrote an exasperated Sander van der Wal, a veteran Epoc developer. "I believe that 'flabbergasted' is a better description of my emotional state than 'anxious' ;-)"
Nokia didn't seem to have a grown-up in charge. When it finally got one - Sun's Rich Green was brought in as CTO last spring - he canned Orbit. (See our report Nokia ends cruel and unusual 'Symbian programming' practices). He also canned the Linux team's DirectUI effort. And while all this pointless competition and in-fighting was going on, nobody had set about modernising the Symbian UI. Nokia's product designers were left with a UX that was still almost as bad as its predecessor.
No quick fix
Nokia wanted a "quick fix" to remove some of the worst UI niggles from Symbian, for the next release, Symbian^3. It wouldn't make it a modern-looking experience, but it would have removed some annoyances. Some things you had to tap once, others twice, for example. But Symbian^3 became delayed as more features were added. Wilcox calls it "the slowest 'quick fix' in history".
Shades of grey: Meego's Touch UI
Ironically, by the time Elop was unveiled as new CEO in September, Nokia finally had its developer story sorted out. At least on PowerPoint, if not in practice, with QML as a quick and easy way of writing applications that really do run on both Symbian and Linux, and a slick environment called Qt Quick. Nokia retains this strong team of core Qt gurus (it hived off its Qt services business, aimed at in-house developers this week). But it's all now rather moot; the platforms are "burning". Meego is a research project and Nokia (somewhat optimistically, perhaps) envisages a twilight era for Symbian during which Nokia expects shift a further 150 million devices.
You may disagree with one aspect of Wilcox's excellent account. He says the creation of the Symbian Foundation didn't add significantly to the delays. "There's a common misconception that Nokia wasted a lot of time opening the source to Symbian while Apple and Android were running away with the market. This is simply nonsense. The IP checks and configuration management changes would have taken at most a couple of weeks on average for every developer in the Symbian development organisation," he writes.
Accounts differ. The fact is, open sourcing the code required (in Wilcox's own words, from the foreword to one of his books) "disentangling third-party technology from the platform" and "sanitizing the code base", and this took two years of painstaking legal processing, by which time nobody was interested in licensing Symbian. In addition, there really was no "Symbian development organisation". The Foundation was an administrative and support unit, while Nokia had several thousand Symbian developers. So there were really huge costs to the spin-out. If nothing else, an independent Symbian (as it was from 1998 to 2008) may have been able to execute more quickly away from the shadow of Nokia's bureaucracy.
But aside from that, there can be little arguing with Wilcox's contention that management was ultimately to blame for allowing the infighting to continue for so long.
There were consequences, just when Nokia needed a coherent developer story. Developers were advised to write to the old S60 APIs - the only API guaranteed to be supported across Nokia's Symbian phones. The Ovi services and simpler applications (widgets) were written to a simpler, but cruder "web run time", or WRT. It helped to contribute to the market reaction to Nokia's 'iPhone-killer' the N97, backed with an enormous global marketing budget, in the summer of 2009. Hardware decisions giving the device insufficient memory, or an old-fashioned screen, didn't help. But with a flood of more modern and attractive Android devices arriving on the shelves, many Nokia loyalists voted with their feet.
Wilcox adds: "This was a horrific management failure in both not breaking down the technology strategy even a couple of levels to the point where everyone was on the same page and not recognising the problem and fixing it much, much sooner in the development process."
Another developer familiar with the in-fighting writes to us:
"Nokia's culture was steeped in hardware. It thought software happens magically, or in a software factory, or something like that. If all Nokia's upper managers are like that, then it is obvious that they had no clue about the implications of different UI APIs. They should have been fired for gross incompetence."
With both Linux and Symbian platforms, 80 per cent of the code did not need to change to make Nokia competitive once again. With Symbian, the code had been written over many thousands of man-years, and only the top 20 per cent (at most) needed to be refreshed. Yet Nokia couldn't deliver this. For want of a nail, the kingdom was lost. ®
Mark Wilcox's 'What Happened to Nokia Software?'