The questions Microsoft employees keep asking about Open Source.

Almost two months ago OSDir.com interviewed me about the Windows Installer XML (WiX) toolset.  It was my first interview ever and I learned something interesting.  As the interviewee there is a very good chance you will not get to talk about the things you think are interesting.  That is, of course, unless you ignore the questions being asked and that's not generally considered polite.

In my case, the interviewer was obviously looking for a story where I was some radical agent that snuck the source code out the firewall in the depth of the night without anyone noticing... or something like that.  More than once, I answered a question with "See my above answer" because I had already said, "Yes, my managers knew what was going on."  Seriously, I had no intentions of getting fired over some tool that I work on in my free time.

Anyway, as I mentioned in the interview other Microsoft employees have asked questions about releasing code as Open Source projects.  Recently, an employee sent me several questions in an email (just like my interview for OSDir.com) that I thought made great interview questions.  So, rather than answer his email privately, I decided to post the questions and my answers here so other Microsoft employees can read them.

Q: Why did the WiX project choose SourceForge (over something like GotDotNet.com)?

I answered this question in the previous interview so I'll repeat myself here and add a bit of detail I didn't have originally.  SourceForge has many tools and applications for developers building other tools and applications for the Windows platform. The Windows Installer XML toolset is another one of those tools for Windows developers. When the CPL was chosen as the license for toolset, it became possible for us to post WiX on SourceForge where the toolset would be visible to a large number of developers.  Essentially, I believed that those developers checking out GotDotNet.com were likely to also be checking out SourceForge so the WiX toolset would be found either way.

A second benefit of SourceForge that wasn't immediately apparent but saved me a lot of attempts at explanations later was that SourceForge only accepts projects that use an approved OSS license.  The fact that WiX toolset was being hosted on SourceForge meant that the project must be using an approved OSS license.  I remember seeing comments somewhere (probably Slashdot) where someone questioned whether the WiX toolset code was really truly released under an OSS license.  Several people silenced such questions by correctly noting that SourceForge only hosts projects under a true OSS license.  That helped reduce some of the "Fear, Uncertainty, and Doubt" being spread about Microsoft's first official foray into Open Source.

Q: You have mentioned that Microsoft employees should access the internal drops of the toolset instead of downloading the bits from SourceForge. Why?

Participating in any Open Source project as a Microsoft employee is still in its infancy.  Even Open Source projects that originated in Microsoft have interesting legal complications that have not been well tested, yet.  My intention is to reduce the chances that a Microsoft employee inadvertently makes a mistake with severe legal repercussions.  The last thing I want to have happen is an employee lose his or her job because I wasn't clear how to interact with the WiX toolset in his or her day to day job.

In particular, I am the gatekeeper that carefully reviews all changes accepted into Microsoft from SourceForge.  If there is anything questionable in a change then I am responsible for ensuring the change does not get into Microsoft without appropriate review from legal.  For example, no change can be accepted into the WiX toolset until the developer of the change signs the assignment agreement (see my previous blog entry for more information).  If a Microsoft employee goes straight to SourceForge then he or she is bypassing the "safety check" I am charged with providing.  I take my responsibilities very seriously.

Now, to head off any conspiracy theories, I want to be very clear that all changes made to the Windows Installer XML toolset inside Microsoft do flow out to SourceForge.  If you watch the project closely, you'll notice that I push any changes made inside Microsoft to the toolset up to SourceForge on Thursdays.  For "outgoing changes" (Microsoft to SourceForge) I try to ensure that the WiX toolset operates correctly before committing.  For "incoming changes" (SourceForge to Microsoft) I review all submissions and ensure they appear "good".

Q: How did you find the internal process for creating a SourceForge project (i.e. did you get approval from legal)?

I definitely did get approval from legal before releasing the WiX toolset to SourceForge.  As I mentioned in my blog entry about the release of the WiX toolset I actually started with legal and they pointed me over to Stephen Walli.  Stephen had been looking for a project to release as Open Source from Microsoft and knew exactly what had to be done to get the project released.  Overall, the process was extremely simple but did take longer than I anticipated because there were quite a few people that had to sign off that this was a "good thing" to do.

My understanding is that the process is now faster.  For example, the WTL project was released to SourceForge only a month or so after the WiX toolset.  However, even if it takes four or five months (like WiX did after I was in contact with Stephen) the process is really quite simple.

The hard part is building the community once you release.

Q: What has been the internal and external reaction for your project's appearance on SourceForge?

From Microsoft employees I have received nothing but positive comments and a desire to understand more.  I received quite a bit of email from people that basically said, "I read on Slashdot about what you did.  That's cool.  Good job."  Throughout the day of the release people would send email to me pointing out all the articles talking about the WiX toolset release.  That was incredibly encouraging because the initial external response was this amazing onslaught of "You are a @#$@% horrible person!  Microsoft is @#$@% evil!  I $@#%@ hate you!"  I am not exaggerating.  Lots of messages filled with foul language were sent to me via my blog early in the morning on Monday, April 5th.

As the day progressed, more rational comments started showing up and some people I've never interacted with even started to defend the release of the WiX toolset.  I was seriously overwhelmed for the first couple days since there was so much attention to the project and a lot of the attention was trying to spin what I was doing as "evil".  That was very disenchanting since I was really just trying to make life better for setup developers.

Q: Would you do it again?

Absolutely, for two reasons.  First, I have believed for years that Microsoft needed to be mature in its dealings with the Open Source community.  I ran the Windows Installer XML project as an internal Open Source project to provide an internal demonstration how Open Source can work.  I never would have passed up an opportunity to improve Microsoft's dealing with Open Source.  Second, I wanted the WiX toolset out there to make developers' lives better.  Just the other day, I found this quote in a blog entry "Amazingly, for an installer builder, WiX is turning out to be almost entirely pleasant."  Statements like that make the release completely worth it for me.

Q: If someone else internally wanted to create something as a SourceForge project, would you recommend it?

If the project was appropriate to be Open Source then I would definitely recommend releasing as Open Source on SourceForge.  Note I am not someone who believes all software should be free and that all source code should be open (I don't understand the economics of it).  However I do believe there are many opportunities for projects to be released as Open Source like WiX and WTL.

If you are a Microsoft employee and have any questions, feel free to contact me.  If I can't answer the question, I can point you to someone who can.