Even a chimp can write code

Thursday, August 24, 2006

Achievement unlocked

It is the little things in life that matter much. Yesterday, I successfully argued for a bug fix in the Windows Shiproom.

This was my first time in that august place and at first I was a bit overwhelmed. At 3pm I entered this large conference room which was already packed to the rafters and the meeting had just begun. At the center of the room was a large table with what seemed like 18 people - an assortment of architects, project managers etc. - seated around. No, Brian Valentine wasn't there although that'd have been the icing on the cake. I've never had the pleasure of arguing with him. Around the fringes of the room were about 10-12 more chairs, all taken. There were people standing and leaning against walls; others were seated, with some squatting, and still others like me with their feet stretched forward, getting in the way of people bustling into the room. If there was one common thread tying everybody in this room, it was that everybody had an opinion and was willing to let you have it. Good, I like it when they're aggressive. It tells you they care about what goes in and what stays out.

One wall was lined with clocks showing the current time in places around the world. There was a large map of the world on one side. None of these implements were used in the time I was there, but like in a tasteful B-movie, I thought they added to the ambience and elevated the importance of the place. An adjacent wall had a poster recording the "Longhorn build release counter" which listed the number of consecutive dates that a build has been released from the main Windows branch, compared to the all time record. The wall opposite the clocks was lined with several posters, each with a classic cop-out or explanation like "Oh, its only a one line change in the [manifest | XML file]" that the Shiproom has heard one too many times.

The Windows Shiproom is the final arena where your Windows bugs are approved or rejected. In the typical development cycle, your bugs do not get escalated to this level. But when the product - in this case Windows Vista - goes to escrow, it is effectively under lockdown, and only high value changes are considered by feature/component teams and brought up to the Windows Shiproom. Once these bugs are fixed and exhaustively tested, one goes to through the various Shiprooms for approval. In the case of this bug in question, that journey involved the feature team triage, dev changes and test work, the Avalon Shiproom, the .NET Framework (WinFX) Shiproom and culminated with the Windows Shiproom.

Aside from procedural questions and quality gates questions, one is asked for a problem description as an end-user scenario, the nature of the bug, the nature of the fix, the risk of the fix, the risk of not taking the fix, the amount and quality of testing that went in, etc. Most times at the local Shiproom, you are asked what other such problems could/will occur and what you're doing to prevent them. Because the playing fields and system interactions are so different between the feature level, the component level and the OS level, different sets of experts need to scrutinize the fix and give approval. This is especially important when the product is locked down and considered stable. Fixes that pose lowest risk to the product and highest value to customers are the ones that survive, while the others die by the wayside, at the feature team triage or local Shiproom levels. My bug came for consideration toward the end of the meeting and a couple minutes later the Shiproom gave its approval.

This couple hours was an important experience for me and taught me a great deal about shipping products. The motivations behind your decisions are different based on where you are in the product's development cycle. You do everything you can to make sure your customers have the best possibile experience. Only, it is manifested in different ways at different times. During active development, we go the extra mile to make sure a fix goes in. But when the product is stable and is ready to ship, one needs to take a measured look at what impact one's fix can have on all of the hard work that went in over the years. You're still being true to your customers. You're just showing it differently.

If life were an XBOX 360 game, I'd see the little notification message that says "nerddawg: Achievement unlocked".



Tags: , , , , , ,

Email this | Bookmark this

5 Comments:

  • Awesome writing, Ashish. Most interesting post I've read of yours yet. Kept me hooked and interested and I work here; imagine how much more interesting this is to people that don't work on Windows Vista.

    By Anonymous Anonymous, at August 24, 2006 at 10:52 AM  

  • You set the scene well, but I would have liked to know more about details of your particular issue. Was the downside of not fixing it so bad that it _HAD_ to be fixed?

    By Anonymous Anonymous, at August 25, 2006 at 4:02 PM  

  • Jeff: thanks, bud. You're a born writer. Others like me have to work at it. Not joking.

    Joseph: sorry I spoke only in general terms about the bug because I'd rather err on the side of caution (because the release is not out the door yet, so no implicit guarantees that this fix has really "made it"). I can however say that the bug was seen as an adoption blocker for a customer who wanted to go live with a beta based on Vista RC1. The bug would have been fixed for RTM anyway but I needed to make the case with Windows Shiproom that it was serious enough to warrant a check-in into RC1. Once Vista RC1 is out, I'll feel more comfortable disclosing details.

    By Blogger Ashish Shetty, at August 26, 2006 at 5:08 PM  

  • Somebody should digg this.

    By Anonymous Anonymous, at September 3, 2006 at 8:59 PM  

  • I linked to your article from the JavaLobby newsletter. I was expecting to see something more detailed about the Microsoft process. What you gave was somewhat insightful, but nothing more than one would expect from any company that is serious about shipping software.

    By Anonymous Anonymous, at October 4, 2006 at 11:15 AM  

Post a Comment | Home | Inference: my personal blog