Viewing sub-tasks on the Rapid Board in Plan Mode

I'd like to be able to view sub-tasks on the Rapid Board in Plan Mode.

We estimate our Stories and Epics in Story Points, then during the Sprint Planning Meeting we break them down into tasks with time estimates against them. However:

- If we start the Sprint before estimating the sub-tasks, then we can see the tasks in Work mode. However, any tasks created get added as "Scope Change" in the Sprint Report; also, the grey "ideal line" in the burndown chart is misleading as it runs from 0 to 0 through the length of the Sprint.

- If we could start the Sprint after estimating the sub-tasks, then this would resolve the above issues ... but we can't see the sub-tasks until after we've started the Sprint.

(I see this sort of question was asked in April - https://answers.atlassian.com/questions/49582/is-there-anyway-i-can-see-my-sub-tasks-on-plan-mode-on-rapid-board - but didn't get much of an answer.)

5 answers

1 accepted

Hi Neil,

You can see them today, they appear in the sub-tasks tab on the detail view. Check out this screenshot

Just create the tasks and estimate them in the sub tasks tab before starting the sprint.

Thanks,
Shaun

Hi Shaun,

Any answer to Jeff scenario above as this is exactly what I am also struggling with. The rough estimates are done at the Story level. Then, more detailed estimates are done at Sub-Tasks level. In a single story, I can have for example 5 sub-tasks assigned to 3 different people. Before starting the sprint, I want to know how much time is assigned to each developer using a quick filter with Assignee = "developer xyz". I am expecting to see the total remaining hours, which is the sum of all subtasks assigned to "User xyz".

But this is not possible because the sub-tasks are not visible in Plan Board. Any suggestion?

Thanks, Normand

Shaun,

This is also an issue for me. We organise our boards between teams using components. So we might have a story with sub tasks "assigned to" different teams via the component field.

The issue is that neither the story or the relevant sub task show in planning mode though the filter behind the board pulls in the sub task.

Is there any workaround to enable the sub task to be added to the sprint since it is not accessible in planning mode?

Thanks, Tom.

I have a different challenge. If a story has sub-tasks that need to be assigned to different people during sprint planning how can you get a total of the hours assigned to each person? Let's say person A has a story with 2 sub-tasks, each one is 1hr. If one sub-task is assigned to person A and the other assigned to person B how can I see that each of them has 1hr of work? When you filter the board for person A (using a quick filter) you get a total of 2hr of work assigned to them. When you filter for person B you get nothing.

I also find the missing sub-tasks lacking. Out case is that sometime we break down a task that has to tun over several sprints into sub-tasks, some to be added to sprint n and some to sprint n+1. Not being able to see the sub-tasks in the planning view makes this "impossible" to do.

The version side bare has a choice to view "All issues". A sub-task is an issue in my head, so I look at this as a bug. If a someone decides that all sub-tasks should be closed in the same sprint in their flow, fine, use a filter to remove the sub-tasks form the view, but I do not think it is a good idea to force people to use a specific flow.

I faced the same issue and found the following workaround:

1 - Create a filter with the sprint ID

2 - Create a workload pie chart of the filter you created

The workload pie chart summarizes the estimations by assignee, or anything else.

Hello,

I have made a workaround

I did a little something its not perfect at all should any of you do better just put it here.

- It add a button left of PLAN mode

- It work only for certain user since it can create a load on the isntance (get the issues data in rest)

It add the sum of subtask instead of story point/time estimate when you click on it. Also add a custom field (we have another kind of priority system). So if you use a quick filter you can use your quick filter, then click the new button. It will show the sum of all subtsak into your planning board.

Add this code into the Announcement banner

<script type='text/javascript'>
AJS.$(document).ready(function () {
    var username = AJS.$('#header-details-user-fullname').attr('data-username');
    console.log(username);
    if (username == 'name1' || username == 'name2(changeme)') {
        var path = window.location.pathname;
        console.log (path);
        if (path.substring(path.lastIndexOf('/') + 1).indexOf('RapidBoard') > -1) {
            AJS.$('#ghx-modes').before('<button class="aui-button" id="add-ubi">Show CF and Aggregate Time</center>');
                AJS.$('.add-ubi').on('click', function () {
                    $('add-ubi').trigger("click");
                });
                AJS.$("#add-ubi").click(function () {
                    //AJS.$("#add-ubi").toggleClass("active");
                    //AJS.$("#add-ubi").remove();
                    AJS.$('.ghx-issues > div').each(function () {
                     try {
                            console.log('Found issue list in sprints');
                            var row = this;
                            var issueKey = AJS.$(this).attr("data-issue-key");
                            //console.log('Found issuekey' + issueKey);
                        if (issueKey)
                        {
                            
                            AJS.$.getJSON(AJS.contextPath() + '/rest/api/latest/issue/' + issueKey, function (data) {
                                console.log('Got data for - ' + issueKey);
                                if (data.fields.customfield_10222 || data.fields.customfield_10222 != null)
                                {
                                    var value = data.fields.customfield_10222.value;
                                    if (value.lenght)
                                    {
                                    value = value.replace("'", "\'");
                                    var actions = AJS.$(row).find('.ghx-end');
                                    AJS.$(actions).before('<style type="text/css"> .ghx-issue-compact .ghx-end-ubi{position:absolute;right:-20px;top:5px;}</style><div class="ghx-end-ubi"><span title="Ubi Priority">' + value + '</span></div>');
                                    }
                                }
                                if (data.fields.aggregatetimeoriginalestimate)
                                {
                                    var value2 = data.fields.aggregatetimeoriginalestimate / 60 / 60 / 8;
                                    var actions2 = AJS.$(row).find('.ghx-end .aui-badge');
                                    AJS.$(actions2).html(value2.toFixed(2).replace(/[.,]00$/, "") + "d");
                                }
 
                            });
                        }
                     }
                        catch (ex)
                        {
                            console.log ("ERROR");
                        }
                    });
                    AJS.$('.js-issue-list > div').each(function () {
                        try {
                            console.log('Found issue list in backlog');
                            var row = this;
                            var issueKey = AJS.$(this).attr("data-issue-key");
                        if (issueKey)
                        {
                            console.log('Found issuekey' + issueKey);
                            AJS.$.getJSON(AJS.contextPath() + '/rest/api/latest/issue/' + issueKey, function (data) {
 
                                console.log('Got data for - ' + issueKey);
                                if (data.fields.customfield_10222 || data.fields.customfield_10222 != null)
                                {
                                    var value = data.fields.customfield_10222.value;
                                    console.log("we are inside of value" +issueKey)
                                    value = value.replace("'", "\'");
                                    var actions = AJS.$(row).find('.ghx-end');
                                    AJS.$(actions).before('<style type="text/css"> .ghx-issue-compact .ghx-end-ubi{position:absolute;right:-20px;top:5px;}</style><div class="ghx-end-ubi"> <span title="Ubi Priority">' + value + '</span></div>');
 
                                }
                                if (data.fields.aggregatetimeoriginalestimate != null || data.fields.aggregatetimeoriginalestimate != 'undefined' || data.fields.aggregatetimeoriginalestimate != "" || data.fields.aggregatetimeoriginalestimate.lenght != 0)
                                {
                                    var value2 = data.fields.aggregatetimeoriginalestimate / 60 / 60 / 8;
                                    var actions2 = AJS.$(row).find('.ghx-end .aui-badge');
                                    AJS.$(actions2).html(value2.toFixed(2).replace(/[.,]00$/, "") + "d");
                                }
 
                            });
                        }
                    }
                            catch (ex)
                    {
                        console.log ("ERROR");
                    }
                    });
        });
    }
}
});
</script>

So here is it I made it quick but ajust it to your need

Martin Poirier

Ubisoft

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published May 21, 2018 in Jira Software

How large do you think Jira Software can grow?

Hi Atlassian Community! My name is Shana, and I’m on the Jira Software team. One of the many reasons this Community exists is to connect you to others on similar product journeys or with comparabl...

1,202 views 10 18
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