Best way to model programme increments

Hello I was wondering whether anyone had some advice about how to model program increments.

name: PI1
start date: 15/01/2020
end date: 10/02/2020

The date is important as we would like to create a lot of constructs like the default sprint. Things such as PI velocity and issues created in the previous PI etc.

I’ve currently created a custom field and our issues are tagged to a specific PI, but mapping this onto time is proving difficult.

Not sure if I can help you but I use AffectsVersions or FixVersions field in JIRA project to specify Program Increments as a workaround. Then I can use start date and release date to get time interval and work with it in eazyBI. And for getting specific PIs only based on Affects version I use

Aggregate(
  Order(
    Filter(
      [Affects Version].[Version].Members,
      [Affects Version].CurrentMember.Name MATCHES '^PI\d+$' 
    ),
    [Affects Version].CurrentMember.GetDate('StartDate'), ASC
  )
)

But I am not a professional so I expect there will be some better recommendation. It is just for inspiration. And also there is one disadvantage … you must create PI related versions in each JIRA project which I have automated including archiving etc.

1 Like

Hi Tomas,

Thanks for your input. We are currently doing something similar although we don’t use affects version.

We are also using fix version for program increments.
When we import to eazyBI we create a custom field and for each issue capture only the latest PI version name as a string
We import this is both a dimension and a property

We can then do things like the examples below but it all feels a bit messy. I would much rather be able to import the program increments the same way that eazyBI handles sprints. eg: getProperty(‘Start date’) etc

Provide an ordered list of programming increments on the dimension:

Aggregate(
{
[PI].[(none)],
[PI].[2020 PI5],
[PI].[2020 PI6],
[PI].[2020 PI7],
[PI].[2020 PI8],
[PI].[2020 PI9],
[PI].[2020 PI10]
}
)

Set a start date and end date on a user-defined measure:

CASE WHEN
[PI].CurrentMember.Name = ‘2020 PI6’
THEN
DateParse(“2020-mm-dd”)
WHEN
[PI].CurrentMember.Name = ‘2020 PI7’
THEN
DateParse(“2020-mm-dd”)
WHEN

Provide a list of the entire backlog via measure when filtering on PIs:

([Measures].[Story Points remaining],[PI].[All PIs])

Hi @Steve!

I believe the setup to import the PI based on Fix Version in a separate dimension is the right approach.
If you are getting the PI start date from the Fix Version start date, you can use the following formula, instead of re-defining the dates manually:

[Fix Version].[Version].GetMemberByKey(
  [PI].CurrentHierarchyMember.key
).get("Start date")

Or, if you have the dates stored somewhere else and PI is a single value field, you can import date properties with additional data import. See more here: https://docs.eazybi.com/eazybijira/data-import/jira-issues-import/additional-data-import-into-jira-issues-cube.

Lauma / support@eazybi.com