Issue reduction function computes information about the state of issues reported to an issue tracking system such as Jira. An "Issue" tracking system is just a more generalized form of a bug tracking system, where an "Issue" could be a bug, an enhancement request, a task, and so forth.
Table 28.11.
| Parameter | Description | Default |
|---|---|---|
| fixVersion | Only counts the issues with the specified fix version. Or you can use wildcard '*' to count all issues. | * |
| issueType | Only counts the issues with the specified issue type, such as 'Bug', 'NewFeature', 'Task', 'Improvement'. Or you can use wildcard '*' to count all issues. | * |
| issueStatus | Only counts the issues with the specified status, such as 'Open', 'InProgress', 'Resolved', 'Closed'. Or you can use wildcard '*' to count all issues. | * |
| issuePriority | Only counts the issues with the specified priority, such as 'Blocker', 'Critical', 'Major', 'Minor', 'Trivial'. Or you can use wildcard '*' to count all issues. | * |
| memberEmail | Only counts the issues assigned to the specified project member. Or you can use wildcard '*' to count all issues. | * |
| filePattern | Ant-like file pattern specifying the files to be included in computation. | ** |
Example 28.16. Issue Tracking
streams ReleasePlan_TotalIssue(fixVersion, type, priority, memberEmail, filePattern) = {
"Total issues",
Issue(fixVersion, type, "*", priority, memberEmail, filePattern)
};
streams ReleasePlan_RemainingIssue(fixVersion, type, priority, memberEmail, filePattern) = {
"Remaining issues",
Issue(fixVersion, type, "Open", priority, memberEmail, filePattern)
+ Issue(fixVersion, type, "Reopened", priority, memberEmail, filePattern)
+ Issue(fixVersion, type, "In Progress", priority, memberEmail, filePattern)
};
y-axis yAxis(label) = {label};
chart ReleasePlan_IssueTrackingChart(fixVersion) = {
"Project Management - Remaining Issues v.s. Total Scheduled Issues",
(ReleasePlan_TotalIssue(fixVersion, "*", "*", "*", "**"), yAxis("Issues")),
(ReleasePlan_RemainingIssue(fixVersion, "*", "*", "*", "**"), yAxis("Issues"))
};
draw ReleasePlan_IssueTrackingChart("7.3");

This chart shows the number of total issues and remaining issues at the last day of each week in the Hackystat v7.3 release cycle. This chart can be used by a project manager to track the development team's progress towards system release.
Example 28.17. Issue Breakdown
streams IssueStream(fixVersion, type, status, priority) = {
"Issues",
Issue(fixVersion, type, status, priority)
};
y-axis yAxis(label) = {label};
chart IssuesChart(fixVersion) = {
"Project Issues",
(IssueStream(fixVersion, "*", "*", "*"), yAxis("Issue Count")),
(IssueStream(fixVersion, "Bug", "*", "*"), yAxis("Issue Count")),
(IssueStream(fixVersion, "Bug", "Open", "*"), yAxis("Issue Count")),
(IssueStream(fixVersion, "Bug", "Open", "Major"), yAxis("Issue Count"))
};
draw IssuesChart("7.3");

It shows the definition of an Issue Stream and Chart that has been parameterized to display the number of issues of the type "Bug" that have the status "Open" and are of priority "Critical". Issue telemetry is one of the more complicated telemetry streams to chart, since the results depend upon the way issues (i.e. defects) are tracked in your project. The illustration above shows example invocations of the Issue reduction function to produce various trend lines in the Issue data.