SoftwarePuzzler
 

Issue Tracking

Introduction

An invaluable help for the management of a software project is the issue tracker. A tracker captures the dynamic flow of information that is not directly part of the product, but still needs to be handled in a development project.

Tracker Requirements

There exists lots of issue trackers on the market. Chances are high that you will be able to find one that suits your requirements. There are a couple of basic requirements that you should look for that will simplify the use of the tool.

Make sure the tool can be configured to handle the various types of issues you intend to track. Many tools focus on just one issue type, like bugs, requirements or feature requests. It should be possible to incorporate all types into the same tool, as they all require the same type of manipulation.

Make sure the tool distinguishes between issue and task. One single issue can create lots of non related tasks that must be completed by different people. A feature request can lead to several updates in the code, the documentation and the user manual. A bug report can lead to updates in more than one code branch. Tasks can also serve as the foundation for a process oriented issue tracker, where constraints can be set up between tasks to control the workflow.

Issues to Track

An issue tracker is a flexible tool that can be used to track a wide range of issues. Here follows a description of the most common types.

Bug Reports

Bugs are inevitable in software development. Bug reports initiate a number of tasks including identification of the cause, problem solving and checks that the bug is removed.

Requirements

Requirements are extracted from the requirements specification and inserted into the issue tracker. Things to track are the iteration when the requirement is supposed to be implemented, which subsystems it affects and the engineers that will work with the implementation.

Feature Requests

A feature request is usually turned into a requirement when it is accepted. Before that, investigations of its feasibility and cost will have to be made, followed by a decision to accept or reject the request.

Design Decisions

One thing that is usually difficult to follow is the trail of decisions leading to the current implementation. Track all important design decisions in the issue tracker for future needs. It is also an excellent way to deal with the tasks that may be necessary to perform to make the system conform to the decision.