Channels ▼


Quality and Transparent ALM

Transparent Defect Tracking

Defects are a fact of life, and working on them can take up a large portion of your day. One way to become more efficient is to automate the routing of defects from one person to another.

If you work for a medium-to large development organization, you probably have guidelines for defect turn time. You also have policy documents that define different severity levels and what constitutes a bug versus an enhancement. If you have multiple customers, the turn time and the review process might vary from project to project.

If you work on several projects, you can waste lots of time reviewing procedures and prioritizing your work instead of working on code. Face it, if you wanted to route action items and manage timelines, you would have become a project manager, not a programmer.

To spend less time organizing and routing items, you can create an auto-assignment rule to route new defects to the appropriate development lead based on client. You can take this a step further and automate the workflow so that defects are escalated to right person based on the severity, open date, and other criteria. You are automatically notified when you need to take action on a defect so you can keep working rather than mulling over your to-do list.

Another way to reduce manual defect tracking tasks is to link defects together to create contingencies. Several defects may add up to fix a larger problem or to constitute a block of functionality. You can save yourself headaches and rework by creating links between items to prevent you or someone else from fixing defects in the wrong order.

You can also create separate workflows for individual clients. This is especially helpful if a customer must review your changes before they are implemented. You can define a customer review state in the workflow that automatically assigns the defect to the appropriate person. The defect moves through that review process without your involvement while you work on issues for other clients. If the customer contact changes, you update the name in one place and all the defects are directed to the new person.

True Transparency: Automating Across Processes

Automating one function or area is great, but true transparency and improved efficiency comes from fully integrating the different areas of your development process. Defect tracking and source code management are perfect candidates for integration.

When you fix a defect with a code change, you make a note in the defect about what files changed. You also enter a comment when checking the files in. Making these types of notes in two systems is a waste of time. If the two systems are integrated, you speed things up while improving your audit trail.

If defects drive your daily activities, you want to do as much work in the defect tracking system as possible. Being able to check out and attach source code files from within the defect tracking system can make a huge difference. It is also easier to see exactly what code changed to fix the defect. From the defect system, anyone can see a description of the problem, the different workflow events, and the files that were affected by the change. Because the code and defect are linked, you can see the defect activity just as easily from the source code system.


Without a doubt, an ALM process is essential, but none of us would get much done if we had to spend our days concentrating on the next step in the process. When your process is transparent, you're not aware that it's there. The right things happen at the right time. Instead of managing action items, you are free to focus on designing and coding.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.