How create a list of all Sprint Goals across all Active Sprints
Asked by Doug Levitt:

Hi,

I am looking to figure out how to capture a list of all Sprint Goals across all Active Sprints.

1. I know I can create a Scheduled Automation to identify all items in a Sprint:

*type in standardIssueTypes() and Sprint in openSprints()*

2. I know, for each issue, I can identify the name and goal of the active sprint\*\*\*

*sprintName = {{#issue.customfield_10006}} {{#if(equals (state, "active")) }} {{name}} {{/}} {{/}}*

*sprintGoal = {{#issue.customfield_10006}} {{#if(equals (state, "active")) }} {{goal}} {{/}} {{/}}*

*Note: customfield_10006 is mapped to "Sprint"*

3. I know how to send the results of this information to, say, Slack

4. But I have ++no idea++ how to "cull" through the list, to eliminate duplicates. Is this possible in Automation?

As a note, my goal is to somehow display this in a Jira Dashboard or a Confluence Page. My strategy is to create a Custom Field (called Aggregated Sprint Goal) and associate it with a "special" Jira project (called Administrivia) which contains a single ticket (e.g. AMD-001). When the Automation is completed, it will update the field in that ticket with this value. It's a bit far fetched, but I wanted to give it a try.

\*\*\* A debt of gratitude to [@Bill Sheboy](/t5/user/viewprofilepage/user-id/1685313) for teaching me how to to the above!

Doug


Answers:
author: Fabian Lim
body: Hi [@Doug Levitt](/t5/user/viewprofilepage/user-id/3570640)

The other option is to purchase the eazybi plugin and copy and paste the following: <https://community.eazybi.com/t/sprint-goals-for-current-sprints/7037>

Cheers

comments: author: Doug Levitt
body: Hi [@Fabian Lim](/t5/user/viewprofilepage/user-id/3131564) - I assume EazyBI stores company-private Jira data offsite (i.e. outside the Atlassian Cloud)? Correct? What types of safeguards are built in, to ensure that data is safe? Is it encrypted? Generally, I am wary of any 3rd party plug-ins, as I must perform due-diligence to ensure that they are a going concern (not only for protection of our data, but also that they will be around long enough, so we can wrap business process around our assumption that they are a going concern).


author: Fabian Lim
body: [@Zane eazyBI Support](/t5/user/viewprofilepage/user-id/1140576) would be able to provide you with details on data privacy.


author: Roberts ???us
body: Hi [@Doug Levitt](/t5/user/viewprofilepage/user-id/3570640)

Yes, eazyBI for Jira Cloud stores imported data outside Atlassian Cloud. You can find out more about the eazyBI Cloud security statement here - <https://docs.eazybi.com/eazybi/set-up-and-administer/atlassian-cloud/eazybi-for-jira-cloud-security-statement>.

And the data protection statement - <https://eazybi.com/pages/data-protection-statement>.

Thank you [@Fabian Lim](/t5/user/viewprofilepage/user-id/3131564) for suggesting eazyBI!

Let me know if you have any other questions.

Best,

Roberts // support@eazybi.com


author: Doug Levitt
body: Thanks [@Fabian Lim](/t5/user/viewprofilepage/user-id/3131564) and Roberts C thanks for the additional information.

Doug


author: Charlie Gavey
body: Hi [@Doug Levitt](/t5/user/viewprofilepage/user-id/3570640)  

I've linked your feedback to this feature request for the ability to search / deduplicate a smart value list, which counts as an upvote for this feature.

<https://codebarrel.atlassian.net/browse/AUT-2326>

Cheers,  
Charlie

comments: author: Doug Levitt
body: Thanks [@Charlie Gavey](/t5/user/viewprofilepage/user-id/4622713) . I would be more than happy to meet with the automation team, to review our specific use cases (as I suspect there is a gap in terms of how the PMs are thinking that people may be trying to use this feature @ scale). Jira is a great tool for single-team Scrum. But it starts to become unmanageable at scale. It's too bad, as I have been using this for \> 17 years.


author: Mykenna Cepek
body: I'd love to pile-on with [@Doug Levitt](/t5/user/viewprofilepage/user-id/3570640) in providing use-case based frustrations with Jira Automation. I think we've been using Jira for about the same amount of time!


author: Doug Levitt
body: +1 [@Mykenna Cepek](/t5/user/viewprofilepage/user-id/3527113)


author: Charlie Gavey
body: Hi Doug,

Thanks so much, we'd love to chat to hear a little more about your use cases. Did you want to find a time that suits here? <https://calendly.com/cgavey/automation-feedback>  

Cheers,

Charlie


author: Doug Levitt
body: [@Charlie Gavey](/t5/user/viewprofilepage/user-id/4622713) - Scheduled. Looking forward to the discussion.


author: Mykenna Cepek
body: I'm not sure your item 4, to eliminate duplicate values in a list, is possible within (only) standard Jira Cloud Automation today. As noted, Jira apps might provide alternatives.

As much as I wish for more programming language-like functionality in Automation, it's just not a fully functional programming language. It's great for many, many other types of straightforward Jira activities.

Perusing the available capabilities for [using smart variable lists](https://support.atlassian.com/jira-software-cloud/docs/smart-values-lists/), we can see that there is no searching available today. With that, it might have been possible to de-dup a list of values.

The closest operation is the get() function, which seems like it might at least allow you to scan thru an existing list and see if a given value is already in that list. Unfortunately, a de-dup algorithm requires nested looping, and Jira Automation doesn't currently support that.

_ _ _ _ _ _ _

I did brainstorm one unusual approach to try to solve your use case. Consider: a custom field of type "Labels". If issues in your Administrivia project (great name) had access to this custom field, then the "Edit Issue" action on that field, with the "Add/remove values" operation, could aggregate just unique values. My theory was that the field could naturally de-dup values for you.

A quick test was encouraging. I fired a manually-invoked rule on an issue which already had the value "Backend" in the Labels field. The rule simply added "Backend" to the Labels field of that issue again. The result? "Backend" was listed just once in the Labels field, as expected. So this type of field could theoretically aggregate and de-dup simple values.

Unfortunately, label values cannot contain spaces, as verified when I tried that:

![Screen Shot 2021-11-20 at 11.18.59 AM.png](https://community.atlassian.com/t5/image/serverpage/image-id/170315i5693344A6978F5D6/image-size/large?v=v2&px=999 "Screen Shot 2021-11-20 at 11.18.59 AM.png")

For your use-case, that means that Sprint Goals couldn't contain space characters. So even this slightly hacked approach won't work for you.

I couldn't see a way to replace space characters with underscores either. Sigh.

_ _ _ _ _ _ _

Maybe others can leverage some of this half-baked brainstorming into a workable solution?

I'd also be thrilled if someone could point out a way Jira Cloud Automation *can* do this natively. I'm not seeing it, but there are other pretty smart people in this community!

comments: author: Doug Levitt
body: Thanks [@Mykenna Cepek](/t5/user/viewprofilepage/user-id/726116) for the suggestions. I have figured out a "hack" to implement this, by hardcoding the names of each of our 30+ Squads in the Automations. However, this obviously doesn't scale. As we have grown our agile implementation, I have painfully learned how fragile Atlassian's implementation is. It works really well for single-team Scrum (when Automation is used). It works reasonably well for 5-team Scrum (when Automation is used). But, when you get too large (\> 10 team Scrum), the Atlassian toolset is just lacking. Sure, I can hardcode everything. But it is unmaintainable. :(


author: Michael Whitson
body: Doug, are you willing to share your hack? I'm looking for a solution here, even one that's hard coded and not scalable beats the current feature gap. Thank you!


author: Doug Levitt
body: [@Michael Whitson](/t5/user/viewprofilepage/user-id/4782842)

I created a new project with 2 Issue Types:

The Sprint Type has the following attributes:

- Team Name, Sprint Number, Sprint Start Date, Sprint End Date, Sprint Status, Sprint Goal

- Counters (Sprint Start Count of PBIs, Sprint Start Sum of Story Points, Sprint End Count of PBIs, Sprint End Sum of Story Points, Sprint End Avg Cycle Time, Sprint End Process Efficiency, Sprint Backlog Count of PBIs, Sprint Backlog Count of Ready PBIs, Sprint Backlog Sum of Story Points, Sprint Backlog Sum of Ready Story Points)

The Team Type has the following attributes:

- Team Name

- Counters (Avg Cycle Time, Avg Process Efficiency, Avg Velocity, Avg Planned to Done, Backlog Compliance)

I then configured WebHooks for each Sprint Event - Sprint Created, Sprint Updated, Sprint Started, Sprint Completed, Sprint Deleted

I then configured Automations to "listen" for each WebHook and aggregate data for each Sprint.

I then configured nightly Automations which scan through Future Sprints, and look at all the tickets (pinned to a Future Sprint), so I could gather statistics.

I finally configured nightly Automations, which aggregate the data for each Team.

I then can create -- across all Teams -- dashboards depicting:

- Active Sprint (with Sprint Goals and metric counts for each Team participating in our sync Sprints)

- Future Sprints (with Sprint Goals and metric counts for each Team participating in our upcoming Sprints)

- Completed Sprints (with metric counts - velocity, cycle time, planned-to-done)

I then can create - for each Team - dashboards depicting:

- Average Cycle Time, Avg Process Efficiency, Avg Planned to Done, Avg Velocity, Backlog Compliance (I want Teams to have \~ 2-3 Sprints worth of Sprint Ready Stories in their backlog, based upon Average Velocity)

When I started, I just wanted to capture the Sprint Goals. But I quickly realized that I could do a lot more by capturing the data associated with Sprints.

It took a while to setup. It's been running now for 2 months and provides fantastic visibility.

Final Note - I used this article to calculate Process Efficiency - <https://www.linkedin.com/pulse/process-efficiency-what-why-important-how-we-use-genesis-sam-fowler>

Doug