Nokia, Symbian and Accenture

nokia.gifIt has been announced that Nokia is to cut 7000 jobs and Accenture will be taking on 3000 of them. Symbian activities will be outsourced to Accenture. Accenture will also provide software services for Nokia’s future smartphones such as Windows Phone.

This is probably good news for the 3000 moving to Accenture. Accenture is the best placed to convert people from Symbian to work as consultants on any mobile platform. It’s also good for Accenture as they get some talented people but I suspect the logistics of taking on this number of people, half of which are in Finland, can’t be that simple.

It’s a loss for Nokia. They lose a huge talent pool who will eventually end up working on competitor’s platforms such as Android and iOS. It also looks like it’s a loss for large consultancies such as Digia who were used for much of Nokia’s outsourced work. For those few people who thought Nokia was keeping Symbian going as ‘insurance’ in case the Windows Phone fails, can probably now see that Nokia is serious about dropping Symbian.

UPDATE 13 May 2011: Digia to cut 190 jobs.

Mobile Web Templates and Guidelines

nokia.gifNokia have just announced that they have updated their mobile web templates that I first mentioned May last year.

The templates allow mobile web sites to be easily created that have a generic mobile look and feel. They can also be embedded in apps (read into a HTML control) but I wouldn’t recommend doing so as the look and feel won’t be much like a native app. The latest templates (v2) have been restructured for easier customisation.

While you are on Forum Nokia, also take a look at their Javascript Performance Best Practices that are also useful for anyone (not just Nokia related) using HTML5/Ajax/Javascript.

I still think there’s a general nieve belief that because authoring simple HTML is easy and readable on all platforms, it will become the de facto standard for mobile development. In practice, the templates show that there are issues with the UI. There are problems with browser fragmentation. The Nokia Javascript best practices also demonstrate coding can be tricky.

In 2007 I mentioned that we were missing the phone feature APIs needed to create HTML apps. This is still true today. As I mentioned later in that article, I believe that even when (maybe I should now say ‘if’) they become available, the complexity/differences of the APIs will percolate up to HTML to make development as difficult as native.

However, I am now starting to believe that it might be possible that future development tools will be able to abstract away some of these UI, Javascript and fragmentation complexities. It’s an opportunity for someone.

Smartphone Popularity by Country

cellularnews.gifOne factor when determining choice of platform is the target country. Market research is often global and it can be easy to miss that some platforms are much more popular in some countries. There’s a recent article at cellular news that gives some useful figures for the UK, USA, Germany, Italy, France and Australia.

For example, here in my home country, the UK, Android is now number one followed by BlackBerry and then iOS. However, one piece of advice I often give clients is to survey your current (or potential) users. You may well find that you will need to choose platforms different to those mentioned as top platforms in consumer or analyst research.

Nokia Plan B

nokia.gifAfter assimilating Nokia’s announcements and reading others’ thoughts I still think Nokia have made a very bad decision. Despite many people saying it’s a coup for Microsoft, I am not convinced. I believe there’s a large longer-term risk that existing WP7 OEMs will abandon WP7 leading to WP7 becoming a Nokia-only OS. Nokia and Microsoft would then be in the same situation as happened with Symbian and Nokia leading to a tug of war over OS capabilities and the UI.

In the back of my mind I have been wondering how Nokia can make such an evidently poor decision and get away with it. Surely one or more of employees, shareholders, suppliers or customers would revolt in some way?

Well, it seems to have started. There’s a new group of young shareholders who want to challenge Nokia’s new strategy.

UPDATE: Plan B give up due to lack of support from institutional investors.

UPDATE: Plan B was apparently a hoax. Don’t know what to believe now as it could be the nine young shareholders were employees and now they want to cover their backs.

Thoughts On Nokia/Microsoft Announcement

nokia.gifWell, Nokia made their announcement that they are going to use Windows Phone 7 as their "principal smartphone strategy". They will "bring Windows Phone to a larger range of price points" tends to suggest that Symbian and MeeGo will be phased out over time. I am surprised because I don’t believe this is the correct decision for Nokia.

So how will it work? It looks like Nokia WP7 phones will retain the WP7 UI (look and feel) and Nokia will innovate on top. I suspect Nokia will end up having little differentiation and I can’t see why people might buy a Nokia phone instead of say a HTC or LG phone.

We have been told that "Bing will power Nokia’s search services across Nokia devices". Unfortunately, many people don’t want Microsoft’s services. In fact, when I show people the WP7 phone I have for development (a HTC Trophy) they tend to complain that is that it is too closely tied to Microsoft services.

So what about developers? We are told that "Microsoft development tools will be used to create applications to run on Nokia Windows Phones". If Symbian and MeeGo are being phased out in preference to the WP7 "principal smartphone strategy" then the past announcement of Qt (Quick and QML) being the primary development platform is no longer true. Developers such as myself will see Symbian, MeeGo and Qt as effectively deprecated.
 
I believe MeeGo and Qt were massive diversions for Nokia. I believe this use of WP7 is an even greater diversion and probably a fatal one. I think the real problem has centred around the UI. As I have mentioned previously, all Symbian needed was something more friendly (e.g. dev libraries and UI) on top of Symbian. It could then have been used for both mid-range and high end. In fact, this is what WP7 is – a new UI on top of Windows CE. Nokia could have done the same thing (but much better) on top of Symbian (or MeeGo).

I think Nokia are heading off in the wrong direction again. In WP7, they are partnering with a less capable phone platform (than Symbian). WP7 has already proven to have poorer than expected consumer appeal.

I believe the net result of all of this will be to make Android stronger. The longer term loss of Symbian and MeeGo together with what I believe will be moderate rather than stellar sales of resultant Nokia/Microsoft devices will mean that the gap will be filled by Android devices.

I am tracking this topic as it seems, to me, so obviously a bad decision for Nokia…

UPDATE: Forum Nokia have a letter to developers that I see as a poor attempt to prevent an immediate mass migration away from Nokia’s existing developer platforms. Nokia obviously has many products in the pipeline and there’s a risk that developers, operators and maybe even end users might now see these as already obsolete.

UPDATE: The Joint Microsoft/Nokia Webcast Press Conference confirms Symbian will be phased out and smartphones transitioned to WP7. MeeGo will ship this year but will be an experimental platform for Nokia to explore next gen devices.

UPDATE: Nokia share price loses 14.22% in one day. Nokia employees walkout (Google translation). FT : "Nokia’s refusal to cut back its spending on research and development was a contributor to the fall in its shares on Friday."

UPDATE: Qt developers no longer trust Nokia (read comments).

UPDATE: Ovum blog: "All of the current Windows Phone hardware partners also have Android handsets and have made significant investments in the platform, and so a move like this could lead them to abandon the Microsoft platform in favor of Google’s." I believe this is a strong possibility and if it happens then many existing WP7 developers might abandon WP7 through distrust of or disbelief in Nokia and Microsoft.

UPDATE: On businesses working together: BBC: "Incredibly difficult to create a single enterprise with ruthless purpose when two giant businesses, with strong, proud respective cultures, decide to collaborate as equals". The Register"Yet, Nokia has no experience of Windows Phone 7" and "Nokia might actually be forced to rely on Microsoft, a company with comparatively little experience in handset engineering"

UPDATE: Nokia to get Billions from Microsoft. I am not sure this is correct. If you read the MWC evening it’s "Billions of value". However, "Microsoft is contributing to Nokia substantial monetary value towards Nokia" so there is some money involved.

UPDATE May 2011: Nokia announces revised (unknown) outlook. Share price down 17% in one day. 42% over year.

UPDATE June 2011: Nokia CTO leaves allegedly over strategy disagreements.

UPDATE August 2011: Symbian Belle and MeeGo were probably good enough.

UPDATE September 2011: Decline of Nokia not offset by others.

UPDATE November 2011: Lumia is not yet the messiah Nokia needs.

UPDATE January 2012: Nokia sells “well over” 1m Windows Phones, still makes €1bn loss

UPDATE March 2012: Windows Phone struggles to break catch-22 as app makers hold off 

UPDATE April 2012: Hundreds of Nokia’s outsourced Symbian developers leaving Accenture 

UPDATE April 2012: Nokia U.S. Future at Risk as AT&T Sales Seen Below Million 

UPDATE April 2012: Nokia To Offer Software Fix, $100 Credit In Wake Of Lumia 900 Data Woes

UPDATE April 2012: Nokia Lowers Devices & Services First Quarter 2012 Outlook and Provides Second Quarter 2012 Outlook

UPDATE April 2012: Nokia’s Windows Phone Strategy is on the Brink of Failure

UPDATE April 2012: Moody’s downgrades struggling Nokia’s debt rating due to sharp fall in sales, lower revenue

UPDATE April 2012: European carriers take shots at Nokia’s Lumia line without leaving cover

UPDATE April 2012: Nokia shares downgraded to junk status

UPDATE June 2012: Nokia job cuts may hasten, not stop, death spiral 

Nokia Qt Insights

qt.gifI have been continuing to try to get the latest Qt tools working and have learnt a few things that should have been made clearer by Nokia. I have spent a considerable amount of time trying to get the Mobility 1.1 APIs working under emulation. I have tried on Windows, Ubuntu and have even tried updating the Nokia Qt SDK with the latest libraries.

Here’s what I have learnt…

  • You should really only be downloading stuff from the Qt web pages at Forum Nokia. The Nokia Qt SDK 1.0 contains sets of Qt libraries and SDKs that have been tested to work together.
  • Conversely, if you download anything from qt.nokia.com  you will be downloading components that haven’t necessarily been tested to work with other components. For example, the latest released mobility APIs don’t compile (without a huge amount of fixing) on Windows or Ubuntu and won’t work with the Nokia supplied version of Qt Creator.
  • If you try mixing and matching components you most likely get into difficulties. I have experienced that you also won’t get any help from the Forum Nokia or Qt developer forums because you are ‘on your own’ and outside the realms of a fully tested environment.
  • As regards the Mobility 1.1 APIs/Qt 4.7.1, all I managed to get working with the current Nokia Qt SDK 1.0 was a Symbian target build but the resultant configuration wasn’t for the faint hearted.

The consequence of this is that…

  • The current released Mobility 1.1 APIs and Qt 4.7.1 aren’t usable at the moment for current development because they haven’t been integrated into the Forum Nokia supplied Nokia Qt SDK that currently uses 1.0.2 and 4.6.3 respectively.
  • Qt Quick and qml are based on Qt 4.7.1 so also aren’t usable at the moment for current development. In fact if you look in the current Nokia Qt 1.0 SDK the Demo Declarative samples aren’t runnable yet.

In summary, for current commercial development (and sanity), stay away from qt.nokia.com and stick with downloads from Qt web pages at Forum Nokia… and wait for released components on the former to become available on the latter.

As Marina, on the Qt forums says…

"I tried install Qt Framework 4.7.1, Qt Mobility 1.1.0 and Qt Creator several times. Making everything to work together is mission impossible. I can’t run examples, the worst thing is that to figure out what everything need to be installed you have to google whole day and when you think “ok, everything is ready now”, it is not. Every time some stupid error is shown in compile output. I just don’t understand why people from Nokia allow release of semi-product. If Nokia Qt SDK is not ready, i also don’t understand why doesn’t exist link with described installation steps, for example : 1) Install Perl (download link is here) . You have to do this and this, bla bla 2) Install Qt Framework 4.7.1 (link is here) 3) Install Qt Mobility (link for download is here) following these instructions"

Nokia releasing components on qt.nokia.com is great for PR but it’s no good if they aren’t easily usable. To avoid confusion and frustration, it might be better if Nokia kep’t them back until the respective Nokia Qt SDK is available.

Nokia Qt Quick, QML and Mobility 1.1

qt.gifFollowing Nokia’s announcement that the future of all Symbian and MeeGo development will/should be based on Qt, Qt Quick and QML, I have been evaluating Qt Quick, QML and the latest mobility APIs for use on a client project I will be working on very soon.

Previously when creating Qt UIs, you had to either use Qt QWidgets or build your screens on top of QGraphicsView. QWidgets are the lowest common denominator in Qt in that they work on all Qt platforms (Windows, Linux, Mac, Symbian, MeeGo). However, the user experience is very poor, especially on touchscreen phones. You don’t get the phone’s underlying look and feel and hence this method of development isn’t really acceptable for today’s applications.

QGraphicsView is newer and allows use of things such as transitions and animations. You still have to build your own controls (buttons, lists, edit boxes etc) on top of QGraphicsView and for this reason it can take a lot of effort to create an app. Orange Wednesdays is an app that was produced this way.

The very latest option being promoted by Nokia is to use Qt Quick and QML. This is built on top of QGraphicsView and allows for declarative (textual) based descriptions of screens. It’s possible (yet slightly convoluted) to communicate back and forth with Qt (c++) for times when you need to do more than QML provides. The latest Mobility APIs (1.1) also expose bindings that allow QML to access phone-specific features. However, Qt Quick and QML are still work at a lower UI level than many developers might expect. For example, you have to deal with things like rectangles and regions as opposed to buttons and text boxes. There’s a project to create higher level Qt Components but they aren’t suitable for commercial use at the moment.

Unfortunately, I haven’t, as yet, got the latest Mobility APIs (v1.1) working under emulation. They are supplied in source form and you have to first build them. I didn’t get that far and instead ended up with an error:

c:\qt-mobility-opensource-src-1.1.0\src\mobilitysimulator\mobilityconnection_p.h(50) : fatal error C1083: Cannot open include file:
‘private/qsimulatordata_p.h’: No such file or directory

I question why developers have to compile these APIs at all. Why can’t they be pre-built and included (and upgraded) via Qt Creator?

While Nokia’s Qt developer story, as told by Nokia executives, might seem ok at a high level, when you dig deeper there are some big issues for people wanting to develop now. The Qt tools have been a ‘work in progress’ for a long time now and it’s not possible to create applications with the ease provided by other platforms’ (or even Symbian Carbide) tools.

The End of Orbit and MeeGo Touch Nokia UIs

nokia.gifNokia’s developer-related press release yesterday was mainly about solely using Qt going forward to develop for Symbian and MeeGo. This applies both internally at Nokia and to 3rd party developers. In the future, the built-in phone applications will be written using Qt itself.

However, having read a post by Gorkem Ercan (who works at Nokia on the Java platform), I think Nokia’s changes are as much about UIs as they are about tools and operating systems.

First, lets look at what we have previously been told. Symbian^4 was to have a new UI called "UI Extensions for Mobile", previously codenamed "Orbit". This is the new UI to match (or beat?) that provided by the iPhone and Android. The new UI (pdf) was built using Qt and looks something like this…

nokiaorbit.gif

One problem with the UI was that it was going to totally supersede the S60 Avkon UI Framework thus making all past 3rd party applications incompatible. This sort of made sense because you don’t want both old and new style UI apps running in the same phone – it would look a complete mess.

At the same time, Nokia was working on a new UI for MeeGo called MeeGo Touch. Again, this was created on to of Qt. The developer guidelines show it looking something like this…

meegotouch.gif

Referring to Gorkem’s post we are told that "Orbit UI and its sister MeeGo touch now vanishes and Qt and the new Qt Quick becomes the main developer focus for Nokia’s internal and external developers."

As Gorkem puts it these UIs "did not provide a superior solution to a technical problem". In other words, they were not good enough. This has serious implications. It also explains why MeeGo has been delayed.

So what’s the future for Nokia’s UIs? Here are some observations and thoughts.

  • The previous Orbit and MeeGo Touch efforts were too separate. Although Nokia proclaim the benefits of cross-platform development using Qt, the UI part would have used different libraries for Symbian and MeeGo. As a third party developer (or even a developer at Nokia), this isn’t what I want if I need to move my app between the platforms.
  • The example images above are surprisingly similar. Any re-worked Symbian/MeeGo UIs might also be similar. If they are, why can’t they use the same developer API but display (adapt) differently on the different devices/OS platforms?
  • Taking this further, a more radical approach might be to have the same UI on Symbian and MeeGo. Nokia has proven it’s difficult for them to create just one great UI so why double the problems (and costs)?

Many Nokia N8 users are celebrating that they were told yesterday that their Symbian^3 devices will be getting incremental improvements that will take them to what would have been Symbian^4. I currently don’t see how this can happen technically without allowing both new and old UIs to co-exist on the same phone (which is messy) or breaking support for older (Symbian) apps. I suspect it will be the latter now that Symbian won’t be a development option. I suspect the compatibility promise will be just for apps developed with Qt.

Update: After I wrote this, Gorkem updated his post to say… "The good folks on Forum Nokia has informed me about MeeGo touch. Appearently, MeeGo touch is not going away immediately in Harmattan, however it is not the recommended UI toolkit.". I am not sure this changes much. "not going away immediately" and "not the recommended" seems to imply it will eventually disappear.