A glimpse into the internal battles that set the future of Windows and .NET

A couple of posts from Hal Berenson give insight into the internal battles at Microsoft as the company worked out its strategy to rescue Windows from irrelevance in the world of mobile and tablets. Berenson is now President of True Mountain Group LLC but was formerly at Microsoft where his roles included SQL Server development and architecture, Mobile Development Tools strategy, and General Manager of Forefront identity and security products.


Berenson left Microsoft in October 2010, but by that time the strategy behind Windows 8 and Windows Phone 8 would have been in place.

According to Berenson, there were two core options for evolving Windows. There may have been others, but the heart of it is this: what to do with .NET. One option was to make .NET the app model for Windows, which is what was planned for the original Longhorn, before it was reset and became the less radical update that was Windows Vista. The other was to create a new app model based on native code. Steven Sinofsky, the Windows President, chose the latter, which is why .NET is only one of three options for programming the new tablet personality in Windows 8. This meant going down the opposite path from that of Windows Phone 7, which has an entirely .NET-based programming model.

You may recall from other sources that Steven Sinofsky has never been known to be a .NET fan.  While others within Microsoft, and even senior people in the (pre-Windows 8) Windows organization, wanted to move to an entirely .NET app model for Windows Steven did not.  He (and others fyi) wanted to re-engage the native code C++ developers that Microsoft had been neglecting.  And they wanted to co-opt the huge base of web developers to create apps for the Windows platform.  Well, what had the Windows Phone guys done?  They’d implemented a .NET only app platform.  Could the Windows Phone app platform evolve to address the native and web developers?  Sure.  But with no existing library of apps and a desire not to have .NET-centric platform at the core of Windows Sinofsky apparently felt pretty comfortable ignoring the Windows Phone team’s work.

This goes a long way to explain the puzzlement many of us experienced when it transpired that having created in Windows Phone 7 the basis for a touch-friendly operating system that could easily be extended to larger form factors such as tablets, Microsoft chose instead to do a new thing entirely for its tablet strategy.

One take on this is that Berenson’s account illustrates the chaos at Microsoft. Windows Phone was created in a mad hurry in reaction to the iPhone and the ascendance of touch UIs, reusing pieces of .NET, Silverlight and Zune to bring something to market quickly. Then the company’s next move was not to build on that, but to throw it away, even in the context of a mobile and device revolution that was and is a huge threat to its core business. And where was CEO Steve Ballmer in all of this?

The other take though is how this shows the determination and strategic focus of Windows boss Steven Sinofsky. He did not believe that rebuilding the Windows user interface on .NET would save it, with the Longhorn experiment no doubt a factor in that conviction, so he refused to go down that path again, despite the cost in terms of time and, perhaps more seriously, the impact on the developer ecosystem. Microsoft platform developers were asked first to bet on .NET and Silverlight, and now to bet on this new thing the Windows Runtime, and many are disillusioned or even angry. A hard decision; but putting long term strategy ahead of the immediate demands of your customers may be the right thing, in fact the only right thing.

Berenson also confirms what many of us have always assumed: that the removal of the Start menu on the Windows 8 desktop is all about making the new personality in Windows hard to avoid:

The Start menu, and indeed the entire desktop, are legacies that will have to be removed from Windows over time.  While the desktop itself is probably with us for a couple of additional major Windows releases (though there may be truly desktop-free editions sooner than that) the start menu was something that Steven has bet he could get away with not bringing forward into Windows 8.  By doing so he forces users to start living in the new usage paradigm rather than totally avoiding it.  Yes you can still set up a system to avoid leaving the desktop most of the time.  But you can’t avoid the new world completely.  In doing so he sets people up to eventually accept systems without the desktop at all (or at least Windows RT systems for personal use even if they need the desktop at work, for example).

Personally I no longer miss the Start menu; but its absence is certainly a barrier to adoption for Windows 8, as new users struggle to navigate the operating system.

Note: Berenson has kindly commented below. Note his point that merely working at Microsoft does not give you detailed knowledge of all decisions made there.

16 thoughts on “A glimpse into the internal battles that set the future of Windows and .NET”

  1. Very interesting – particularly the last part on the removal of the Start menu. Does Microsoft really see the desktop disappearing within the next few years? If so, what is going to replace it? After all, I can’t see the basic form-factor disappearing. Unless we stop sitting at desks altogether, the keyboard, monitor and mouse are going to be around for a lot longer than that, and I for one can’t see myself reaching across the desk to dab at the monitor.

  2. I might add my usual caveat that while ‘softies have better insight into decisions at the company than the rest of us, their view of decisions made in divisions other than their own may not always be 100%.

    I think 8/RT desktop/Metro is a way to have a mobile-first strategy for the whole not getting eaten alive by iPad questions alongside the good old desktop for quite some time, at the very least until WinRT apps grow to the functionality of desktop apps. What do you need the desktop *for* Matt? Can’t the Start screen do everything the desktop does apart from show more than two apps at once? Keyboard and mouse continue to work with the Start screen & WinRT apps and I don’t quite get why people think they have to go away – but them I’ve had a PC with trackpoint/mouse, trackpad and touch screen for ~2 years and I don’t know why everyone doesn’t want one.

  3. “And where was CEO Steve Ballmer in all of this?”

    Good question. Apparently Sinofsky is running the company these days. Is Ballmer doing anything at all, besides throwing chairs?

    Berenson’s post was indeed quite enlightening. So Windows Phone 7 was merely a hasty stopgap measure. Microsoft didn’t even wait to see how it was accepted before obsoleting it internally. The big developer uptake must have been quite inconvenient for them!

  4. Hi Mary! By ‘desktop’ I don’t mean the Windows desktop UI – I mean the physical desktop workstation with a desk and a chair, a large monitor or two, a keyboard and a mouse. What I want from a desktop OS is something optimised for that formfactor (and yes, I sometimes have three or four apps up at once) – not something optimised for the tablet that really wants me to touch the screen (do you actually have a touch screen monitor on your desk?)

  5. Of course the risk of abandonning the desktop could be to open the field for Mac OSX or Chrome OS as “work” environments.

    @Mary: multiple apps/windows at the same time or large screens is what Metro doesn’t do well. Full-screen apps are okay on small screens, but on a 22″? nope

  6. Just to be clear you are reading some things into what I say that may or may not be accurate. And I have no first hand (i.e., when I was an employee) knowledge on many things. For example I was as shocked as anyone on how the Start menu thing played out. Actually I had almost no exposure to what was going on in the Windows Client world. You’ll notice I’ve written nothing about Windows Server 2012. That’s because I was a Windows Server GM and separating proprietary information from analysis is much harder for me to do there.

    I do have a lot of experience with Microsoft’s way of thinking and the players and so can interpret their moves pretty well. Or at least offer what I think is a good analysis when I’m frustrated that so many people are missing what I think should be obvious. 99.9% of the facts I include in postings are already out there, people just don’t put 2+2 (+4+17*45…) together. Or they read the words that Microsoft used but don’t understand what they were really saying. I try to fix that.

    I want to take exception to the “So Windows Phone 7 was merely a hasty stopgap measure” comment. No, Windows Phone 7 was a “Hail Mary” pass to recover from the failure to evolve Windows Mobile quickly enough to address the consumer smartphone market that Apple had opened up. It used what were then considered mainstream Microsoft technologies, most of them already planned for inclusion in the original “Book of 7” definition for a follow-on to Windows Mobile 7. But it narrowed the project focus to put consumers, rather than enterprise users, first. That included a much more radical revamp of the user interface and other design elements than the “Book of 7” had envisioned. And an app model that would address many issues (memory use, battery life, UI inconsistency, etc.) that Windows Mobile had historically suffered from. And being more aggressive about the device as a gaming and media platform. But they were already two years behind Apple, so time was of the essence. Delaying another two years to sync up with a then totally undefined Windows 8 release was a non-starter. Basically Microsoft had the choice of doing what was done for Windows Phone 7 or abandoning the smartphone market altogether.

    As for the comment about Ballmer…Microsoft is not a monolith and never has been. The smartphone and PC markets are distinct, and the further back in time you go the more this is true. As long as this is the case then you need to give the respective business units the freedom to pursue strategies and tactics that let them address their markets. Steve’s job is not to micromanage, it is to decide what degrees of freedom to allow the various business units and what common strategic elements they should be forced to adhere to, and to rebalance those factors over time. In 2008 market conditions called for great degrees of freedom for many business units, Windows Phone included. One can see by more recent events that over the last couple of years Steve has been removing some of the freedom and imposing more coordinated strategic elements across the business units. Despite micromanaging having worked for Steve Jobs, if you look across all companies of similar size successful CEOs do not (and can not) micromanage. They pick a few levers they can pull and focus on those. Warren Buffet, for example, focuses on capital allocation and hiring good managers to run each business. Then he leaves running those businesses to the chosen managers.

    People also are confusing the timeline quite a bit and how those impact these decisions. Windows Phone decisions were made, and implementation underway, before Windows 8 got started. So if the head of your most important business, the core of the company, comes to you and says “if we want Windows to thrive for the next decade we have to do x,y, and z”, and convinces you it is true, what do you do? Say no, we are going to (perhaps fatally) cripple the Windows business by forcing you to follow a path that doesn’t appear will be adequate for addressing the (soon to emerge, because this is pre-iPad) tablet market or refreshing the PC business? Hold the key Windows business hostage to the financially non-material smartphone business? Oh please, that would be a firing offense.

    It appears that SteveB chose the right set of options. Let Windows Phone proceed with the work already under way. Let SteveSi reinvent Windows. Put Windows Phone on a path to coverge with the reinvented Windows, but continue to allow it freedom to address the distinct characteristics of the smartphone market. The reality is that any other set of choices leads to either a complete abandonment of the smartphone market or a slow death for Windows. Now Windows has a fighting chance of remaining relevant for the next decade or two.

    SteveSi may or may not have made some bad decisions about the details of reinventing Windows. But the overall strategic decisions are correct.

  7. Thanks Hal.

    Also worth noting that while the internals of Windows Phone 7 are being discarded, the “Metro” UI is of course prominent in Windows 8, though in different form. So the story is not altogether incoherent.

  8. Not to mention, rightly or wrongly, we live in a world of apps and launching a brand new mobile platform with zero apps in this stage of the game is suicide (we’ll see what happens to RIM). At the very least Microsoft will be able to hide the fact that while there probably won’t be very many Windows Phone 8 specific apps, they still have access to the Windows Phone 7 apps that exist today.

    Frankly, the biggest problem Windows Phone 7 had was not advancing with Android hardware such that it hasn’t been a platform with the latest hardware advancements or best software to download. And in that case, I do think at least Windows Phone 7.5 was a stopgap measure. Heck, they didn’t even plan to have LTE supported until WP8.

    The good news is that it looks like Microsoft finally has all of its ducks in a row for the two platform launches in October. The only question is if anyone will buy this stuff.

  9. I’m a Windows Phone and Windows 7 /Windows 8 user and I don’t know much about what’s happening inside Microsoft, but I think both of those products are great products and I want them to be successful. I don’t think developers care much about the programming language or if it’s native code or .NET… They want to make money and platform needs users to enable developers to make money. Some of my observation are below:

    1. Microsoft didn’t know what is it’s message for market with Windows Phone. Windows Phone 7.5’s target market is consumers not businesses as you mentioned in your post. Even basic features needed for businesses (like VPN) is not available there. Then guess what, every day there was a post in MSDN blogs about developing apps for government on windows phone!!! Why Microsoft encourages developers to develop apps for goverment on a platform that doesn’t have the required features? I saw a lot of posts on twitter that companies should test Lumia 900 and start using Windows Phone for their businesses! No! Windows Phone 7.X is not ready for businesses!

    2. Why Nokia and Microsoft release Nokia Flagship device Lumia 900 and wasting money on huge marketing when they know the OS is going to be obsolete? They want to release the device, ok fine! But don’t make it a big deal!!!

    3. The number of apps in market is not important, the problem is major apps are not available… Microsoft and Nokia spending a lot of money to get small developers on platform, but the problem is major apps are not available! I don’t care about Angry Birds or Instagram… But when I can’t find Chase Bank app or I couldn’t find eTrade app until recently that drives me nuts!

    4. The other big problem is Google ecosystems… Like it or not Google ecosystem is an important part of everyone’s life! Google does not like Windows Phone and pretty much every Tech blogger is complaining about absence of Google apps on Windows Phone. Outlook.com team got it right! I’m checking all my gmails on outlook.com and I never opened gmail since new outlook.com became available. They created a superior product that takes advantage of Google’s established email ecosystem. What is WP’s team plan? What can we do to have best Youtube experience on WP? Why we don’t enable users to make Google their default search engine? Give people options!

  10. I’m confused. From recent news, I had the impression that RT is the opposite of native, that you need .NET to program for it, and that you can not access hardware from a “metro” app.

  11. Something else to consider is that Windows 8 aligning closely with Windows Phone might be a natural expectation based on how the Windows 8 project turned out, but wasn’t as clear when it started – back in 2009 before the iPad, remember. I think in general a lot of the confusion about Windows 8 has to do with some level of dissonance between its original goals – it started with a broad “reimagine the PC” mandate, with tablets being just one of the use cases, and other possible investments including voice control, more advanced multitasking scenarios and more – and the goal of competing with the iPad which became increasingly the focus over the course of development, as Microsoft realized just how much of a threat it represented and just how high a bar it presented and how much it would take to produce a credible competitor, and so decided to cut much that wasn’t required for that goal (at least from “v1”). But many decisions, especially about the development model, were made earlier in the project based on its original (and still long-term) goal.

    As for Start … I dunno what’s going on in the heads of execs like Sinofsky, but from the Windows 8 UX team’s POV the reason is pretty straightforward: “there is only one Windows”. They want to ensure that, as much as the desktop and the new environment may diverge, the package as a whole still maintains some semblance of being a single, unified product with a single identity (and brand). Yes there are elements such as IE or some settings that are duplicated (which was pretty controversial, and got criticized in reviews, but was ultimately seen as a necessary evil), but having two “home bases” was seen as something that would cause Windows 8 to essentially be perceived as two separate OSs, and could put Windows on a road to permanent fragmentation.

  12. @Nico: WinRT is based on COM, so it supports native code as well as interoperability with other languages. WinRT types can be consumed across the “Application Binary Interface” (ABI), which is compatible with C++ and the CLR for exposing and consuming types, and with JavaScript for consumption only. It’s similar to the way that native and managed COM types can be shared between native and managed code, but where that compatibility was handled by the COM interop features of .NET, with WinRT it’s baked-in to the system as a whole.

    The restrictions placed on WinRT apps are aimed at creating a safe ecosystem for apps sold or distributed through the app store, rather than being due to any kind of limitation of the underlying system.

  13. @Nico
    WinRT is the product of Sinofsky’s hate for tyhe managed code – .Net, WPF and Silverlight. Steve saw that many developers loved .Net, C# and managed code. He saw that there were 70+ .Net languages in the wild (C++/.Net, C#, VB, Python, Ruby, Lisp, Sceme, Javascript, Closure). Developers loved managed code. Steve hated them with a passion.
    He developed a plan to kill .Net and replace it with a crippled bastard that he called WinRT.
    So, he insisted that WPF, XNA, Silverlight, Expression development was poisoned and teams disbanded. The Silverlight team was thrown into a dungeon for supporting non-Microsoft OSes. Then Sinofsky came to the dungeon and ordered the Silverlight team to paint his ugly COM-based WinRT monster with a XAML lipstick. The main requirement was thta they break the compatibility and never ever utter the word “Silverlight”. It’s a word that you cannot speak in Sinofsky’s presense. With a mad laugh he told everyone that XNA was no more and the only supported way to write games for Windows 8 App Store and Windows Phone 8 is raw C++ and DirectX.
    So, Sinofsky crudely stole from Silverlight/.Net everything that he could retrofit to his 1990-era WinRT “creation” and burned everything else. WinRT quality was less important for him then the .Net destruction.
    To ensure that .Net will never ever become the basic of the future OS, Sinofsky also killed all researchers working on the Singularity/Verve/Midori projects. Miguel de Icaza, the creator of the Mono project, is currently in hiding as Sinofsky’s assasins are seeking hem to eradicate the last .Net implementation alive.

  14. @Mark: Thank you, I didn’t know about the COM base and took too much for granted. The key: “…rather than being due to any kind of limitation…”

    @Ark-kun: LOL! That Sinofsky seems adroit. Upsetting so many people and still getting something as big as Microsoft to jibe.

  15. @Ark-kun don’t be so hasty to decry what SteveSi has done, in spite of massive outcry (mainly from .NET devs) he’s had the will to move to something better.

    See, WPF was pretty poor at rendering (see http://jeremiahmorrill.wordpress.com/2011/02/14/a-critical-deep-dive-into-the-wpf-rendering-system/ for a debug of what it does) and we know .NET is fine a as RAD tool, but quite poor for efficient processing (having been developed in an age where ever-increasing CPU power was available to single-users, this is a fair design decision. One that doesn’t hold up when you want low-power mobile platforms, and web-scale server platforms).

    So getting rid of .NET in the underlying operating system in favour of as-efficient-as-possible systems code is definitely something that needed to be done. And now we devs get to write similar code, you shouldn’t be upset at that, our users will thank us for faster UIs and the planet will thank us for using less electricity in the datacenter.

    It is something that should have happened years ago, the similarity between VB6 and C# was always there to see, just no-one wanted to look (ie the MS RAD-tools approach to coding where the developer is king, not the end-user). I think Jobs showed Ballmer that getting sweaty and dancing around shouting simply wasn’t the right way, fortunately Baller has SteveSi to execute this!

  16. Microsoft should learn that one of the key success factor of Android is the Java-based platform that developers love to quickly write apps for it with fun. It started to have market attention from the first competition of app development. Samsung wanted to follow the success of Android by introducing the C-based Baba OS. Almost no developers wanted to try it at all. Although Apple agrees that end-user is king, new developers of iOS always show reluctant to the old styled objective-C code. (Well, monotouch thus have a very good iOS market). Less developers, less apps, less excitement, and then less market momentum. It seems the reason why the production rate of Android apps is higher than iOS now. Developer-driven was always Microsoft’s strategy. Developers love Microsoft because Microsoft gives them almost free technical resource and makes development fun with job opportunity to developers. Developers create exciting applications to satisfy end-users and then the market momentum up. I like to say that “modern development languages” is a hygiene factor to keep developers to create applications for end-users, while significant system performance and innovative features are the driven force to boost up the user adoption.

Comments are closed.