This documentation is for an old version of Dataplane Reports.
View the latest documentation, or the list of documentation for all versions.
Rolling Up Epic Time Estimates
- David Goldstein
Overview
For project and development managers working with JIRA Agile and agile teams, it is very difficult in JIRA to get a picture of the total amount of time remaining to complete outstanding epics when the work is spread across a multitude of user stories, sub-tasks and possibly even separate projects. There's no visibility into how those estimates roll up to the epic they are a part of.
Using Arsenale Dataplane and the free Script Runner for JIRA add-on, in no time you will be creating comprehensive reports tracking time across all your JIRA Agile epic initiatives.
Configuring Your JIRA Instance
This solution assumes you are using JIRA Agile and its Epic, Story and Task issue types. However, the same general approach can be used for any set of issues and sub-task issues associated with an issue representing a master feature.
- Install the free Script Runner for JIRA add-on.
Create a new Script Runner custom field ("Scripted Field") in JIRA, called "Epic Master" (or something similar). We are going to use this field to report on the epic that each issue is associated with, regardless of whether the issue is a user story or sub-task issue.
See our Reporting on Calculated Values documentation for details on using Script Runner custom fields with Dataplane.Â
You may also wish to review the generall Script Runner primer on how to work with Scripted Fields.
- After creating the new custom Script Runner field, go to JIRA's Administration -> Add-ons page.
- Click on Script Fields under the Script Runner section of the left sidebar.
- Click Edit.
Enter the following script:
import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.issue.CustomFieldManager; import com.atlassian.jira.issue.fields.CustomField; import com.atlassian.jira.issue.Issue; CustomFieldManager fieldManager = ComponentAccessor.getCustomFieldManager(); CustomField epicLinkField = fieldManager.getCustomFieldObjectByName("Epic Link"); CustomField epicNameField = fieldManager.getCustomFieldObjectByName("Epic Name"); if (issue.isSubTask()){Â issue = issue.getParentObject();Â } Issue epicIssue = (issue.getIssueTypeObject().getName().equals("Epic")) ? issue : issue.getCustomFieldValue(epicLinkField); return (epicIssue != null ? epicIssue.getCustomFieldValue(epicNameField) : null);
- Reindex JIRA. This is necessary whenever adding a new custom field in JIRA.
- Once JIRA is reindexed, click on Dataplane Reports -> Administration, and on the main Administration panel for Dataplane, click on Sync Index to have Dataplane register the newly added custom field.
We're now ready to create the Dataplane report.
Creating the Report
In the Dataplane report directory, under New Report, select the Advanced category of reports.
Select the Sum Numeric Field Report.
For report configuration options, set up your report as follows:
Option | Selection | Comments |
---|---|---|
Search | any | Select your JIRA projects, project categories and filters of interest. Or click on the JQL tab in that field to enter a command using JIRA Query Language (JQL). |
Segment By | Epic Master | Select the name of the new Script Runner custom field just added. |
Statuses to Include | all, except "Resolved" and "Closed" | Select which JIRA issue statuses you wish to include in the report.  Select all statuses in your JIRA instance except "Resolved" and "Closed". |
Issue Field | Time Estimate (Hours) | We want the estimate of time remaining for the issues in the epic. Alternatively you could select "Original Estimate (Hours)" to report on the total time that was ever estimated to complete all the epic work, or "Time Spent (Hours)" to report on the hours of work completed so far. If you select one of these other time fields, you'll want to change the Statuses to Include options so they're sensibly matched (e.g. including "Resolved" and "Closed" for "Original Estimate (Hours)"). |
Chart Type | or | Select the Bar Chart or Vertical Bar Chart. |
Now click on the Run Report button to create your report. Â
You'll see a nice roll-up of the time remaining to complete all the stories and sub-tasks for each epic.
Segmenting Results
The Segment By field in Dataplane reports allows you to break down report results by any number of different JIRA fields or properties in order to see more granularity.
To check that we're properly including the time for all stories and sub-tasks within each epic, add "Issue Type" to Segment By in the report configuration.  So we'll be segmenting the results by both the new Script Runner custom field, "Epic Master", and further slicing the data by "Issue Type".
Click Run Report again, and the results will look something like this:
Comparing Time Allocation Across Epics
Among the various Chart Type options in a report configuration, the "Normalized Bar Chart" and "Normalized Vertical Bar Chart" are great tools for comparative analysis of where time is remaining or was spent across epics.
These chart types visualize the report results on a percentage basis instead of using absolute units of time allowing for easy epic-to-epic comparisons.
Here's our same report run using a "Normalized Vertical Bar Chart":
Â
Page Contents