The Dysfunctional State of Bug Tracking

The first indication that something is wrong is the enormity of the list of Bug/Issue trackers on wikipedia. Next, the rarity of published (and known) best practices for bug reporting/tracking. Finally, there seems to be little consensus about the work flow around bug management.

In most organizations, bug and issue tracking knowledge is picked up anecdotally through the culture of an organization. The plethora of available software to track bugs with is evidence that the practices are so varied that no system can be used ubiquitously.

Before continuing, I want to address two things. First, I've never liked the word "workflow". There's something, middle-management style, over-complicating about the term. I can't put my finger on it but, I know I don't like it. Next, I am in no way arguing for one tool and one process for everyone to use to manage bugs. I think diversity, in tools and process can make things better for all.

Practices and Workflows

Currently, the only best practices, to be found, center around bug reporting. Most bug trackers are selected on an ad-hoc basis.

Bug management practices (workflows) tend to become centered around the bug tracking tool (it should be the other way around). When this is not the case, the workflow used is based on the culture around the organization or project.

Shouldn't we design the workflow based on the development process used? Should a waterfall project used the same bug tracking techniques as a Scrum project? It seems to me, when we develop a development practice, bug management needs to be made a part of the process from the beginning. Everyone knows that maintenance is the largest part of a project's life-cycle (regardless of the process used).

Core Issues

I've never worked in QA but, my observations are, QA is rarely treated as a part of the development process. It is usually treated like one of those things that have to be addressed when development is complete.

A result of this is, QA rarely gets the same level of treatment as development.

All of these things make it very difficult to find good resources for a QA team. Few people want to build a career on a field when it is so hard to find a place where you get the respect you deserve. The few who do choose the path are well compensated and hard to obtain.

I've been in more than a few places where most of the testers were Art School dropouts. This is bad for the people who take the job seriously. They feel less valued. It's bad for the organization because the result will be substandard products. It's bad for everyone else because, they see quality treated as if it has little importance.

Working Toward a Solution

Rather than attempt to define the solution (even I'm not that egotistical), I'm going to suggest a path that leads us toward a solution. Maybe the best solution is something none of us have thought of before.

I recommend to start by making QA a real part of the development process. This integrating QA and development. Allow testers to influence development and allow developers to influence the test process somewhat. Let's make code easier to test.

Finding Consensus

Maybe instead of finding consensus, just have the project team come together and talk about the development process being used (hybrid practices are ok). Document the process being used.

Next, discuss how the bug management process is integrated. Is it? Did you decide you want to try something better? Document your bug management process and how it works with your development practice. You don't need to write a white paper (though it is ok). A simple blog post should be sufficient to start the conversation.

Talk about the good and the bad. Tell what works well and what doesn't. Feel free to ask questions in your post.
Finally, Promote the post. Push it to the social networking sites and/or send me an email (feedback@willcode4beer.com) I'll push it to DZone and Reddit and hopefully we'll find some good insight and reponses, extensions to the conversation.

To make it easier to find each others posts, let's use the Technorati Tag "bug tracking best practices". Just add the following HTML to the bottom of your post so, technorati can classify it.

<a class="techtag" rel="tag"
   href="http://technorati.com/tag/bug+tracking+best+practices"
   >bug tracking best practices</a>

If publishing RSS, just add a category tag with the same value

<category>bug tracking best practices</category>

Also, consider putting you post on delicious with the tag bugtracking. I don't want to own the conversation on improving bug tracking, I just hope to kick-start it.

Where Do We Go From Here?

As communities (we are more than one), define the best practices for bug management on a per-development practice basis. Each should select the best bug tracker for the type of process being used. The bug tracker should follow the process, not lead it.

Resources and Feedback

Author

by: Paul E Davis
Tech Tags:


Sponsors:

About willCode4Beer