JQL How to Exclude Sprints from other projects

Question:

How do I exclude closed sprints from OTHER projects in my board?

Background:

As part of our SDLC, a JIRA issue crosses projects. It starts with the Product team in the PRD project, and then, when they're fully scoped and ready for Dev to PLAN, they "move" it to the DEV project (which puts it in our Backlog in JIRA Agile).

Currently, the dev team uses a Kanban/Scrumboard combo.

(ScrumBoard for planning, and Kanban for "work". This is because we close a sprint and send to QA, but QA may send issues back. A Kanban supports the "multiple sprint" board, where a Scrumboard does not).

I have swimlanes that I've created using Queries (*aside: can we PLEASE have real group by's? This would solve so many issues).

Kanban Board Filter:

Filter Query project in (Development) ORDER BY Rank ASC

Work Sub-Filter (fixVersion in unreleasedVersions() OR fixVersion is EMPTY) AND Sprint is not EMPTY AND issuetype not in ("QA Define Acceptance")

Kanban Swimlane Queries:

QA / Release Branch :
"Working Branch" = Release OR (Sprint in closedSprints() AND status in ("No One Is Working Me", "In Progress", "Code Review", "Fixes Required", "Ready for QA"))

Current Sprint / Prerelease :
"Working Branch" is not EMPTY AND "Working Branch" not in (Master, Release) AND Sprint in openSprints()

Future Sprint:
"Working Branch" is not EMPTY AND "Working Branch" not in (Master, Release) AND Sprint in futureSprints()

Everything Else

The problem exists with my QA / Release branch lane. Since the issue once existed in PRD, which has its own Sprints; that issue has a "closed sprint" attached, even though that sprint originated in the different project that is excluded from this board (PRD). Is there a way to exclude those sprints? If not, is there a way to determine if an item is currently in the "Backlog" of my DEV scrumboard (somehow the board in PLAN knows it's in backlog... why can't I?)

Thanks

1 answer

update your JQL so that it's ... "AND (project not in (this_old_thing) AND sprint not in closedSprints())"

note the perens so that it's your original filter AND (this combination of things)

so you're suggesting it's like this?

QA / Release Branch :

"Working Branch" = Release OR (Sprint in closedSprints() AND status in ("No One Is Working Me", "In Progress", "Code Review", "Fixes Required", "Ready for QA") AND (project not in ("PRD") AND Sprint not in closedSprints()))

Doesn't that just cancel each other out? The desire result is:

  1. Give me everything in "Working Branch" = Release
  2. Also give me everything where it was in a closed DEV sprint
  3. Exclude everything from closed PRD sprints

Actually, #3 above would be better suited as part of my boards Work Subfilter.

The way I'm reading that is that by combining Project not in (PRD) and sprint not in closedSprints() into a single condition means that it will include issues in PRD if they do not belong to a closed sprint; is it working that way in practice?

I think there may be a misunderstanding between us.

My board already filters for DEV only issues. The problem is, they MOVE the PRD issues to DEV. (e.g. PRD-414 becomes DEV-1299, etc.) Now DEV-1299 shows on my board, but it is part of a closed Sprint that originated in PRD, not DEV.

As a result, it is meeting the board filter requirement (project = DEV) and the swimlane filter (Sprint in closedSprints()). I don't want it to meet the swimlane filter, since the closed sprint it was in, is from project PRD.

In project DEV, it's still in the backlog and has never been in a DEV sprint... only a PRD sprint. However, closedSprints() appears to include any sprint, regardless of the project that sprint belongs to.

How do I say "NOT (Sprint in closedSprints() from project = 'PRD')" in JQL?

FYI:

An alternative solution would be to have a filter that says "Is Currently In Backlog". This would effectively accomplish the same desired result for me, albeit using a completely different methodology to accomplish it. If you can provide me an explicit way to say "Is in Backlog", that would be sufficient.

Thanks for providing some clarification... I'm not sure that there's an easy way (or any way) to do this, as there is no way to tell that it was in a different project (you might get around this by including some custom field as an indicator). DEV-1299 is now an issue in the DEV project that is part of a closed sprint. I think the way to execute this process would be to use the same project and differentiate by workflow status, which would also be easy to filter on your boards...

Suggest an answer

Log in or Sign up to answer
Atlassian Community Anniversary

Happy Anniversary, Atlassian Community!

This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.

Read more
Community showcase
Sarah Schuster
Posted Mar 28, 2018 in Jira Software

Can a company’s culture make or break agile adoption?

Can a new-to-agile team survive and thrive in a non-agile culture? If so, what advice would you give to those trying to be agile in a non-agile culture? What's the key(s) to success? Share your thoug...

12,005 views 15 13
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you