As I noted in my previous blog entry, there is a lot of change in my life right now. Today Derek Cicerone announced that he is retiring from the WiX community. What Derek left out is that today was also his last day at Microsoft after four years. He leaves this weekend for a startup in Silicon Valley.
I've known about Derek's plans for about two weeks but it still hasn't sunk in yet. You see, what most people don't realize is that Derek was instrumental in making the WiX toolset so successful. WiX v2 core toolset would not be nearly as stable as it is now. More importantly, WiX v3 would not exist without Derek's efforts. For example, let's say there are about ten to fifteen major improvements in the v3 core toolset over v2. I only wrote one of them.
I want to tell the story of how Derek came to be so important to the WiX toolset but before I do there is one thing I want you to keep in mind. Prior to his decision to leave, I actually considered passing on leadership of the WiX toolset to Derek.
But let's go back to September, 2002. I remember the first time I met Derek Cicerone. I was in Reid Gustin's office and we were discussing some portion of Courier (the datacenter deployment system used by Office Online). The new hire that was to share the office with Reid (until Reid's internship ended and he went back to Stanford late September) showed up in the middle of our discussion.
The new developer and his lead were discussing the project he was going to be working on. Reid and I weren't trying to listen in but at some point the new hire asked, "So what is all this programmed in?" The lead responded, "Pretty much everything in Office is C/C++." The new hire said, "Oh, I don't like C++." There was a pause, while Reid and I looked at each trying not to snicker. Finally, the lead asked, "So what language do you like?" The new hire responded, "Oh, I like Java." I don't know if either Reid or I actually laughed out loud then but we both knew that the new developer was definitely not starting on the right foot. Derek Cicerone made quite the impression on his first day at Microsoft.
It was about a year later that Scott "K" Kurtzeborn called me up saying that Office was thinking seriously revamping their custom MSI build system. K wanted me to talk to the person in charge of the design process because K thought WiX might be a good replacement. I had just joined the SDM team at that time and was amused that I had to leave the Office team for Office to consider switching to the WiX toolset. You can imagine how much more amused I was when K showed up for lunch with none other than Derek Cicerone.
Over the next year, Derek would come into his own. First, he was instrumental in convincing his management in Office to take a risk on the newly rewritten WiX v2 code base. Succeeding at that, Derek dove into the space, finding bugs, then helping fix bugs, then actively participating in new feature design and development to grow the WiX toolset to meet the needs of Office. Finally, Derek became an active member of the community by answering questions and addressing bugs and feature requests.
Back in the early days of 2004, Reid (who had joined the SDM team out of Stanford), Derek, K, Robert Flaming and I met at my house every Tuesday night to work on the WiX toolset. We covered huge amounts of ground in those days. It was so much fun.
Derek became the champion for consistency in the code. He went through numerous sweeps through the WiX v2 code base cleaning up blocks of code, trying to simplify everything, and fixing bugs he found along the way. Derek also created the unit test infrastructure we use to test the WiX toolset. Finally, Derek became a co-collaborator on new designs and features for the WiX toolset.
The core WiX development team spent 2004 and most of 2005 simply fixing bugs in the WiX v2 code base, striving for stability in the core toolset. In the summer of 2005, Derek wanted to start development on some of the ideas we had tossed around over the last couple years but didn't want to add to WiX v2 for fear of destabilizing the code base. Finally, in October of 2005, we created WiX v3 and Derek simply took off. A year later, I am amazed at how much nicer WiX v3 is to use and how very powerful the new features make it.
Also in 2005, the Visual Studio team approached the core WiX development team about replacing their custom MSI build system with the WiX toolset. Derek was at every meeting with me. Together we answered their questions, discussed timelines and feature requests and ultimately convinced the Visual Studio team to bet on WiX v3 for their next release of Visual Studio. Without Derek's experiences integrating WiX into Office, I'm not sure we could have convinced Visual Studio to pick up the WiX toolset.
Then in 2006, Derek did even more of the work to get the SQL Server team moved to the WiX v3 toolset. Thanks to Derek's efforts, I expect by late 2007 the standard MSI creation technology at Microsoft will be the WiX v3 toolset. So, I hope you can see now why I considered handing over leadership responsibility of the WiX toolset to Derek Cicerone. He had certainly earned it, had he wanted it...
However, Derek and I never actually had that conversation because Derek decided it was time for him to move on to very different problems than what Microsoft and the WiX toolset solved. After spending these last three years getting to know Derek, I'm certain this change is a great move for him. In fact when he told me about the opportunity, I could only encourage him to go for it wholeheartedly.
This is a bittersweet day for me. The WiX community has lost a great contributor and leader in Derek. However, he has found something that aligns amazingly well with his interests. I wish him the best of luck in it all and look forward to seeing him again November 4th, 2006.