Epics, Stories and Sub-Task estimates.


We have started to dive into jira agile with a test account (On-Demand). We are liking it so far but there are something we are not able to do. At this moment We have some epics. We have split the epics into user stories and at this level an estimate can be given and will be agregated up to set the total of the epic. The problem is that this doesn't happen with sub-tasks. Sub-Tasks does not have an estimated time to be set like the user story. Is there any way to have estimates in sub-tasks and let their estimates agregate to build the final user story estimate? This way we will just set estimates in subtasks and have agregates at user story and epics level. This would be amazing.

7 answers

To me, this is an example of Atlassian not grasping their user base. Epics are roll-ups of issues. As with the fact that epic links don't work, lack of story effort/estimate roll-ups to me indicates that they have real blind spots in terms of their user needs. This is not something that should require a plug-in. Create an epic, break it into stories, get the roll-up of estimate at the epic level: dead simple, fundamentally important.

With the plugin "Epic Sum Up" you can summate the story-points (and further) of an epic and all the sub issues/sub tasks:
Hope it helps you!

Stories are not assigned to a single person but are for the Team to implement and so they are estimated in Story Points. A Task (or Sub Task) is for an individual on the team to implement so they are estimated in hours.

Story Points are used for pulling work into a Sprint and for forcasting based on velocity. Within the Sprint we use Hours and assign Tasks to individuals.

As a System Administrator, you could add Story Points to a Sub Task but I wouldn't recommend it. It also wouldn't sum up to the parent Story without programming.

We use real time estimates (hours/days/weeks) for story estimation not story points.

The fact that an epic issue aggregates subordinate story estimates means that the functionality is already notionally in place.

The smart idea would be to add a new boolean project level configuration that would optionally aggregate child issue estimates/time remaining values into the parent issue

Hi Ian. Can you please share how you get an epic to aggregate subordinate story estimates (in hours/days/weeks) ? I am struggling to get it to do that, and I can't find any relevant documentation in Atlassian web site

The short answer is that you can't.

But the Agile board in 'plan' mode will do the aggregation for epics. This functionality seems to have been hard coded into the agile board and is not replicated else where.

Thanks Ian for your reponse. The epic doesn't seems to do the aggregation in my case even in the agile board plan. All it shows is the subordinate story without any estimates.

Also the epic burndown says "This chart cannot be displayed No issues present in epic to generate scope change model". Do I need to input manually the estimates in the epic stories ? If that's the case, the stories do the time aggregation already based on their sub-tasks, so why would I need to re-enter the estimates manually at story level?

Thanks for you help!

Deleted user Jan 07, 2016

The lack of sub task to story to epic aggregation is in my view a massive hole in the Jira product. If you change the agile sprint board configuration to use 'original estimates' then the hour values should appear in the planning board user story and epic values. The who,e situation is made worse by epic and release burn down reports that only seem to work after two or three sprints.

Like 1 person likes this

This feature exists in virtually every agile management tool i've ever used except for JIRA.  How hard is it to sum children to the parent?  Seems trivial but I doubt it will ever get implemented.  

JIRA wants to nickle and dime their customers for plugins instead.  It's a really frustrating product -- if anyone is considering it I highly recommend just about any alternative.

Below a snapshot of the epic burndown:

This doesn't exactly answer your question, but it is relevant and has helped me deal with this annoying behavior. Unfortunately, it isn't possible for OnDemand, but I am posting in case someone else may find it useful.

Working with support from Arsenale Dataplane, we are now able to view a report that includes epics, the stories in those epics, and the subtasks for those stories. Though we are using Dataplane (a paid addon), the scheme for setting up a scripted field that can be used to "segment by" epics is still useful without it.

How Dataplane solved the problem for me:

  1. Install Script Runner addon (free).
  2. Create a new Script Runner custom field ("Scripted Field") in JIRA, called "Master Epic" (or something similar). Here's Arsenale’s own Dataplane primer on how to set up and use Scripted Fields. Here's a more general Script Runner primer on how to use a Scripted Fields. You are going to use this field to report on the Epic that the issue is a part of, regardless of whether the issue is a parent or a sub-task issue. Scripted Fields use programming script written in a language called Groovy. It's virtually identical to Java.
  3. After creating the field, go to the Admin>Addons tab.
  4. Click on “Script Fields” under the Script Runner section on the left.
  5. Click Edit.
  6. Enter the following script:
  7. Reindex JIRA.
  8. If you are using Dataplane, reindex it also.
  9. In Dataplane you can create a report that uses this scripted field to “segment by”.
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);

Hi Moriah Do i need to insatll Arsenale Dataplane also to see this, or just with scripted field, can i see that relation Epics- stories-tasks? can we see them in filter or in a graphical view with some gadget? Thanks Raj

Yes, it does require Arsenale Dataplane. I promise that add-on is worth the cost though. We use it for EVERYTHING on our dashboards because it allows you to slice and dice information as you see fit (including historical information in many cases.)

Ok Thanks for update. i will try that plug in.

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Feb 26, 2019 in Jira Software

How to prevent the propagation of unused project schemes, workflows & screens in Jira software

Atlassian ranks project attributes as the third most important factor impacting performance in the category of data. It’s not surprising, since project attributes are precisely the rules used to ma...

595 views 0 6
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you