Friday, January 11, 2013

WiX: Why I Contributed for 7 years

Rob Mensching recently posted a call out to people who may be interested in joining him as a member of the 5th generation of WiX Toolset developers. As a big part of both the 3rd and 4th generations, I thought I'd share a few things about why I contributed to the project for so long. Maybe some of these reasons will resonate with you and WiX is the right fit for you. In order to do that, I'll start from the beginning...

I remember the first time I met Rob and the other WiX developers. I was a new developer at Microsoft basically fresh out of college. I was trying to solve a deployment problem for Visual Studio and my boss and I at the time had some ideas about how to solve it but we needed some changes to WiX. I decided that I should go meet with the WiX guys and bounce the ideas off of them and they held "WiX night" every Thursday night in a conference room at Microsoft.  I went to the meeting where everyone was sitting around writing code and having discussions ranging from software design to what they were up to in their personal lives. I could tell, they all enjoyed working together. They said hi to me and welcomed me to the meeting and I sat down.

After about 30 minutes, Rob turned to me and said, "So what brings you here?". I told him that I was working on Visual Studio Setup and I had a request for a feature in WiX. I wont go into the details of what the feature was even though I vividly remember it. I described the feature to them and they all came back at me saying "Absolutely NOT!". "That is the wrong way to solve that problem.", they said in a good sort of way :). They quickly started diving into the details of why I wanted the feature, what was the problem I was trying to solve and they were all very interested in helping me solve the problem. As we worked through it, we ended up landing on a good, simple, and far more generic solution to the problem. After we came up with a design, they asked me if I wanted to try and code up this new feature. After seeing the investment they made in my problem and having so much fun designing the feature, I couldn't resist and volunteered to do it.

I started going to WiX night every week to work on the feature. I loved the experience of working closely with other developers where I could bounce ideas off of them, get advice, get real time code reviews, and crack some jokes while we were at it. Over the next few weeks I felt like friends with the people there and started to get a sense for how impactful the WiX Toolset was. After my first feature, Rob came up to me and asked me what kind of experience I was looking to get out of being a part of WiX. He then helped figure out which part of the toolset I could start to learn in more depth to gain that experience. I started to feel really invested in the project as a whole and I felt like the WiX team was invested in me as well.

I learned a ton of core coding and design skills while working on WiX. The principle of "Always do the right thing" shone through in every change to the project. There were very clear coding guidelines and standards that helped keep the codebase clean and maintainable. Designs were always well thought through with the bigger picture in mind and not just solving the problem at hand as quickly as possible. There is a community built around WiX and I loved having the opportunity to help others use the tools I wrote and learned a lot about how to work in an open source project.

Beyond all those things that I got out of it from the project side. Rob has been a great coworker, mentor, and friend. I know that's not going to change. If I never would have gone to WiX that first night, I know there are many things I would not have learned and there are many people I may have never met. What happened to me by being a part of the 3rd and 4th generations of WiX Toolset developers was far more than just contributing code to an open source project. I grew in ways I would have never expected, met so many great people, and I built skills that I wouldn't have gotten elsewhere as easily that helped better my career.

I'd like to thank Rob and all the other developers that I've worked with on the project over the years. It was a ton of fun and I learned a lot.

I would encourage anyone reading this that feels that they'd like to join a great community, work with and learn from some great devs, and wants to experience a well run open source project from the inside, to contact Rob on his blog or join wix-devs as rob mentions in his latest post.

1 comment:

  1. Wow. This was inspiring and it's my dream, really it is. This was for me the parts that touch me profoundly. I almost envy you. I'm not a programmer (I have all the teory do) but my work is deploying software products, but I work alone, and it's almost frustrating do a great job (I'm not humble) with that passion, that good, simple, clean and generic solution, with method, and the pride in helping other making use... wonderful feeling. Better than this, only Ghandi :)

    I use Flexera AdminStudio and Inno Setup but I'm trying to use wix. I'm following the project for long, but with other priorities. I feel that I know Rob, but never comment anything, but your post... I end it with the parts that touch me the most and asking sorrt for my English. Hope that it makes sense.

    PS- I think that we all begin with "Absolutely NOT!" but we love helping :) and Love that people invest also in the solution.

    [...]"WiX night" every Thursday night[...] everyone was sitting around writing code and having discussions ranging from software design to what they were up to in their personal lives. [...] they all enjoyed working together. They said hi to me and welcomed me [...] "So what brings you here?". [...] they all came back at me saying "Absolutely NOT!". "That is the wrong way to solve that problem."[...] diving into the details of why I wanted the feature, what was the problem I was trying to solve and they were all very interested in helping me solve the problem.[...] we ended up landing on a good, simple, and far more generic solution to the problem. [...]they asked me if I wanted to try and code up this new feature. [...] I loved the experience of working closely with other developers where I could bounce ideas off of them, get advice, get real time code reviews, and crack some jokes while we were at it. [...] I started to feel really invested in the project as a whole and I felt like the WiX team was invested in me as well.


    The principle of "Always do the right thing"[...] very clear coding guidelines and standards [...] Designs were always well thought through with the bigger picture in mind and not just solving the problem at hand as quickly as possible.[...] I loved having the opportunity to help others use the tools I wrote [...]

    ReplyDelete