Cross-Platform Development and Bias

Published: by

Steven Sinofsky, the formed head of Windows for Microsoft, had a long blog post yesterday discussing the dynamics of developing for multiple platforms - in his context iOS, Android and some smaller contenders (e.g. Windows Phone) - and how over time it becomes more and more difficult. He contends that initially, platforms tend to be similar, as they are trying to solve very similar problems, and their early, or "immature", solutions are similar. iOS may have been far more polished in its early days than Android, but Android's rate of improvement was far in excess of iOS', until some form of interface parity was reached and both move ahead at similar space. In the "immature" (i.e. similar phase), it is easier to pick one to go with first, and assume the second one will follow shortly thereafter with minimal additional work. However, since each platform wants to distinguish itself, they are likely to diverge over time, in features as well as in style and interface. This creates a dilemma for application developers who have to invest significant resources in making their application fit each platform separately. If you want your application to be successful on a given platform, it has to work well and suit the "style" and "feel" of that platform. As resource demands to be successful on each platform increase, the necessity of deciding which platform comes first becomes more important.

As anyone who has ever managed a development project knows, the platform or feature set that comes "next" may just as well never come, as other priorities get in the way. Committing to iOS now and Android next year (or vice versa), is subtly (or not so subtly) treated as "iOS now and Android when we reach the Wizard of Oz." Sometimes, compelling business reasons eventually make the second platform come on board; Facebook and Twitter are certainly big enough to warrant the investment in both. But your first selection has a high potential of being your only selection for several years to come.

A client of mine once built an iOS prototype and an Android prototype. The Android prototype was clearly far inferior to the iOS prototype, and indeed, the iOS prototype eventually evolved to an actual beta in customer hands; I never saw a single customer with the Android beta.

This raises the critical question: how do you decide which comes first? As Sinofsky points out, platform creators and app developers really do want to be rational. Whether they are more interested in market share or revenue as their near-term goal, they target whichever platform has the customer base most likely to allow them to achieve those goals. The problem, then, is how you determine which is best. Sinofsky only mentions it as a small point, but it is crucial in my mind: you will be biased. If you have a preponderance of iOS developers in house, or a VP R&D who was successful in Android in his last job, you will be biased towards that platform.

In truth, there is nothing wrong with taking into account your inherent skill set. One of the most common simple strategic analysis frameworks is the 3Cs: Company Customer Competition. You actually should take into account what your company is capable of and most skilled at in deciding your strategy. But it is important to take that into account rationally.

Put in other terms, it is perfectly acceptable to go Android because your VP Engineering has solid background and connections in the Android world, since that will facilitate your creation and deployment of an Android app. But its entire value is that facilitation, while your job is market success. If your market is better served by iOS, then you must weigh the two - Company vs Customer - and, yes, Competitor (what if there is heavy competition in iOS for a somewhat larger market, but a decent-sized market with completely unmet demand on Android?), in determining which comes first.

There are only two ways that I know of to counter-balance bias, and both must be in place:

  • Recognize your bias, by taking it into account, and:
  • Neutralize your bias, by making sure at least one person on the deciding team is neutral, with no vested interest.

Let's be honest: no one in the world is ever 100% unbiased about anything. But at least one person who is not emotionally and historically vested in one direction or another, while understanding how to make these strategic decisions, will dramatically improve your odds of success.