Platform strategy failure modes

Retweet Share on Facebook

I’m struck by the following comment from Tim Howes in response to my previous blog about the relation  between Symbian and Maemo:

What I don’t understand is when Nokia fund the development thrice over (in a poor economic climate too) of detailed code to yield technology that is hard to get right: example Bluetooth. Bluetooth is hard to get right because of its peer-peer application level interoperability.

The Symbian version of this technology has shipped in vast numbers and has “hardened” as a consequence. Should not Nokia be investing effort to port that over to Maemo rather than fund developers to do it all over again?

Can the insurance plan be componentised like good software? Can good software be re-used in different architectures – if it’s good enough for the applications (Qt, PIPS based apps), why isn’t it good enough for “sysem” components?

The question brings to mind some important failure modes in the strategies a device manufacturer (or other mobile industry player) can adopt towards mobile software platforms.

The first failure mode is when a device manufacturer fails to have a strategy towards mobile software platforms.  In this case, the adage holds true that a failure to strategise is a strategy to fail.  A device manufacturer that simply “follows the wind” – picking platform P1 for device D1 because customer C1 expressed a preference for P1, picking platform P2 for device D2 because customer C2 expressed a preference for P2, etc – is going to find that the effort of interacting successfully with all these different platforms far exceeds their expectations.  Mobile software platforms require substantial investment from manufacturers, before the manufacturer can reap commercial rewards from these platforms.  (Getting a device ready to demo is one thing.  That can be relatively easy.  Getting a device approved to ship onto real networks – a device that is sufficiently differentiated to stand out from a crowd of lookalike devices – can take a lot longer.)

The second failure mode is similar to the first one.  It’s when a device manufacturer spreads itself  too thinly across multiple platforms.  In the previous case, the manufacturer ended up working with multiple platforms, without consciously planning that outcome.  In this case, the manufacturer knows what they are doing.  They reason to themselves as follows:

  • We are a highly competent company;
  • We can manage to work with (say) three significant mobile software platforms;
  • Other companies couldn’t cope with this diversification, but we are different.

But the outcome is the same as the previous case, even though different thinking gets the manufacturer into that predicament.  The root failure is, again, a failure to appreciate the scale and complexity of mobile software platforms.  These platforms can deliver tremendous value, but require significant ongoing skill and investment to yield that kind of result.

The third failure mode is the one I want to highlight in this posting.  It’s when a manufacturer seeks re-use across several different mobile software platforms.  The idea is that components (whether at the application or system level) are developed in a platform-agnostic way, so they can fit into each platform equally well.

To be clear, this is a fine goal.  Done right, there are big dividends.  But my observation is that this strategy is hard to get right.  The strategy typically involves some kind of additional “platform independent layer”, that isolates the software in the component from the particular programming interfaces of the underlying platform.  However, this additional layer often introduces its own complications:

  • It can decrease run-time efficiency: there are more levels of translation involved, and (in some cases) more intermediate copies of data;
  • It can obscure the full set of interfaces provided by the more powerful platforms;
  • It takes considerable effort to maintain it – effort that would arguably be better deployed to create differentiation in the actual devices.

In other words, these intermediate layers often turn out harder than expected.  They consume more resources than expected – more system resources at runtime, and more human resources to create them and maintain them.  And they distract the manufacturer from focussing on its own unique value-add.

Of course, there’s a recurring theme here.  The theme is that platform software is hard.  It’s hard to create platform software in the first place.  It takes time to learn how to take best advantage of any particular platform software.  And it’s hard to create intermediate platforms.

That’s why it’s important for the industry to pool resources in the creation of first-class mobile software platforms.  Rather than manufacturers deploying lots of resources at platform level software, only to end up with devices that look very similar to the crowd, they should deploy these resources on unique differentiators – such as compelling consumer experience, unique services, attractive design themes, and breakthrough device form factors and usage models.

Posted: May 24, 2009 at 9:54 am

Last updated: February 15, 2010 at 9:23 pm

Categories: Dialogue, Tech Themes

Short Link: http://wp.me/pqgpU-he