Scott Guthrie has written an excellent post about the ASP.NET 2.0 development process and the steps to Beta 2 and a 'go live' license. This is an interesting post on two levels. First, I love learning about how Microsoft builds software (I love the game of shipping of software and finding out ways to improve it). Second, I think ASP.NET is an incredible product and am excited about being able to 'use it anger' (as they say in the UK) soon.
Here are my notes on the key concepts from Scott's post. It's interesting to compare the ASP.NET 2.0 process to Hervey's description of the WSE 2.0 process.
Zero Bug Bounce (ZBB). A point where there are no open bugs for a particular milestone that are older than 48 hours. The point is "to push teams to sustain a high rate of bug fixing over a period of time". The present goals is to avoid pushing any bugs past Beta 2, meaning that there will be a true zero bugs bounce occurring. There is a lot more information on the ZBB concept: Eric Gunnerson provides a definition, Ron from the Visual C++ team talks about the three types of bounce, Larry Osterman a long-term Microosftie talks about it in the context of Zero Defects and it's also part of the Microsoft Solutions Framework (MSF).
Regression Rates. For the managed code parts of ASP.NET the 'regression rate is around 4% -- meaning approximately 1 in 20 fixes introduces a new bug in the product'
Bug Rates. The test team opened 514 bugs last week, and the dev team closed 648 bugs.
Automated Testing. The team has 102,000 test cases(!). Automated FxCop runs are done over the product. There are two levels of check in test suites. There are base-level unit test coverage of the product prior to checkin that have a block level code coverage of around 64% and take several hours to run. More extensive tests are run each night and take around 12 hours to run.
Checkin process. All code is peer-reviewed (even for senior devs).
Security push. After the ZBB returns to zero there is:
'an in-depth multi-week security analysis of the code in the product … The goal at the end is to feel confident that the product is solid and ready to be attacked by thousands of hackers out there while running on the Internet.'
Tell and Ask Mode
In Tell mode any team is allowed to fix whichever bug they wish, but they have to be able to stand up and justify their decision to the 'central division ship room'. This helps slow the rate of checkins, which reduces the chance of regression issues, helping the quality of the code base increase.
Ask mode means that the central division ship room must give permission to make a change. During this mode, the stress testing can continue. The low rate of checkins makes it easier to identify the source of stress-test failures.
Go Live License. Scott mentions that Beta 2 will provide the first 'go live' license. I can't wait for this to happen.
Another thing I think is admirable is that the ASP.NET 2.0 release seems pretty close to what Scott mentioned back in January as Chris Garty clarified off my notes from Scott's presentation. Although they have had to cut and descope some features (See this article from Jonathan Goodyear, fellow RD) the team look like they've done pretty well sticking to schedule.