When I was at Microsoft I had an idea that I thought would help Open Source projects: prodding employees to ask for a percentage of their time (aka "commitments") to put towards an Open Source project. There were some issues to work out (mostly legal) - but I found an ally in DPE and it almost took off. Unfortunately I left (and so did he) and the idea died. But I think it's a good one - and it doesn't have to belong to Microsoft alone.
We Make the Difference
I wrote a post on Tumblr that came out all kinds of wrong. I think a lot of people got what I was after - but I was admittedly fatigued and took liberties with some colorful prose that was taken the wrong way. In short - the post was about Nupack, the Microsoft package manager, and what the hell is wrong with us, the .NET community, that we had to wait for 7 years for Microsoft to make it for us.
This post isn't about Nupack - I have an idea that I think will work. And I'm going to lay it at the feet of all the companies out there making money off the .NET ecosystem. My goal wasn't to write a negative post with the Nupack affair - I was hoping to push a bit to invigorate the ecosystem.
Let Your Employees Spend Part of Their Time on Open Source
At Microsoft the idea was simple: ask for 5-10% of your overall time to go towards an Open Source project. Pick the project that fits your goals, and jump in. If the ecosystem thrives, business thrives. It's a simple equation.
Here's an example: in 2005 I was working with the old Commerce Starter Kit for ASP.NET 2.0. I'll be the first to admit that I'm not the sharpest donut in the box when it comes to nice clean code, and .NET 2.0 was very new to me. J Sawyer (Microsoft evangelist) sent me a note and asked if he could help.
He went through the code base and ever-so-politely pointed out the many areas where things could improve. It was such a great experience - for everyone involved. The app was 100 times cleaner, I learned a ton, and the people who used the tool learned a ton.
As a bit of an aside - it was from J's inspiration that I built SubSonic. I saw what he was doing with various approaches to data access - and I mixed that with a demo that I read from Fritz Onion where he did some groovy stuff with the BuildProvider. I can say that, beyond all doubt, SubSonic would not have happened if J wouldn't have helped me.
Bad For Business?
There's a lot of people who stare at the bottom line of their business and say "if we support product X, that's free, we're undercutting our customer base". Sure - if you sell used cars and it's 1975. The deal is that a healthy marketplace means business for all.
PeepCode. Some might look at PeepCode as a direct competitor of
Tekpub's and I suppose if you're staring at a balance sheet that you could make that case. I see it the other way around: Android is successful in large part because Apple showed people what a smartphone could be, if done with care and intelligence. It's a large market - the more it expands with players like Android, iPhone, and now Windows Phone 7 - well the more business there is for all.
It's not a zero-sum game. Creating a market for services is what it's about - expand the market first, then compete in a healthy way with others. With that in mind - I promote PeepCode as much as I can - if I can expose people to a better way to learn techology, through PeepCode - hooray! Just because they go to PeepCode doesn't mean they won't come to me too (and vise-versa). Geoffrey is a friend of mine and I do what I can to expose the awesomeness of his productions
including his amazing Vim Series
If you believe that a free product will undermine your business -
you should shut your doors.
You're charging for the value you provide above and beyond what's out there - suffocating free software to make a dime makes you evil - and doing evil software went out a number of years back.
Instead - embrace Open Source. Pull people into the platform. Make it relevant and exciting, and make your product a logical progression from "free". It's simple math.
Money Doesn't Help Open Source
Atwood discovered this,
as a result of being awesome and trying to help:>I was crushingly disappointed to find out the $5,000 in grant money has been sitting in the bank for the last four months, totally unused. That's painful to hear, possibly the most painful of all outcomes. Why did we bother doing this if nothing changes?
Most people who throw money at a problem run up against the same problem that the US government has, for many years:
Throwing money at a problem creates yet another problem.
Instead of money, these projects need help. They need clean up, improvements, custodial duty. They need documentation, they need love. Perhaps some beer for the core team.
They need your time.
Adopt An Open Source Project and Get Paid for It
No one can write Microsoft a letter (or Infragistics, DevExpress, JanRain, Authorize.NET, TechSmith, or JetBrains) and say "HEY MAN - devote some time will ya?" Open Source is not an institutional kind of thing, at least in my mind.
It's software by the people, for the people. You're people. You need to take up the mantle, or settle for commercial crapware that you know you can make better yourself.
So - Microsoft DPE (Developer Platform Evangelists) - here's a challenge to you as individuals:
Ask your manager for 5% commitment to help a project of your choice.
You're not on a product team, and as such you're somewhat more clear of the "taint" issue (check with your manager/LCA to be sure).
If you're a dev working for a company that builds commercial software for .NET: ask your boss if you can get paid to help out - then put it on the company blog.
It doesn't have to be something grand - just show up and patch some bugs. Show the core team some new tricks. Answer some forum threads. I know many companies already do this - how bout we have some more?
It's Your Community
Well - why are you still reading? Get to it!