I stumbled upon a pretty interesting Eweek article while I was reading some of the internet coverage of the Visual Studio 2005 and .NET Framework 2.0 beta 2 release that happened yesterday evening. The author of the article appears to have worked with some Microsoft folks while researching and writing the article, and based on the first few paragraphs it sounds like he attended at least one of the shiproom meetings leading up to the VS 2005 beta 2 release. When I was on the VS and .NET Framework setup team, I attended shiproom towards the end of major shipping milestones for the VS 2002/.NET 1.0 and VS 2003/.NET 1.1 releases, and I can say that the impressions in the article are pretty accurate. The shiproom meetings are not populated exclusively by developers as the article suggests. There are representatives from program management, test, localization, user assistance, and other disciplines. Actually I found that developers are sort of in the minority at these meetings.
Most of the times when I attended shiproom, my role was to present the technical details behind the bugs in our setup features that we wanted to fix before the products shipped. This can be challenging because you have to be able to rapidly get to the point and bring 50 people up to speed who have no knowledge of your features and explain what the defect is, why it was not found until now, what the customer impact is of fixing it (or not fixing it), what the fix is (sometimes down to the exact lines of code, particularly as it gets closer to the final day before sign-off), and the risk that making the fix presents in terms of causing regressions in other known working code. Not only this, but you have to be prepared for basically any random question that might come up from anybody in the room while you explain any of the above. And the tricky part of this is that you need to focus on keeping the focus of the conversation headed in the right direction because Microsoft folks seem to have a tendency to “rat-hole” or drill down really deeply to discuss a sub-point that is really minor in the overall scope of the issue being discussed.
From my experience in shiproom, I found that it became pretty easy to pick out the bugs that the people presenting them did not really understand well. It also became pretty easy to pick out the people who went into too much depth and quickly lost track of the bigger picture and couldn’t explain customer impact to justify fixing a bug. This tended to happen more to developers than other disciplines because they spend a lot of their time in the details of the code rather than looking at end-to-end customer scenarios, but everyone was susceptible, particularly those new to presenting at shiproom).
The other interesting dynamic that I saw emerge in shiproom was that it appeared to me that achieving a leadership role in the meetings worked as a kind of meritocracy. Basically, if you cared enough to show up regularly, and then showed good insights in the questions you asked or opinions you offered, others in the room would recognize this and start looking to you to step up and continue to offer opinions and help determine whether to accept or reject bug fixes. Ultimately, there always needs to be a “moderator” (in the words of the author of the article) because sometimes discussions will get particularly heated or hopelessly off-track or folks just won’t agree on an issue and the buck has to stop somewhere. But it is really cool to see that individuals really can make a difference in the overall shipping process and it is also really cool to see that not just anyone can, but those that do really earn that privilege.
Of course, all of the above is just my impression of the process and it may be somewhat different for VS 2005 since I haven’t been in that group in a while. It also probably varies somewhat from product to product. But I thought it might be interesting for folks out there to see a bit of detail about how the process works.
There is also a blog that the Developer Division Release Team maintains that might be interesting for more insights into the process of shipping VS and the .NET Framework. The lead of that team is the “moderator” of shiproom and I’ve worked closely with most of the folks on that team.