How to clean your backlog: A Guide for Jira Lovers

Optimizing your backlog is critical to ensure your team stays focused on high-priority tasks, but it's important not to become too attached to it. Regularly cleaning it up is essential, regardless of the season. Spring, fall, or any time in between, it's always the right time to give your backlog a thorough cleaning.

If you're using Jira, try a query like

"project = myProject AND status = myStatus AND NOT status CHANGED AFTER -120d"

to identify tickets that haven't been moved in four months. These tickets are likely dead-weight and should be removed from your backlog. But before you hit the delete button, make sure to review them to ensure they're no longer relevant or valuable.

Since we are talking about Jira.

Here are some of my favourite queries to impress your colleagues with

Here are three counterintuitive Jira queries (JQL) that can help save you time.

Issues without subtasks

Sometimes it's helpful to find issues that don't have any subtasks associated with them, as it may indicate that the issue hasn't been broken down enough or that there are orphaned subtasks. To find these issues, use the following query:

issuetype != subtask and issueFunction not in hasSubtasks()

This query will return all issues that are not subtasks and don't have any subtasks associated with them.

Issues that have never been assigned

It's important to make sure that issues are assigned to the appropriate person, but sometimes they can slip through the cracks. To find issues that have never been assigned, use the following query:

assignee is EMPTY and createdDate <= -7d

This query will return all issues that were created more than a week ago and have never been assigned to anyone.

Issues with more than one assignee

Jira allows you to assign an issue to multiple people, but this can sometimes cause confusion about who is responsible for the issue. To find issues that have been assigned to more than one person, use the following query:

assignee in membersOf("jira-software-users") and assignee in (group("jira-software-users"), group("jira-administrators"))

This query will return all issues that have been assigned to users who are members of both the "jira-software-users" and "jira-administrators" groups. You can adjust the groups to fit your specific use case.


Want even more tactical tips? I've collected templates over the years, that help me daily. They help me onboard faster with teams, brainstorm more collaboratively and communicate outcomes in a crisper way.