Backlog Management

By: Dan Stewart
February 25, 2023

Requirements, questions, and answers are all put into a backlog of work to be done.

The Elements of a Ticket

Some tickets do not need a structure. For example, "Fix the typo on the home page." Other tickets do need a structure. Here is a typical one that I use.

Here is an example.

Course Description Page

As a StewShack School of Real Estate student
I want to see course information
So that I can decide if I want to enroll into it

Scope

The scope of this ticket is to display course information.

Out of Scope

Design

Example design

Text

Stekeholders

Prioritization

There are methods you can use to prioritize tickets.

Matrix

The first method is from the seven habits, put first things first.

Important Not Important
Urgent
Not Urgent

It's tempting to simply reject ideas that are not important and not urgent. However, priorities might change over time. That idea might become important and urgent later.

Risk-First

The second method priotizes by risk-first. We ask ourselves these questions:

Backlog Management

All of the tickets in the backlog are important now, or have the potential to be important in the future. Any tickets that are never going to be worked on have been canceled after talking to the stakeholders. It is a delicate conversation when an idea is rejected because it would harm the product.

I practice inbox zero. So, I also want to practice backlog zero. When a ticket comes in I have these questions:

  1. Is this worth doing? If not, work with the stakeholders to either cancel it or get a better understanding.
  2. What is the priority? Move the ticket into a high or low backlog.

The ticket is moved into another backlog, and the new ticket backlog is empty.

Jira Queries

Here are some Jira queries I use to maintain the backlog.

I prefer Kanban, but I'm current working in two week Sprints.

Here is a Jira query for tickets in a Sprint that I am not watching. This helps me catch tickets that were added to a Sprint. Watching a ticket will alert me when it is changed. I have the alert emailed to me as a "push" strategy for keeping up with ticket progress.


project = "STEW" 
   AND watcher != currentUser() 
   AND Sprint in openSprints() 
   AND status != Cancelled

Here is a query to return tickets that are missing a team, component, and/or label. On my backlog, I have to assign a team either in the United States time zone or the India time zone. Components help separate the tickets into the area they affect. These include the front-end, back-end, B2B, B2C, and other areas. Finally, the label helps with filtering all of the tickets for a specific project.


project = "STEW" 
   AND (
      Team[Team]" is EMPTY
      OR component is EMPTY 
      OR labels is EMPTY) 
   AND Sprint in openSprints() 
   AND status != Cancelled

Ticket are grouped into epics. When all of the tickets are in an epic, we can use Jira plans to produce a gantt chart. Here is a Jira query to show tickets that are missing an epic.


project = "STEW" 
   AND "Epic Link" is EMPTY 
   AND Sprint in openSprints() 
   AND status != Cancelled

Keeping a backlog categorized and prioritized is a daily task. Tickets have to be refined with the stakeholders. Then refined with the development team before they can be worked on. It would waste time to work on an unrefined ticket and get it wrong.

Sources