Inevitably during the course of writing an application, bugs creep in. And like all good software teams we diligently capture them, along with some priority level. Let's say for the purposes of discussion the priority levels are: trivial, minor, major and critical. Fine. So far, so good. But, as time goes by and bugs get raised and some get fixed, the way in which priorities are determined seems to change. If the entire bug queue does not get cleared out regularly, what was minor before starts to become major because the people raising the bugs know that it will be fixed sooner. The result is that most of the bugs tend to land up in the next-from-top priority level (major) and before long the lower ones (trivial and minor) become little more than an afterthought. The highest priority level (critical) is usually spared as it is those bugs that really are showstoppers that still fill this priority level. It's not uncommon for a new priority level to suddenly be introduced to start separating the major bugs out into the more major and the less major bugs. This sets a dangerous precedent - what's next: 'Even more major?', 'Almost critical?' Aargh..
This seems to be a fairly common problem, seen in many organisations, on teams of varying sizes. As I see it, some of the root causes are:
- Letting the bug queue grow too big
- Not defining exactly what is meant by each priority level
- Having too many stakeholders. Whose priority is more important?
- Complexity or difficulty in fixing a bug are not interchangeable with priority - just because a bug has a priority level of trivial it doesn't mean it will be quick to fix; and vice-versa.
Posted Wed 21 May 2008 by Michael Patricios