ReBuildAll Blog
Thoughts (mostly) on .NET development

Nokia and Windows Phone   (Mobile)   
This article will discuss my opinion on Nokia and Windows Phone. If someone reading it notices that I got my facts wrong, please do correct me :-)

Updates to this article appended to the end.

A Hungarian proverb

There is a Hungarian proverb that translates roughly like so: one of my eyes if crying, the other is laughing. It refers to some kind of thing which is both good and bad for a person. And that is what I feel when I think about Nokia and Windows Phone adoption.

Crying? I am just not reassured, that Windows Phone will be so great for Nokia. This feeling might be caused by my previous clash with the Windows Mobile platform (pre-Windows Phone 7), that you can read about here. This obviously does not apply to Windows Phone 7 (or at least not entirely), but I can't help my bad feelings. There are some features of Symbian (we will get into this later) that are missing from WP7 (and also from iPhone or Android).

I will admit I never used a WP7 phone for more than a short time in a shop or lending it from a friend to try things out. I have also done some research (reading about it, reading phones manuals). My opinion is based on these facts. But I still have that same feeling which I had with Windows Mobile previously: that you are not in control. The phone (or Microsoft) does certain decisions on how you should use your mobile phone, and the restraints just make me more angry :) I know many would recommend Android to me based on these facts. Maybe. :) (I will also admit at this point, that some features I critisize here might already be available on Android, or might be available via separate apps, etc. My Android information is dated :))

Laughing? So why would I be happy about this move of Nokia? I have been developing in .NET since 2004, both professionally and for a hobby. I really really like the platform, and Microsoft's strategy to have the same programming APIs across a wide range of devices is just really tempting. I do not need new tools or new skills for that matter (as I have programmed Silverlight for example), I can just hop in and start coding Windows Phone 7 (I have written some apps in the emulator already). And I can soon run it on a Nokia, which sounds pretty interesting.


Profiles and groups - are features dying?

Wow, Windows Phone 7.5 Mango now supports grouping your users. That is awesome. Nokia phones did it 10 years ago, and in my opinion better too. In Mango groups serve only to be able to view a group of users together (their socials updates, etc) and to communicate with them. Granted, groups might not be integrated into the social aspects of newer Nokia phones, but what about basic "PHONE" settings? Like setting a ringtone for a group? Like selecting which groups will alert you (ring) in a given profile?

... Oh wait ...

Windows Phone does not have profiles? Well it sure seems so. Set a ringtone. Check. You can have it on silent. Check. You can have it on vibrate. Check. You can't use vibrate and silent at the same time. What?

If I want to have silent available, I have to TURN OFF Vibrate in settings? To have vibrate on again, need to set settings again. Otherwise, the volume down button will put you into either SILENT or VIBRATE. Frankly, that seems just stupid. And I wonder if anyone who wrote this part of Windows Phone has ever seen how Nokia does profiles? (yes, I doubt the person has seen that feature in action).

My only hope is, that Nokia will port these missing features from Symbian into their Windows Phone offering. That would give them a huge edge over other Windows Phone manufacturers too - at least for some time, as they have to contribute those changes back into WP7. But that would just make WP7 better. However, I am afraid this porting over features will not happen - but who knows?

And do not even get me started on things like "who needs profiles?" and "people do not use their phones to make phone calls anymore", because those things are just stupid.

To sum up this section, I think that Symbian offered a lot of control over your settings and a lot of settings to choose from and customize, how your phone works. Loosing these things in the transition to Windows Phone would be unacceptable to me, but we will have to see what the good guys in Nokia think about this. Granted, the settings were not logically organized and often hard to find, but they were still there. I dislike the "we know better than the user" design philosophy, which is visible in both Windows and Windows Phone.

If features from Symbian end up missing from the WP7 Nokias, that is just a downgrade, plain and simple.


Why Software Sucks?

But why does Nokias software suck?

As a side note, there is an excellent book called Why Software Sucks? I do recommend anyone involved in software development to read it :)

But back to Nokia. Why doesn't Symbian work so well? I would think this is because the systems core is ancient (at least by computing standards) and building on a not so solid foundation is just not that easy. But Nokia has some capable people, and you can see the results by looking at the N9 and MeeGo. You have to wonder where Nokia kept that software talent all these years, because that thing really works well. Also note, that my criticism is only for the software side of Nokia phones. Their hardware is really something to admire, especially recently. I just wished their software would been on par with the hardware they make.

Nokia handled some things concerning their software badly. The software development speed, update cycles and software philosophy left a lot to be desired. I have seen it many times, that old phones just do not get all the nice updates new phones have gotten. This is now changing. In the Elop world, Symbian^3 devices get all the updates that newer phones come out with. Sweet. I hated that you need a new phone every 6 months to get the new features. It seems now all manufacturers are updating - more or less - old models with new software. It might seem like loosing money, but it is building up customer satisfaction. Besides, people often get locked into contracts, and cannot upgrade their phone so often. By releasing new software for new phones only, you just make those people angry.

The software updates with Nokia are coming SO SLOOOOW. There are bugs to fix, applications to update, and the updates are just coming very slow. When Symbian Anna finally arrived in the summer, it arrived one operator, one phonemodel at a time, and many months later than promised. I have been reading Nokia forums and found out, that they need to test every variant of the software. Presumably by hand. And there are variants for different color versions of the phone. Yes. You read that correct.

I see Nokia wasting money here. Money and time. And by that, customer satisfaction.

Building packages for all phone models, variants and operators SHOULD BE automatic. These variants then SHOULD BE tested automatically. I would have expected that a company like Nokia can press a button at night, and in the morning see if everything went ok, without a single person being involved in the software testing process. All packages should be built and packaged automatically and then tested, also automatically. Judging from the speed they do things, it is just not how things progress. (The reality of testing mobile phone software might be more complex than what I described above, but still it should be more easier than it seems to be now.)

Because the update process is such a big pain, of course they will not want to do it too often, so what we get is updates coming really slowly.


A new software platform again?

It was in the news that Nokia is making a cheap, simple, Linux based platform that it wants to put on the cheaper phones. And you know, this has me wondering. Why oh why do we need ANOTHER PLATFORM? You already have MeeGo, don't you? Instead of thinking about adopting that for cheaper phones, you go ahead and start developing something new again? Excuse my language, but that does seem like bloody stupid to me.

The whole technology industry is about product lines.

Take hardware. Intel processors. If in the production some processors do not qualify high enough, they have some features disabled and labeled cheaper/lower end models. Intel is even selling processors where you can unlock faster speeds AFTER you bought it by paying for an unlock code. I do think that practice is disgusting, but it does point out one key thing. They do not design and manufacture as many processor types are they sell. They simply lock out features of high end models to make them low end. Same goes for graphics cores.

Take software. You create a nice little program with a lot of feautes. Name it the Enterprise version. You lock some features down, that is your Professional version. You take away more features, Home version. And heck, make even a free Express version too. You can see it all over the place. Microsoft does it with Windows, and most independent software vendors do it too. It is much easier to lock certain things down than to create entire new versions. No one really thinks Windows Home Premium is a complete rewrite of Windows Ultimate, with certain things left out?

Why does not a company like Nokia go this way? Why make something new, when looking at the N9, you already have a very mature and good operating system. Use that. Lock things down, but use that.

The same argument goes for the now dying S40 platform. I never quite understood why you need a different platform.

There might be certain hardware restrictions to work with - like cheaper models not getting so strong hardware - but I will argue that having a single codebase is still cheaper than multiple code bases. Cheaper to make, cheaper to maintain and test.


A mistake?

I will go as far as to saying Nokia's decision to adopt Windows Phone seems like a mistake to me. Looking what Nokia has available today, it is very clear that these things have been in the making when they decided to go the Windows Phone 7 way. These offerings available now seem to me that these might have been the solution to their problem, and not adopting Windows Phone 7. Frankly, it makes you wonder about all the theories concerning why Elop chose his former employer's mobile platform.

I will explain.

Nokia now has MeeGo ready. N9 has appeared in stores. If there would be no Windows Phone 7 in the making, MeeGo devices could now appear one after the other. Read the reviews of the N9 over the internet. Praises. The user interface is compared to the iPhone, the user experience is said to be great. And some people are sad because it is not available in their country. The reaction would have been the same without Windows Phone 7. In fact, it would be even much much better, because everyone could look forward to improvements to the MeeGo platform and new devices. Not today.

On the development side, S^3 and MeeGo can be both targeted using the same development tools (Nokia Qt). So developers really do not need a lot of effort to transition. The development tools BTW also came a HUUUGE way forward, they are easy to install, maintain and use. Ovi Store is available today with lots of apps.

So right there, you already have a complete mobile platform and ecosystem available. But Nokia had to destroy it all. I do not believe for a second that four mobile ecosystems would have been too much.

Of course MeeGo cannot work in its current form, because both platforms (S^3 and MeeGo) are essentially dead ends. Current developers will work with them, but I really doubt anyone new will invest lots of time and money in training new developers for these platforms.

So, instead of the already ready and fine working MeeGo, we get Windows Phone 7 Nokia phones, that will maybe work OK, but will certainly need time to fine tune and get used to. I cannot even imagine when Nokia will be able to make a phone like the N8, with all those multimedia features: photo picture quality, video editing features, etc. As far as I know, WP7 does not have video editing?

Frankly I did not see the driving reason behind WP7 adoption back in the beginning of the year, and I see it even less now. I think Nokia threw away a tremendous opportunity by choosing Windows Phone 7, and I really doubt they can climb up to top spot again. Very sad actually.

I can really understand the comments by former Nokia chief Anssi Vanjoki who also said Windows Phone 7 was not needed by Nokia. If you understand Finnish, read his comments here.

Update 22.10.2011: Engadget just reviewed the N9, coming to similar conclusions: it is just a shame Nokia killed of MeeGo.


Windows 8 first impressions   (Windows)   
I gave Windows 8 a try the other day. While I have not clocked a lot of usage time with it, here are my first impressions.

Login

I liked that I can use my Live id to login, and that it will synchronize my user settings around computers. I like it expecially since at home I have multiple computers, but no domain. With an Active Directory domain you can accomplish about the same (roaming profiles), but until now it was not possible with normals accounts. At least without some custom applications. At least Chrome synchs browser settings (even themes and extensions), so in our web centric world today, that makes it really easier to use many computers. And with W8, this might be even better :-)

I noticed that it does create a local user account even when using Live. It somehow links this local account to your Live ID. I would love to know more about how this integration technically works. Background information anyone? :-)

Start Screen

There is a new Start Screen in Windows 8. There are actually several articles from Microsoft that address the Start Screen, one of the latest being:

Designing the Start Screen

The article explains that study shows, people are moving away from the start menu. People are pinning programs directly to the task bar and launching them from there. This is very true, and I can say that I have been moving in this direction myself. The most frequently used programs are on the task bar. The less frequently used programs are pinned to my Start Menu. And the rest is possibly listed in the recently used portion of my Start menu. And if I still do not find something, I just use Search (press Windows button on keyboard and start typing). It is very very rare for me to venture into the Start Menus. So probably this research does tell the truth and people are indeed using the Start Menu less often.

Ok, so Microsoft now replaces the Start Menu with the Start Screen, which is a sort of dashboard, will all applications on it, live tiles with information, etc.

Continuing the previous use case of rarely used programs: I do have to point out however, that on those rare occasions, it is very easy to find the program I am looking for in the Start Menu. Because if I need something Visual Studio related, I look in that folder of Start Menu. If I need something Office related, I look in Microsoft Office folder. The new Start Screen just lists everything it finds in the Start Menu. So now with this new Screen on the rare occasion I need something thats name I do not remember (cannot search), it actually makes it HARDER to find it, because everything is in one big messy pile of icons. Yes, I can customize the Start Screen, but we are talking about rarely used stuff, why would I want to customize that, when it is already in neat folders in my Start Menu?

It covers the whole screen

But the new Start Screen in Windows 8 has several more disadvantages. As others have pointed out, it COVERS THE WHOLE SCREEN. So I do not see at a glance, what I have already running, and what is not running on the computer. As soon as I launch into the Start Screen, the task bar is hidden. This full screen operation mode does not suit desktops in my opinion. It might suit tablets, but definitely not the desktop.

The article also mentions, that you can still use Win+1 or Win+2 to launch programs from the task bar. That is great, except wait, I cannot see my task bar from the Start Screen. And when I cannot see it, I also cannot use those shortcuts! (well until I visit the desktop at least once, which is not trivial task either)

To make matters worse, not even the mouse works until you CLICK on the Start Screen, which is already visible (BUG?). You cannot close the Start Screen and see your desktop until you start something. After that, even if you exit that, you can use ESCAPE to go back to Desktop or press the Windows button. (again, BUG?)

Notifications

Next, Microsoft says that the new Start Screen brings together notifications, which were poorly implemented in the taskbar popups and notification tray icons in previous versions of Windows. The start screen connects you to apps, it shows news, RSS feeds, weather, and so on.

Now this is very nice, but guess what, when I am using my computer, I do not spend time on the Start Screen. I spend time in Visual Studio, in Word, in Photoshop, in my browser or in Outlook (or another application). There might be more application windows visible on my desktop side by side, maybe even on multiple monitors. Those notification that popup on the screen or from the task bar / notification tray are a way to get my attention. I am not going to check back to the Start Screen to see if anything new has happened. I am not going to sit around the Start Screen waiting for emails or facebook messages. I will be spending time in Visual Studio or in Word or in whatever application I am using, and when that notification icon appears in the task bar icon of Outlook I am going to switch over there and check the mail. And I am not going to go through a Start Screen.

A Start Screen is a good point to START things, but during work or operation, it is not something I want to use, at least not in its current form. Now when it pops up fullscreen, it just obscures everything and gets in the way of getting things done.

While I criticize how it works now, I do see the need and use of a centralized hub of information, where you can check out notifications all at once, check if new news came in, check if there are new bugs, check if there are new messages, chat messages, emails, status updates on Facebook, etc. But I would want that to be less disruptive than launching into the Start Screen. Besides, if I need to switch over to the Start Screen to check for notifications, it just beats the whole purpose of notifications in the first place.

The keyboard experience, searching

It is not all bad - but I will say it definitely needs fine tuning for the desktop use. And it needs tuning to be used with the keyboard.

I am a big fan of using Windows with the keyboard, and I was very satisfied by how Windows 7 improved the keyboard only experience of using the operating system. With the Windows 7 Start Menu, I can push the Start button on the keyboard, start typing (into search), use arrows to select from list, and launch. Often the first result was good enough, so I could just hit enter to start the application. The new Start Screen works like this if what you want is an application. It also displays more results at once. But in certain situations the experience is worse than in Windows 7. Not to mention that the Start Screen covers all apps and the taskbar. Not good.

What I particularly did not like about search in Windows 8, is that it separates Apps, Settings and Files. It just displays results from Apps as a default (in Windows 7, all results were displayed at once). What does this mean? On Windows 7, when I type in “add remove” into Windows 7 search box, the first result is “Add or remove programs”. I can hit enter and start working. In Windows 8 the result is bogus ("Add or remove help content", obviously some kind of App), until I remember to switch over to Settings under the search box. Which is not even trivial using the keyboard.

As mentioned before, Start Screen covers the screen, so naturally so do search results. As the article says, the start menu could not scale to fit all the search results: this is true. In this respect the new Start Screen is superior, because in can display more entries.

I would stress that the task bar needs to be visible all the time. When Windows starts, by all means, show the Start Screen. Maybe even full screen. But almost always I would see a better option of the Start Screen being a transparent overlay (check out OS X Dashboard) over the desktop, excluding the taskbar (which should be always visible).

Summary

This is of course just a developer preview, and I hope Microsoft can fine tune the new Start Screen, especially for desktop users. I would say the keyboard (and mouse) user experience needs a lot of work, because in its current form it is more disruptive than helpful.

When Windows Vista came out, and after that, Windows 7, the new Start Menu and its features struck me as something that increased my productivity, especially with the keyboard. I just do not feel the new Start Screen does the same. I feel it hinders me. I realize sometimes you need drastic changes to get new things going, but I just do no feel the Start Screen in its current form satisfies this goal. It might be something really cool for tablets, but desktop users are left behind in its current version.

Eagerly waiting more Windows 8 previews :-) And I still need to check out development tools for Windows 8.