[Update (17-Jan-2007, 21:22 PDT): Miguel de Icaza reminded me that the mono class libraries are licensed using the MIT X11 license, not the GPL, and that has allowed a lot of proprietary, embedded use that would not have otherwise happened. Corrected.]
I thought I'd lay out the "rest" of the Thought Experiment. Here are other big ways Microsoft could use free and open source software as a business tool.
Publish Sharepoint as Open Source Software
There are a huge number of content and document management systems in the open source world today. Standards are beginning to show up. This means several things:
- The market has reached a point where the tightly integrated product is no longer the best performing (economically speaking), and no longer capturing the integration premium.
- The big expensive systems are now exactly that -- big expensive systems.
- The market has reached a point where customers expect prices to drop, so are calling for standards.
No amount of innovation will change this market. Indeed trying to charge an innovation premium for such integrated innovation exacerbates the situation. "Good enough" solutions that are cheaper open up a world of document/content sharing opportunities to customers that have never been able to enjoy such productivity before now. So:
- Publish Microsoft Sharepoint server as open source software. It's a good document sharing system. Make it a completely drop dead simple binary package to use. It runs on Windows. Recognize that Sharepoint is a complement to both the Windows core revenue stream AND the Office [other] core revenue stream, and both of those products have incredible challenges ahead of them.
- Publish it under the GPLv2. This will cause all the historical closed source companies with product in the space to stay away.
- Create the Microsoft Sharepoint Server Network product, similar to the suggested SQL Server Network product. Again -- experiment with the pricing on the license.
- MySQL talks about the fact that their historical conversion rate of customer from users was about 1:1000. JBoss talked about a conversion rate closer to 3%. (This is likely due to the difference in technology/customer base, or possibly the history of when JBoss came on stream in relation to MySQL.) Regardless, you want every department, work group, not-for-profit, school group, hobbyist group, church, synagogue, mosque, etc. dropping down document shares for free. There are 40 million installed MySQL databases in the world. Ask yourself why there wouldn't be just as many document shares? Do the conversion math AND recognize that every large organization IT shop will freak out when they realize the company is running on "unsupported" document shares installed everywhere.
- Organizations in non-G8 economies now have the opportunity to install a "free" "professionally built" document share. Let them. Those economies are all coming on stream and they will have money to pay for the support network offering. Better for future Microsoft revenue streams that they're learning Sharepoint on Windows than using the alternatives and then having to fight a migration problem in the sales cycle.
- Someone is going to attempt to port it to Linux. It may even be easy. But with the efforts to make Windows servers more manageable for small business finally coming to fruition, ask yourself whether or not Sharepoint on Linux is going to be really a threat (performance, portability, Linux-manageability). Remember how you run YOUR Sharepoint community is YOUR business.
- All previous points about trademark, alternative additional licensing, and hiring still apply.
Remember when Microsoft's slogan was simple and meaningful: "A PC on every desk and in every Home. " Home servers are coming on stream. Recognize that consumers don't want "a home server." But a riff on "A Document Share in every Work Group and in every Home" might be interesting considering all the photographs, music, and soon-to-be TV shows and movies that will need to be stored. Start buying shares in disk technology companies again.
Developers: Part 1 -- Engage with Eclipse
[For Microsoft readers -- please take a deep breath and put DOWN the chainsaw.]
There are several things that need to be considered here. Not all of them are pretty.
- There are a growing number of users of Eclipse on Windows. They aren't paying for Visual Studio. They probably aren't programming in C# against the .NET run-time.
- Visual Studio is just an IDE. The real technology value in Visual Studio is the core language technology (the compilers and CLR i.e. garbage collection, the JIT, etc.), not the configurable menu options. How many coloured text editors does the world really need? (Yes, I expect this to provoke the modern day equivalent of the ubiquitous and inescapable vi versus emacs flame war. Get over it.)
- There's a reason the WORLD has moved to open source development tools. All the proven ways of building better software faster involve ALL people on the development team regardless of title/role have access to ALL the tools. Having expensive per seat tools where only certain people get access to certain tools isn't just false savings, but it's engineering inefficient. Adequate tools for all beat best-of-breed tools for a few. Once again, the innovation premium can't be easily sustained any more.
The goal is to get more developers on C#/.NET and to provide a better solution for the running applications on Windows. So:
- Engage with the Eclipse Foundation. Put the Visual Studio IDE in maintenance mode. Contribute some of the IDE bits that are "better" than some of the Eclipse bits as the olive branch.
- Resurrect the Shared Source CLI (aka Rotor). It is a simplified working C# environment for Windows (and historically Mac OS X and FreeBSD). Integrate into Eclipse.
- Release the interesting Visual Studio and Rotor 2.0 bits under the Eclipse Public License. This license does NOT mix with the GPL under which the Mono project is distributed. (The mono class libraries are released under the MIT X11 license.)
- Maintain the core C#/CLR technology and all Windows extended class libraries as the value add licensed package. Indeed, the agreements with Intel and AMD may prevent some of this technology ever being published in source code form because it is so close to the hardware. Use that to your advantage.
- Re-purpose the academic/training materials (of which there is an abundance) to capture C# developer mind share.
- Re-purpose (initially) the engineering resources that will free up to developing all the OTHER necessary classes that the Java world have that enable so many applications to be created in the Java world. Many Java programmers in the enterprise will admit that they like C# better, but are clear that they can work faster in Java because all the classes and frameworks already exist in the problem domain in which they're working, i.e., while C# may be actually faster in which to develop code, application development is faster in Java. Recognize this is because IBM and Sun won their ISV population by giving them the resources to rewrite/migrate the historical C++ class libraries to Java. You will need to do the same to gain C# acceptance.
This is the first part of the developer program. It's about winning C# programmers already on the platform, and about engineering efficiency at several levels. Now for the next step.
Developers: Part 2 -- Engage with Mono
You have just explained to the world that you're in a IP cross license with Novell. Let's make it real in a way customers in the enterprise can understand. Again, recognize a number of things:
- LAMP continues to gain ground. So what you didn't lose to Java because of the perception of Java as a multi-platform environment, you ARE losing now to LAMP. Customers want at least a belief in multi-platform programming environments even when they choose just one platform. LAMP is also code for Ruby on Rails for the purposes of this discussion. AJAX is NOT interesting when the first canonical example in every book is how to tell the difference between IE and every other browser on the planet.
- Maintaining a PR strategy around Mono as a "science experiment" anchors the belief in customers' minds that if they're going to hedge their bets for the future, they had better choose Java for "heavy lifting" and LAMP otherwise. You are currently drinking your own bath water.
So again in the spirit of engaging with developers (i.e. customers developing platform complement value) to solve problems better in a C#/.NET world (and here .NET means Windows by definition):
- Engage with the Mono community. Offer the (Rotor) ECMA Base Class library code as an olive branch so there is one true library source base. Do it on the following condition: that the Mono community has to maintain a rigorous rights assignment process similar to the Free Software Foundation process, such that you can still take back the code and know from whence it came.
- License the (Rotor) ECMA Base Class library code under the
GPLv2MIT X11 so it is compatible with the rest of the Mono Base Class Library. This does NOT contradict the above licensing using the Eclipse Public License. It's Microsoft property. You can license it as many ways to as many people as many times as you like. So just like the Perl/PHP/Python community, license this particular bit under both licenses.
- Contribute some amount of work to improving Mono on UNIX/Linux. This is NOT anathema. While Mono runs on Windows, you really want the ultimate Windows C#/CLI experience to be .NET. But you need enterprise customers to understand that Mono is real.
- The web world is defined by a set of publicly developed publicly available standard network protocols. Microsoft implements them (mostly). For the underlying web service world that is just now coming on stream in SOA, there is likely still head room in the market where the tightly integrated solution outperforms the componentized solutions. On Windows, the combination of .NET CLR+IIS may still offer a much better solution (technologically AND financially) to hosted web services than your competitors.
Franchise Windows into China
[For Microsoft readers -- please stop hyperventilating and rolling your eyes and think about this in real economic terms.]
This one is actually a little subtle. It doesn't look like an open source play. But it addresses a different aspect of the "competitive problem" with open source from the Microsoft perspective. There are a couple of things to consider:
- Linux adoption is an easy decision as an interesting platform base for development in a developing economy. It's free as in speech and free as in beer. This means one isn't shipping hard capital out of a small company, and hard currency out of the local economy for the privilege of working on Windows. It doesn't matter if Windows is "better". It's an finance/economics problem, not a technology/innovation problem. (That means it needs a financial solution.)
- The magnitude of the Chinese economy both in scope and in advancement make shipping that much hard currency out of the economy a non-starter. It's a macro economic problem as well as a micro economic problem. Most G8 marketeers see the scope and think they just need to localize the product and its advertising, because obviously their technology will be valued the same in China. The middle class culture and business culture developing in China is NOT the same as their equivalents in a G8 country. You can't assume the economics is the same.
As a platform on which to innovate, (and I said that carefully,) Linux wins every time in China. Microsoft needs to disrupt the economic problem it has created for itself. There is no fine tuning here. So:
- Franchise Windows into China.
- Structure the license to protect the Windows brand and the Windows app compatibility programs and brands.
- Invest in a joint venture primarily owned in China. Create it as a secondary Microsoft stock class. (I do NOT actually know what I'm talking about here. Better stock specialists than I can probably describe the real steps to accomplishing this here). The intent is to create a class of Microsoft stock that is highly attractive to existing shareholders/investors, and also leaves substantial capital in the Chinese economy. This will get the Chinese government on board. This will give investors/shareholders choices in what mix of Microsoft stock to own.
- Structure the license with respect to regions/localization over a set of milestones and dates to not savage the Windows revenue stream too quickly when China starts exporting technology.
- Get out of the way and let the Dragon go. The technology graduate rate is phenomenal. They are open source friendly. Ensure they're C#/.NET programmers that understand your platform.
This of course presumes Microsoft is developing the "next" operating system. They have a demonstrated ability to develop ubiquitous platform technology that is well tested, packaged, supported and maintained across an enormous breadth of hardware platforms. This is actually where they shine when it comes to shear scope of software engineering delivery.
Forget the Home Media Server as a "Windows" machine. You've had a simpler home server in the living room for 5 years now, which is already zero administration with an arguably elegant design. It just needed a wireless loop and a bigger disk. Indeed, I've never seen a pop-up in the middle of an XBox game telling me I needed the latest security update, which apparently plagues Media Center Edition owners that spent more money for a "bigger PC" in their living room. It doesn't matter how elegant the new "home server" looks -- that pop-up event is a deal breaker for a consumer.
If Gates is serious about the coming robotics wave, then use all that pent-up R&D intellect and go build the next great embeddable platform. Ensure it's wildly friendly to C#/CLR programmers. By then you may even have the depth and breadth of open source software experience to involve the community.
These are big programs with potentially big impact on Microsoft. There are all manner of other programs that could be started, from Kim Cameron's work, to improving Microsoft Exchange firewall capabilities by integrating with many of the best of breed open source solutions out there. There is an incredibly rich portfolio of software assets inside Microsoft, that will NEVER be released as multi-billion dollar revenue streams, that could be used to engage Microsoft customers and developers in open source communities.
Re-invention is necessary. IBM did it. Sun is doing it. No point waiting until you hurt as badly as they did to begin.
The cultural upheaval would be enormous, and require enormous training and education across engineering and marketing. The PR and customer coup would also require enormous work to ensure the executive could explain it in simple sound bites to keep investors from panicking. That would also require [consistent and coherent] executive sponsorship at the highest levels. In the end it's just a thought experiment. But as I said last week, it's a GREAT thought experiment.
Run wild; run free.