Issue Trackers

Overview

Teaching: 15 min
Exercises: 10 min
Questions
  • How can I keep track of what needs to be done?

Objectives
  • Describe what sorts of things should be recorded in an issue-tracking system.

  • Describe what goes into a well-written issue.

  • Explain how issue-tracking systems can be used to implement workflows.

  • Explain how issue-tracking systems can be used to focus attention where it’s needed.

Issue Tracking

ID: 1278
Created-By: mummy
Owned-By: wolfman
State: assigned
Summary: Message file reader crashes on accented characters
Description:
1.  Create a text file called 'accent.msg' containing the message
    "Pümpernickel" (with an umlaut over the 'u').

2.  Run 'python mindcontrol.py --all --message accent.msg'

Program crashes with the message "No encoding for [] on line 1 of 'accent.msg'".
([] shows where a solid black box appears in the output instead of a printable
character.)

Issue Lifecycle

What’s On Your List?

  1. What are the top 3 items on your project’s to-do list?
  2. How sure are you that your collaborators and users would agree with your selection?

What’s Your Lifecycle?

  1. What states can your project’s issues be in?
  2. What state transitions are allowed? (“Any to any” is a common and acceptable answer.)
  3. Who decides when an issue can move from one state to another?

Key Points

  • An issue-tracking system is a shared to-do list for a project.

  • Every issue has a few mandatory fields to help with searching, and free-form text for details.

  • Every issue is in a particular state.

  • A project can define a workflow by specifying who can change tickets’ states when.

  • Use tickets to prioritize work: what needs be done now, what can be deferred until later.