Windows 10 will run across an incredibly broad set of devices – from the Internet of Things, to servers in enterprise datacenters worldwide. Some of these devices have 4 inch screens – some have 80 inch screens – and some don’t have screens at all. Some of these devices you hold in your hand, others are ten feet away. Some of these devices you primarily use touch/pen, others mouse/keyboard, others controller/gesture – and some devices can switch between input types.
In a nutshell, Microsoft plans to tailor to the user interface and entire user experience, depending on what device you are running on. The underlying core operating system is the same; what changes will be the UI. At the same time, that underlying core has to meet the vision that new Microsoft CEO, Satya Nadella outlined. Primarily being:
Microsoft is the productivity and platform company for the mobile-first, cloud-first world.
It sounds good on paper and in canned demoes, but can they execute on the development side? If they do, Microsoft may actually have a winner on its hand. But they need to pull the whole thing off with technical precision and within the 2015 time frame specified (while the rest of the industry continues marching on). The problem is that Microsoft has always had problems delivering on their vision to where it just works.
One of the key takeaways is familiarity and compatibility (a biggie in the enterprise as well as desktop users who balked at Windows 8; which caused Microsoft to relent and put back in the Start button in 8.1). The desktop user interface brings back a lot of the old Windows paradigms from Windows 7 (and earlier); essentially, “forwards to the past”. But it doesn’t forsake some of the features they brought with Windows 8.
On the desktop, the tile interface is now scaled back down into the Start menu. Windows and apps can now run in both full screen and in windows again (newer apps in Windows 8 ran full screen period – makes sense from a tablet perspective but not on a desktop PC). And that was the most annoying issue I had when I was testing the Windows 8 Consumer Preview. Launching older apps brought up the older desktop/taskbar UI while the newer apps, worked in the newer tile UI.
So much for the uncompromising experience they had originally touted; the more I used Windows 8, the more it became clear that the tile UI was just tacked on. Furthermore, there were many times where I felt like flipping through the tiles on the screen, with my finger. And tiles that appeared half off screen, put up an ugly horizontal scroll bar in order to scroll. And that right there explains why user interfaces need to scale as appropriately based on the form factor and device.
The demo went through great pains to emphasis these input paradigms in order to lead up to how Microsoft plans to attack this. Their solution is something called Continuum as far as dealing with 2-in-1 devices such as the Surface Pro where it works as both a keyboard/trackpad/mouse device versus one that can be used as a tablet.
The promise is there; it’s the execution though not just with the operating system, but also how the entire application stack will deal with this. And that is where the big challenge is.
As I’ve written before, Apple has kept both OS X and iOS separate in terms of distinct UI’s. It reduces the confusion on the user side, and also allows developers to design UI’s that make sense for those specific devices. The underlying core OS is derived from the same code base (just recompiled for the target platform with just the necessary device drivers and frameworks). That means being able to streamline the entire core OS package as appropriate because there is no additional “baggage” required. That streamlining also applies to application packages.
Microsoft’s tailored approach is also one that is very deliberate. The need for mobile applications. One of the biggest issues is getting more developers onboard for their mobile devices running Windows. Right now, it’s either iOS or Android. While universal apps aren’t anything new, it’s not a panacea either. Apple has had universal applications before due to their numerous hardware and software transitions; 68k to PowerPC, OS X PowerPC and Intel. To the user, most everything just worked, but behind the scenes, there was heavy lifting involved (both of these used dynamic recompilation that translated code into its native equivalent on the fly). But these are a lot more different compared to what Microsoft is trying to accomplish.
Certain classes of software will be much simpler to scale across a variety of devices. A simple example would be a basic productivity application like a note taking program. The user interface for something like this can be easily tailored to work with keyboard/mouse/trackpad, with touch, with voice input, and with a game controller.
And that’s key because Microsoft wants some of their biggest desktop Windows developers (enterprise and consumer facing ones), to also have those same applications, able to scale to both touch tablets and smart phone devices. It’s a brilliant strategy to get a huge library of software which potentially solves the cat and mouse game of having enough software available to make those mobile Windows 10 tablet/smart phone devices, relevant. It’s also a big mobile enterprise play (where right now, iOS has a huge lead).
As I mentioned though, it’s not a panacea. This still is going to require developer work to scale UI’s appropriately unless Microsoft plans to have actual API’s that deal with it. One of the biggest problems right now with their current mish-mash approach is that UI’s that work well with the keyboard and mouse, just aren’t productive with touch. The keyboard/mouse UI can afford plenty of options because those can be packed in tightly together (look at the ribbon in Office for example when it comes to the tools). With touch, those targets have to be large and even more context sensitive. How does something like Word scale on the fly for example from keyboard/mouse, to tablet touch, down to a smart phone when it comes to all those toolbar options?
Let’s look at games next. Some games can work across a breadth of user input (game controller, keyboard/mouse, touch). A card game like Hearthstone is a perfect example. But things get a lot more difficult when you are talking about other genres. First person shooters will never work well with touch input. Certain real time strategy games like StarCraft 2 also do not translate well to touch or game controller. And action RPG’s like Diablo 3 are difficult to implement with touch.
Finally, there is the issue with application packaging; mobile devices have storage and memory constraints. We’re not even talking optimization either when it comes to taking something that might be designed for a desktop computer, to scale to a mobile device and working within its power envelope.
My point is that the above, is similar to the old PC, “write once, deploy everywhere” premise. It sounded good, but never really offered the best user experience when an application was ported and not written natively for a specific platform/environment (Mac ports always felt out of place because they never took advantage of features unique to the platform and as a result, did not have the complete functionality that was expected by users).
In this case, the challenge is the user interface and resulting user experience. Using games as an example, writing for console requires thinking from the perspective of the game controller. Thus a game developer that has experience writing primarily for the desktop, may not have the design experience required for creating a game experience that works well on touch or console.
Blizzard Entertainment for example made the wise choice to hire a team specifically for console when they made Diablo 3 for the Playstation and Xbox; the end results show in the final product. Certain game design decisions, required taking a completely different approach. Like how do you deal with targeting when it comes to precision. A mouse can precisely target because you put your pointer at a specific spot; not something you can do the same way with a game controller. And with a PC game, you can throw the keyboard into the mix.
Myself being someone who has played games primarily on PC/Mac, the game on the console actually feels/plays a lot better on the console. I probably would not be able to say that had they just tried to directly port the game without any design changes for the controller interface. But this is just one simple example where scaling across different user input devices, isn’t that simple.
Is this going to be an API that Microsoft will offer to give developers some tools for being able to design and develop user interfaces that can scale, or is that whole thing going to be left up to developers? A simple current example is the new iPhone 6 Plus. It features the same multipane views in landscape mode the iPad has. Developers who create iPad apps, should be able to include the 6 Plus as a target device to take advantage of the additional screen space. If Microsoft does something like this, then it makes a lot more sense. Most developers will still likely end up spending a lot of time designing and optimizing for specific device form factors because I can’t see Microsoft including API’s and frameworks that dictate everything to make it simpler for developers.
My point is that not everything will scale well across devices. And it goes without saying that some software, just won’t be universal at all. To break it down even more simply, part of all this is marketing speaking. Engineers must be tearing their hair out because they know it isn’t as simple as a video demo.
Microsoft definitely has a grand vision that makes sense to me, but can they actually deliver? Their plan is to deliver Windows 10 by the later half of 2015. In the context of mobile, that is an eternity. In the context of having one single platform with tailored experiences, it’s going to present a huge development challenge. The enterprise is stodgy and has very specific requirements compared to the consumer desktop space.
As Terry Myerson mentioned in his lead off when he was talking about one of their most important customers, the enterprise, he specifically said the following:
These businesses are betting on Windows to run their business. <sales statistics omitted>. These enterprises need to evaluate Windows early.
And that is one of the key reasons for the Windows 10 event being held as well the forthcoming technical preview; to give enterprise customers an idea of where Microsoft is going. But in the context of a comprehensive platform which scales from the enterprise, all the way down to a 4″ smart phone, there is a dichotomy at play. On the mobile end of the platform, adaptability and rapid change is a given. The enterprise doesn’t work that way though. And as Microsoft found with Windows 8 in the consumer desktop space, change didn’t come easy either (because people, are generally resistant to changing the way they do things unless they really have to).
Microsoft is again trying to take a “please everyone” approach; the same kind of long standing backwards compatibility, that has also managed to stifle their ability to really innovate. This is in contrast to how Apple does things. They make it no secret that we have a limited time with older releases.
Myself, I stuck with Mac OS X 10.4 (Tiger) on my original Mac Pro until 2010 when I bought my new Mac Pro (the minimum operating system version for that was 10.6 Snow Leopard). Likewise, I ended up sticking with Snow Leopard until earlier this year before I finally had to move to 10.9 Mavericks. In each of those cases though, there were eventually no OS software updates (including security related ones) and newer software versions began to no longer support Tiger (they just would not launch period). That same thing happened as I held out with Snow Leopard.
The pace is even faster with iOS. Just after releasing iOS 8.0.2, Apple stopped code signing iOS 7.1. But this is all done for a purpose; to continually move forward and hopefully, improve at the same time. It’s also why Apple ended up making all iOS upgrades free and why they ended up following this same approach with OS X. Free lowers the adoptability barrier (holds out like myself hold out because we utilize some feature set that Apple obsoleted and completely removed – like what they did when they removed Rosetta from 10.7; Rosetta was a system service and framework that allowed most older PowerPC apps to run on Intel-based Macs).
This is something that Microsoft is going to have to balance. Furthermore, the clock is running. The rest of the industry will continue to march forward as they code and beta test Windows 10. What the mobile space will look like in late 2015 if Microsoft ships on time, no one really knows. Both Apple and Google give away their core operating systems. Both are subsidized by their primary revenue generators.
Microsoft makes money from this exact software though. They sell Windows. And they’ve had to change their pricing structure accordingly. The desktop market has also changed; Windows for desktop PC’s aren’t going to have the same kinds of revenue as a result of continually shrinking share as well as Microsoft’s own price reductions. And because there is that price tag attached to the operating system, they are still going to be saddled with the ongoing battle of having to maintain compatibility with legacy systems (which is contrary to mobile).
And as I also opined before, while Microsoft is fixated on Apple, they need to really be dealing with Google in terms of both Android and Chrome OS. Microsoft has a potentially good plan but they are playing catch up to both Apple and Google. Google wants to take out the low end with Chrome OS as a means to remove another thing Microsoft could leverage. Microsoft’s biggest asset over Android is the enterprise. In the context of mobile enterprise, Apple is making huge inroads even though, a lot of it is happening in silent fashion. Microsoft is going to be playing catch up there.
But while they will have challenges with balancing the “one app across all devices” premise, it’s probably going to be their biggest weapon against BOTH Android and iOS if they can actually deliver on what they are planning to do on time. And thats never been easy for them.
Unlike the not so distant past when Microsoft spoke and could freeze everyone’s purchase and planning decisions in their track, they no longer have that advantage and luxury. They actually have to deliver on something that is not half-baked and buggy, with software that just works. Thus I’m definitely going to be trying out the Windows 10 technical previews and yes, giving my feedback.
