If you were running Microsoft, how would you go about converting Windows into a fully Open Source project?
It may seem like a ludicrous idea to many – the notion that Microsoft would ever willingly open source their cash cow operating system – but I want to think this through. If I had control of Microsoft, how would I accomplish this seemingly impossible task? What are the specific steps I would take to get us from point A to point B?
In thinking about it, it's not as easy as simply declaring the source code to be open and plopping everything on GitHub. Being such a large, publicly traded company, I (as the CEO of Microsoft) would need to find a way to transform the culture of the entire company to be pro-Free and Open Source software. And, in addition, I'd want to find a reliable way to make the transition from Closed to Open without cutting back on revenue or needing to lay people off. (Otherwise, I'm pretty sure the board of directors would have my head on a stick.)
A big task. But doable. Here's how I'd go about it.
Step 1: Create an Open Source division within Microsoft
This seems like an obvious first step. I, as the CEO of Microsoft, would want to make sure there was a group within the company dedicated to Open Source. Perhaps something as simple as interoperability testing with flavors of Linux. This would not only serve to help create ties with other Open Source-focused companies, but also to serve as ambassadors to the rest of the world about how Microsoft wants to be "Open."
It gets Open Source's foot in the door, so to speak. At this point, FOSS is alive at Microsoft. Even if only in a small way.
Step 2: Make Open Source profitable within Microsoft
That "Open Source" group within Microsoft that we created in Step 1 might find a way to be profitable. Or maybe it won't. It almost doesn't even matter, as that's not the group's primary goal.
What is needed for the second step is to find a completely different division of the company that can both a) show clear revenue growth, and b) have Open Source as a key, non-removable component driving that profit.
To make my job easy here, I would elect to copy what others have done that has been profitable with highly visible Open Source software solutions. I would go Enterprise. I would go Cloud.
What Amazon did with EC2 and and Amazon Web Services, I would look to duplicate within Microsoft – using not only MS Windows, but also endorsing (and visibly relying upon) distributions of Linux. A big key here is that the usage of Linux and Open Source needs to be visible and touted on a regular basis. We would need to use this to make mentions of "Microsoft" and "Free Software" common in the same sentences.
This also accomplishes a few other critical things:
- It proves to shareholders that Open Source is not a bad word and can help produce revenue.
- It shows other divisions within Microsoft that embracing Free and Open Source software will not only not get your hand slapped by the company executives, but it will actually garner you praise within the company.
- It builds a base of employees with expertise around Linux and other Open Source projects.
Step 3: Shift core products towards a business model that is proven to work with Open Source
Once we've reached the third step, things are really heating up. People within the company are talking about using (and being) Open Source. In the outside world, people are at least talking about "Microsoft and Open Source" (even if a little, or a lot, mockingly).
But we still need to make as certain as possible that moving to an Open Source model will not kill our revenue stream. This is key.
So, at this point, I (the glorious CEO of Microsoft) would look to migrate the the big-money makers over to a business model that some competitors have shown to be viable in the Open Source space for quite some time.
I'd transition Microsoft Office over to being subscription-based. In addition, I'd change the release model for Windows to be regular, frequent smaller updates (a model more akin to what most Linux distributions do). The "big new release of Windows every three years" model simply wouldn't work once Windows became an Open Source project. So let's change it now and be ready for it.
Step 4: Make big, grand gestures
I would get up in front of as many crowds as I can and proclaim my love for popular Open Source projects. Heck, I'd probably even have a cheesy graphic put together by my art department to emphasize that love. Might even put a big old heart on it just to make the message undeniable.
Would I get made fun of for doing that? You betcha. Would the Free and Open Source diehards of the world shake their heads in disbelief? They sure would.
But I would keep saying it. Keep showing that image. Every chance I got. Until it stopped being funny. It stopped being a source for ridicule. It just became an in-your-face fact. People would, eventually, accept it. Well, most people would.
Step 5: Diversify Platforms
What if, despite all planning, releasing Windows as Free and Open Source software absolutely tanks – taking the Windows market share down with it?
We would need a contingency plan. If a newly opened Windows bombs, Microsoft needs to make sure revenue from the other product lines can, if not fully pick up the slack, at least continue to operate on non-Windows platforms.
With that in mind, I would begin releasing Office for as many popular platforms as I could (Android, iOS, etc.) and even start working on bringing development tools to Linux and other platforms as well.
Step 6: Start Open Sourcing
At this point, the groundwork has all been laid. The board of directors and shareholders could be convinced. The Microsoft employees, worldwide, are open to the idea. The media is half-expecting something like this. And the Open Source community is as prepared for such an event as they'll ever be.
I would start small – a dev tool here, an application there – and work my way up. In fact, I would start Open Sourcing the complementary applications that Windows ships with first – such as Notepad and Calculator. Are those important, mission-critical bits of code? Definitely not. But it will make a huge amount of press and will help Microsoft work out the kinks in the process before diving in and releasing something monumental – like, say, the entire shell for Windows.
Once a few successful apps have been released, I would keep on releasing more – at a regular pace – until the entirety of the source code for Windows were publicly available under a license that encouraged community participation.
By releasing a few components at a time, that allows the engineering team time to clean up, document, and (in some cases) remove improperly licensed code. Plus, it keeps "Microsoft releases more Open Source" in the press. All the time.
Step 7: There is no step 7
That's it. That's how I, more or less, would open the source code for Microsoft Windows.
Now, I'm not saying Microsoft will do this, mind you. But, looking over it, they've already done steps 1 through 6.