I’m looking for some help to create a historical view of our scrum teams’ sprint ready backlog.
Basically I want to sum the total Story Points for all Stories that were in a ready status at the end of a time period, that have been in a ready status for less than 90 days. Then divide the number of story points by the scrum team’s velocity
We have a custom date field ‘Date In Ready’ that I can use to determine the last time a ticket was placed in a ready status. Because this is time based and not sprint based, I need to exclude stories that are in a ready status and assigned to the sprint that was active at the end of the time period.
This is how I’ve broken down the conditions:
Field: ‘Issue Type’ is Story
Field: ‘Status’ was in ready at the end of the time period
Field: ‘Custom Date [Date In Ready]’ was dated within 90 days of the end of the time period
Field: ‘Sprint’ is not assigned OR ‘Sprint’ Start date is after the time period
The JQL would look something like this:
project = EXP
AND IssueType = Story
AND STATUS WAS IN (‘READY’) ON 2020-08-31
AND “Date In Ready” < 2021-09-01
AND “Date In Ready” > 2021-06-01
AND (SPRINT NOT IN (‘EXP Sprint10’) OR SPRINT IS EMPTY)
AND issueFunction in aggregateExpression(“Total Estimate for all Issues”, “storypoints.sum()”)
Page Filters: Project, Time Range
Rows: Time Period Increments (e.g. monthly)
Column: Estimated number of sprints worth of work in the sprint ready (<90days) backlog
Any help or guidance would be appreciated. I’m stuck after working through the following:
- The imported EazyBI Measures ‘Issues with date in ready’ and ‘Story Points with date in ready’ only count the issues with a Date in Ready during the time period.
- I’m not sure how to filter my backlog Tuples (code below) by Issue Property: ‘Issue Date In Ready’
- I haven’t figured out how to exclude issues that were in the active sprint at the end of the time period
- My Sprint Velocity is off.
Thanks!
Jon
Code I have been working through below:
‘’’
[Measures].[Ready Status]
–Ready Status Count
([Measures].[Issues history],
[Issue Type].[Story],
[Transition Status].[Ready])
‘’’
‘’’
[Measures].[Ready Points]
–Ready Status Points
([Measures].[Story Points history],
[Issue Type].[Story],
[Transition Status].[Ready])
‘’’
‘’’
[Measures].[ 5 Sprint Average Story Points ]
– average velocity from last 5 closed sprints
Avg(
Tail(
Order(
– filter last 5 closed sprints
Filter(
Generate(
{ [Sprint].CurrentHierarchyMember,
ChildrenSet([Sprint].CurrentHierarchyMember) },
Descendants(
[Sprint].CurrentHierarchyMember,[Sprint].[Sprint] )
),
– only sprints with committed story points are retrieved
[Sprint].CurrentMember.getBoolean(‘Closed’) AND
NOT IsEmpty([Sprint].CurrentMember.get(‘Complete date’)) AND
([Measures].[Sprint Story Points completed],[Time].CurrentMember) > 0
),
– order by completion date
[Sprint].CurrentMember.get(‘Complete date’), BASC ) ,
5),
[Measures].[Sprint Story Points completed]
)
‘’’