Microsoft and Open Source

In a couple of weeks, I‘m participating in an internal “Presentation Idol”competition. It’s a contest of presentation skills against impressive competition (I can’t name names, but rest assured it’s a strong group) being judged by Microsoft executives (again, I can’t name names, but this time it’s because I don’t know who’s judging) in front of what I assume will be a large technical internal Microsoft audience. To top it off, we each only get three minutes and thirty three seconds each to deliver our presentations.

So yeah, no pressure.

The topic we’re all presenting is “What is the one thing we should do to improve Microsoft?” For those who know me, it should come as little surprise that I picked a variant of “more open source” for my presentation. More specifically, I’m planning to present the following:

  1. Any product Microsoft gives away for free should also be Open Source.
  2. Open Source Microsoft products should accept contributions from the community.

I realize that many people consider this separation between “source availability” and “community contributions” completely artificial. Sure, the accepted definition of Open Source only addresses the availability and distribution of source code, but most Open Source advocates consider the ability to collaborate and contribute – what Wikipedia calls “Commons-based peer production” – a critical aspect of Open Source. For example, with respect to the announcement that ASP.NET MVC would be released under the Ms-PL, Keith Elder tweeted:

“Giving someone your source code is NOT open source. So although Asp.Net MVC’s source code is out there for download, not open source.”

image

In what now seems like a huge coincidence, Keith and his co-host Chris “Woody” Woodruff interviewed me later that day for their podcast Deep Fried Bytes. As you might imagine, while we started with talking about IronPython, we eventually started discussing open source at Microsoft more generally. It was a great conversation, and we found lots of common ground.

Personally, I think Microsoft is making small steps in the right direction when it comes to Open Source. Not only have some high profile Microsoft projects go Open Source like ASP.NET MVC and MEF, but we’ve even started taking baby steps for including external intellectual property. Releasing ASP.NET MVC under Ms-PL is a big deal, but I think including jQuery “in the box” is a much, much bigger deal. It remains to be seen if it’s a one-time-only deal or if it’s a new trend inside Microsoft.

Obviously, I hope it’s a trend. Going from “include jQuery in ASP.NET” to “accept community contributions in ASP.NET” seems like a relatively achievable goal.

Now, here’s where I need your help.

I can easily fill three and a half minutes talking about Open Source community collaboration. But since my presentation is about taking contributions from the community, I decided to put my money where my mouth is and crowdsource it:

What is the elevator pitch *you* would make for including community contributions in Microsoft Open Source products?

Leave me a comment, send me an email, tweet it, whatever – I’ll be keeping an eye out for responses. Please remember that I only have three and a half minutes to present, so keep your ideas short and sweet.

Comments:

In the simplest of terms many of the good ideas are overlooked or understated simply because I company is too tied up in maintaining its propriety code and updating it for the community. I have found the biggest enhancements come from the simplest ideas and from those that don't look at the code or products everyday. The biggest point behind open source is the ability to contribute and become a part of the process - empower the user empower the change. Look though-out technologies history and you will see how empowering the user has create vast advancements in technology as a whole. Most of Microsoft's community have had a say in the "direction" of Microsoft products, now you will just give them the stirring wheel and allow them to fix their own car.
In the simplest of terms many of the good ideas are overlooked or understated simply because the company is too tied up in maintaining its propriety code and updating it for the community. I have found the biggest enhancements come from the simplest ideas and from those that don't look at the code or products everyday. The biggest point behind open source is the ability to contribute and become a part of the process - empower the user empower the change. Look thoughout technologies history and you will see how empowering the user has created vast advancements in technology as a whole. Most of Microsoft's community have had a say in the "direction" of Microsoft products, now you will just give them the stirring wheel and allow them to fix their own car. Sorry the post above had some mistakes that I corrected but did not get posted - sorry for the repost.
You may want to listen to the latest Herding Code episode interviewing DotNetNuke co-founder Joe Brinkman (http://herdingcode.com/?p=183). Even though the main topic is about webforms vs asp.net mvc. Towards the end of the show, he did address his experiences and thoughts on maintaining a large-scale open source project. To summarize his ideas around the issues of accepting community contributions in large scale open source projects backed by commercial companies: * Community contributions are generally welcomed, or even begged, when a project is small. * When project grows bigger, the cost and risk of accepting community contributions become prohibitively high. * A community contributor usually doesn't have the big picture of the project in mind when he/she contributes his/her patches. This is really a poor summary (mainly due to my broken English) of the things discussed in the show. So be sure to listen to the original podcast. To make your presentation more interesting than political rallies, I believe it will do more impact if you could focus the presentation on proposing some constructive resolutions to the many known hurdles a commercial company backed open source project faces in accepting community contributions. After all, the Internet doesn't lack blank arguments of urging Microsoft to be more open.
This is not a time to be elegant with words. Push it to them VERY hard. Either Microsft stops being an island, or lose developers to open source, probably forever. It's just that simple. The steps they have taken to date may seem like a big deal to Microsoft, but it's no more a bigger-deal than spitting in the ocean. The entire massive growth of the Internet is due to community involvement, not a single company. Microsoft has defined open source as its enemy. Everybody feels that. Balmer projects that often. So even though high-profile MVC is released, developers know deep down that there's not one ounce of "corporate" passion behind those bits. Let them know that we know that. Let them know we are looking at open source stacks right now.
After 30 years of profit, making (at one point) Bill Gates not only the richest man in America, but also personally owning 40% of the US GDP. I'd say it's time to give back in a big, big way. Not to the stockholders. It's time to go back to grassroots, streamlined, security-minded coding--pure interoperability--where the focus is not on how much profit can be milked out of a proprietary sale of a technology solution, but rather everyone on the same page and working together to solve the issues that IT faces today. No arguments; a good product will make the developer profit from his hard work. It's time to take the venom out of the proprietary code and ensure that all pieces of code written work seamlessly on all platforms. The days of narrow-minded, one-dimensional operating system software should have already been behind us as an IT community. Let's embrace the opportunities we have to collaborate and make software work for our nations, our states, and our cities. The future has been now for over a decade and a half, and yet another development of a new OS is a tired idea. Let's improve the ones we have, all work to make our days go by better, and a sense of pride and honor and integrity will increase the morale of the IT community at-large. KG Network Security Research Analyst Infination Technology Research kevin@infination.com 662.497.2890 http://infination.info/contacts
I recommend reading Pip Coburn's book "The Change Function" But the elevator pitch is simple.. present the change function; i.e. f(perceived crises vs. total perceived pain of adoption) You should clearly state that by reducing the TPPA (which includes more than cost, such as system requirements, fear of control, etc) by releasing under Ms-PL you are more likely to have more user-oriented adoption. And if you can only get one more thing out the door, please put on you slides to release Powershell as Ms-PL for Mono! Thanks, Anthony