Issue Tracker

All new work and modifications are made according to a request logged to a common system that assigns a unique identity to each item, such as an issue tracker or agile project management tool. 

Originally, issue trackers were designed to help software developers log and resolve defect reports. Before long, teams started to use issue trackers to log all types of work. Today, products like Jira and YouTrack describe themselves as Agile Project Management tools that you can use to plan, track, and release great software. 

From the perspective of building a continuous delivery toolset, a modern issue tracker can provide several key abilities in one package. 

  • Project and issue tracking 
  • Change management 
  • Scrum and kanban support
  • Backlog prioritization and sprint planning
  • Agile reporting 
  • Version control integration 
  • Build tool integration 
  • Static analysis integration 

Many of today's hosting platforms, such as GitHub and Visual Studio Team Services, include issue tracking along with build management tools, and overlap with some of the core features provided by issue trackers. 

The single most important thing you can do

If you use an issue tracker to log absolutely all the work being done to your code base, a truly amazing benefit is that you will have a well-known unique record for each work item.

Products like Jira and Visual Studio Team Services integrate with version control so that you can link commits to work items. Consequently, you can start with Git Blame and click through to the work item for a given commit, or start with the work item and drill down to the actual code-level changes made to implement the item. 

I cannot overstate the usefulness of being able to audit changes against change requests, from either direction. 

What you need to decide 

There are several equivalent products available today. The crux of the decision can rest on what other tools you are already using or want to use. 

If you are starting from scratch 

  • For a open source project, you can use the free GitHub or Bitbucket tools until you outgrown them. 
  • For a closed source project, you can use Bitbucket and its tools for five users free. 

For a larger project with five or more developers

  • If you are using a Jetbrains IDE, consider YouTrack. 
  • If you are using Visual Studio, consider Visual Studio Team Services. 
  • Otherwise, go with Jira. You won't regret it. 

Except for GitHub, these suggestions are available in both cloud and on-premises versions. 

The cloud platforms are both reliable and cost effective, though some plugins may only be available on premises.

Resource checklist 

  • Select an issue tracker product.
  • Ideally, adopt the issue tracker as your change management system. 
  • Insert all work items into the issue tracker, including selecting the issue tracker. 
  • User stories can be added as issues, and smaller units of work added as related items.
  • Enforce the rule that all commits must be linked to the issue tracker. 
  • Constantly remind everyone that the issue tracker is your nexus of truth. 
    • From any given issue, you should be able to reach every requirement and every commit.
  • Not all work items need to resolve to commits. Track all work related to the project, even if it's "Sprint 18-1 Miscellaneous".
    • If you're not working on an issue, you're not working. 
  • Generally speaking, create a 1:1 correspondence between a project in the issue tracker and a version control repository. 
    • If your code base uses multiple repositories, consider threading them together with a common naming convention.