Does it meet the bar?

When the team moved up to Microsoft from Connectix one thing that was quickly evident was that there were a number of ‘cultural’ differences between the two companies.  This was highlighted by the fact that when we started the entire program management and development teams were from Connectix while the majority of the test team was from Microsoft.  We have spent a lot of time trying to resolve the differences and want to end up with the ‘best from both worlds’ – however we still have a number of areas that need work 🙂

One ‘Microsoftism’ that I have enjoyed having as a program manager is the concept of a ‘bug bar’.  This is a list of requirements that a bug must meet in order to be fixed in a milestone or release.  Examples for a service pack would include things like ‘Customer reported problems’, ‘Application crashes’ or ‘Data loss bugs’.  Then as bugs come in during the development cycle they are assessed against the ‘bar’ and a decision is made to fix the bug or to postpone it to a future release.

This is invaluable for a number of reasons.  Firstly, it helps to ensure a consistent quality approach for a release as it stops us from ignoring major bugs, and from wasting time on trivial issues.  Secondly, it helps to be able to give a precise answer as to why a certain bug did not get fixed in a given release.  Finally, it is great to be able to review the fixed and postponed bugs before shipping a product and be confident that the right changes have been made to the product.

However the thing that sticks in my mind about the ‘bug bar’ is this:

At Microsoft there are regular bug triage meetings where bugs are reviewed and assigned to an appropriate person.  From time to time a contentious bug will be reported – where people are divided as to whether this bug should be fixed, and if it should be fixed how it should be fixed, and what the potential impact of the fix is.  Invariably a minute or two into the discussion someone will ask ‘Does it meet the bar?’ Answering this question will resolve all debate.  If it meets the bar it should be fixed.  If it does not meet the bar we will get it next time.