Sprint Defect Leakage

Hi,

I want to create a report which shows the defect leakage for my completed sprints, that means all Bugs which have been reported after sprint completion for the completed User Stories. In JIRA I track these with the issue link “results in bug” / “bug of”. I already have created a custom hierarchy to get this link into eazyBI:

[jira.customfield_bugs]
name = “Bugs linked”
outward_link = “results in bug”
issue_type = “Bug”
dimension = true
multiple_values = true

I can now properly create a report with:
Rows: Sprint, Issue
Measures: Number of Bugs

But once I remove the “Issue” dimension the report is empty. I guess the measure / hierarchy “Bugs linked” (or Number of Bugs) does not have a relation to the Sprint dimension.

Can anyone help out here?

Best regards,
Mirko

Hi @mirko3000,

You can create a following Measure that would first find issues that are completed in the Sprint, then find all Bugs linked to them and then filter which bugs have created date after sprint actual completion date:

NonZero(Count(Filter(
  Generate(
  DISTINCT([Issue].[Issue].GetMembersByKeys( -- getMembersByKeys will get all Bug issues
    Generate( -- we generate list of the bug keys from issues completed in the sprint
      Filter(Descendants([Issue].CurrentMember, [Issue].[Issue]), -- find issues
        CoalesceEmpty([Measures].[Issue Sprints], '') -- that have ever been in the sprint
        MATCHES '.*(^|,)'||[Sprint].CurrentHierarchyMember.Name||'($|,).*'
        AND [Measures].[Sprint issues completed] > 0 -- and are completed in this sprint
    ),
    [Issue].CurrentHierarchyMember.getString('Bugs linked'), ",") -- get their bug keys
  )), [Issue].CurrentHierarchyMember), -- generate list of these bugs
  DateCompare( -- compare bug created date with sprint end date
    [Measures].[Issue created date],
    [Measures].[Sprint actual end date]
  ) > 0
)))

Lauma / support@eazybi.com

Hi @lauma.cirule,

thanks for the answer, unfortunately I could not make it work based on your measure.

It seems to break with the FILTER statement matching for the sprint name. I reduced the query to this expression, which gives me no results:

NonZero(
  Count(
    DISTINCT(
      [Issue].[Issue].GetMembersByKeys( -- getMembersByKeys will get all Bug issues
        Generate( -- we generate list of the bug keys from issues completed in the sprint
          Filter(
            Descendants([Issue].CurrentMember, [Issue].[Issue]), -- find issues
            CoalesceEmpty([Measures].[Issue Sprints], '') -- that have ever been in the sprint
              MATCHES '.*(^|,)'||[Sprint].CurrentHierarchyMember.Name||'($|,).*'
                AND [Measures].[Sprint issues completed] > 0 -- and are completed in this sprint
          ),
          [Issue].CurrentHierarchyMember.getString('Bugs linked'), ","
        ) -- get their bug keys
      )
    )
  )  
)

If I remove the MATCH statement, at least I get results, of course not matching on a sprint basis.

Can you give me some more hints how to solve this?

Best regards,
Mirko

Hi, @mirko3000!

I’m sorry I missed your reply!
Which eazyBI version do you have installed? The Issue Sprints property was added starting from version 6.1 - is it possible for you to upgrade to this version?

Lauma / support@eazybi.com