JQL How to Exclude Sprints from other projects

David Wilson November 4, 2013

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

2 answers

0 votes
James Hendrix November 12, 2019

Old thread, but found it via search, so...the original question is asking a single issue to work through multiple lifecycles across different projects. This probably not a good idea.  Instead, clone the issue at the end of one JIRA project lifecycle and move the clone to the new project. When cloning, do not include the sprint value.

0 votes
Dave
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
November 4, 2013

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)

David Wilson November 4, 2013

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.

Dave
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
November 4, 2013

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?

David Wilson November 4, 2013

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.

Dave
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
November 5, 2013

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