Yesterday evening I joined a panel of 'thinkers' at a session of Mobile Monday London, hosted at Microsoft's Victoria offices in London.
Chaired by Marek Pawlowski of MEX (the strategy forum for user experience), the session was entitled "Living in a Multi-platform World" and explored the challenges of developing for the much more fragmented world of mobile operating systems and hardware.
I was joined by fellow panellists Oded Ran from Microsoft's Windows Mobile 7 team, Tom Hume who is MD of Future Platforms, Jerry Ennis who is the CEO at the social networking site Flirtomatic, and Ilio Uvarov, leader of user experience practice at RG/A London.
The sixty-strong audience of Mobile Monday were mostly 3rd-party mobile developers, or small companies running on venture seed capital aiming to implement their good ideas in the mobile market.
Excellent and detailed notes from the session are available at this entry in Adam Cohen-Roses's "Expanding Horizons" blog.
What intrigued me was the challenge that many developers were experiencing as they had to build their skills for such a fragmented mobile landscape. For example, if you develop a successful iPhone app and wish to port it to, say, Android, you have to learn a whole new programming language and work with a different development environment. Consider Blackberry and you have a third language and development toolset. Microsoft and Nokia, fourth, fifth and so on.
Several member of the audience were looking for 'something' that would make the transition easier; that allowed them to stop feeling that they were starting from scratch each time they made the decision to target a different handset.
I had unwelcome news for them.
My experience of mobile development is that the most successful mobile applications:
1) Fulfil a strong need,
2) Are reliable and can be trusted to do their job,
3) Use design to create an engaging, even immersive experience.
So the bad news I gave the assembled audience is that, if they try and short cut the process of creating a reliable, engaging app that fulfils the customer's need on their phone, then they end up with a mediocre offering and little success.
I've seen 'mediocre' over they years so many times with Java applications - remember their 'write once use everywhere' philosophy? The result was uninspiring and unremarkable applications that could use only the lowest-common-denominator facilities across the 'everywhere' world. Java has found its greatest strength when the applications built using it are hidden as server services or utility applets. Glamorous they ain't.
The mobile phone world is the exact opposite: It demands a great experience for each make and model of handset. That's despite the variation of capabilities, CPU power, screen resolution, colours, aspect ratio, touch/non-touch ability, buttons and more.
If there is one element you may be able to port, its your set of excellent user-interface designs - and even then you will have to have variants to fit the various screen sizes and shapes, and whether the 'phone uses buttons or touch.
The unfortunate lesson is that, unless you can target a group of handsets - and deliver the best experience tailored experience for each one of these handsets - then don't bother at all.
Let's make that positive: If you make the time to deliver a best-of-breed experience for every particular handset you target, your application will be savoured by its users because you have made them feel special through a great experience. You may even have validated their choice of handset because your app works so well and looks so good on it.
Competitor apps may do more but yours can also be successful if it does less, better (comma important).
Believe me, customers who experience fantastic design and a great implementation on their mobile will reward you with commitment and loyalty. That's a prize worth the pain of starting from scratch each time.