Thirteen years at Microsoft.

I'm on paternity leave currently. I hadn't visited Microsoft campus for three weeks now (one week left on leave) until tonight. Tonight, I snuck in under the veil of darkness to drop off 13 lbs. of M&Ms. One pound for each year I've been at Microsoft. I realized now would be a good time to reflect over the last couple years since last year everything I was working on was top secret.


Back at the end of 2009, I moved to Visual Studio. My first task was actually to go over and work with the Windows team. There was a long running joke through most of 2010 that I should move my office over to the Windows buildings since I was in so many meetings with them.

Those were fun days when pretty much anything was possible. The result of that work is mostly captured in a blog entry on Building Windows 8 titled "Delivering reliable and trustworthy Metro style apps". In fact, there is a screenshot of the Visual Studio manifest designer which is a direct result of the conversations with Windows.

Sometime near the end of 2010, the work shifted from "design" to "implementation". Since I wasn't slated to directly involved in the implementation for these features, I looked around for the next problem to tackle.

I didn't have to look far.


Sometime during 2010, it was decided that Visual Studio would ship an Express SKU (Bundle in WiX toolset terminology) targeting Windows 8. In order to learn the specifics of Visual Studio setup build system, I jumped into the creation of what would become the "Visual Studio 2012 Express for Windows 8". I learned a lot and found lot that could be improved.

That was early in 2011 and over the summer I spent a lot of time trying to make the setup build process smoother, the patch system easier to use and generally make everything setup related run better in Visual Studio. A lot of that turned into improvements in WiX v3.6. For example, signing packages was completely reworked and is far easier to use in WiX now.

Speaking of improvements.


This year has been dedicated to finishing. I've been focused on fixing bugs in Burn based on feedback from Visual Studio telemetry telling us what is and is not working. It really is fantastic to have real world data proving out a v1 feature like Burn in the WiX toolset. Burn may need a few more features in v3.7 and beyond but what is there in v3.6 is solid.

In addition to improving reliability, I was put on a setup performance push. We were given a goal to improve setup performance by 30%. That essentially meant cutting 10 minutes out of an ~30 minute install where all the bits were local. How do you do that? 5 seconds at a time. Yes, we were hunting anything that took 5 seconds or more.

The result you can find in Jason Zander's "Visual Studio 2012 RC announcement":

We've made some pretty significant investments in improving the setup experience in Visual Studio 2012 RC. Many of you have already seen the streamlined user interface in the beta. From beta to RC, we reduced the installation time by an additional 20%!

So, we didn't find the last 10% but 20% is a marked improvement. Unfortunately, or fortunately depending how you look at it, we found some major performance bugs in Beta upgrade performance so upgrading from  Beta to RC is much slower. However, with all the bugs fixed, RC to RTM upgrade should be pretty snappy and if you clean install RTM I hope you think to yourself, "This is the fastest VS install ever!"

Oh, and maybe you've heard of VSUpdate? We spent a lot of time working out how to do that well. The VSUpdate scenario shows how "related bundles" in Burn really rock (but that is a story for another blog entry).

So that's a look back at the last few years. Lucky number 13 is behind me. I wonder what comes next. Until I figure that out, keep coding. You know I am!

FireGiant provides dedicated support for the WiX toolset. Ever wish you could get your WiX questions answered immediately with the technical detail that you find in the blog posts here? You can with FireGiant!

Send a comment

Something went wrong while submitting your comment. You can try again.

Thank you for sending your comment.