Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 19:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.
×I am looking for a way to see the current work load (estimated time for all tasks in the sprint) during the planning or at least work phase of each individual team member on a glance.
Background:
We are using Jira with Greenhopper. In the old Agile boards, it was posible to sort the Planning Board by user and view the total time estimates for the selected Sprint for each user.
The new agile boards do not support this. I have found a Timesheet addin that would allow seeing the worked hours after the sprint, but I need an overview over an upcoming or current sprint.
What I would like to see is a report or view that would show me this information at a glance. It should be able to do so before the sprint has started (or completed), because it's needed in the planning phase. I considered using the Work board (since it lists hours on each task and I could manually note things), but unfortunately that only works for running sprints.
Agreed. Not having this feature makes it very difficult
I think I was able to get what you are looking for by using the Worload Pie Gadget configured to show current estimate for future sprints (based on a filter for the future sprint tasks) by assignee.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
From what I can tell, it is compatible with the agile greenhopper plugin and can be used on the same dashboard along side the greenhopper burndown gadget.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This solution works for me. It requires setting up a new filter each sprint (because the sprint in planning is not in openSprints()), but otherwise, it does what we need it to do.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Can you please extend a bit on how you tweaked the pie chart? So far I only could get it to display the number of issues per user, even though every single issue has a time estimate. Thanks!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
There are several things you can configure. 1) The filter you want to use. That could be smoething like "openSprints()" or a specific sprint you searched for. 2) Statistic Type: This may be what you need to configure. You may want to enter assigne (I think that's the English term for it, I am using a German version of the board, there it is "Bearbeiter".) 3) Time field to report on: Current Estimate is usually the best, I think, becauseit means it will stay informative during the sprint, and the beginning of th esprint, Original and Current Estimate are the same. 4) Interval: Whatever works for you ;)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for the quick answer. I think I see the problem now. The pie chart doesn´t offer me the "Time field to report on" you are talking to me about. Is this something you got from a plug-in? Thanks again
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ok, the reason was that I was using the normal pie chart and not the Workload pie chart. I had to install the Jira Charting Plugin to see it. Everything is solved now. Thanks for the help.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This is pretty late but I came across this thread in a Google search, so this may be helpful to someone else. In your filter, use "sprint in openSprints() AND sprint not in futureSprints()" to target your active sprint.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We are also looking for this functionality: "I am looking for a way to see the current work load (estimated time for all tasks in the sprint) during the planning phase of each individual team member on a glance."
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We are looking for exactly the same thing. It would be great if you could add beside the sum of the issues in the Work when you set the swimlane to assingees.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
To all who may want to get updates regarding implementation of this feature, here are the related tickets in our JIRA:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We want something like this.. Where it totals the count of the issues as well as the number of days. It is really annoying have to switch back to Classic (which doesn't actually work for sprints).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We use a little solution here, little jquery to copy paste in your annoncement banner. If someone have better way (with only jquery, there's other way I know) you can add your inputs!
Requirement :
function throttle(fn, time) { var t = 0; return function() { var args = arguments, ctx = this; clearTimeout(t); t = setTimeout(function() { fn.apply(ctx, args); }, time); }; } function getDaysWeeks(hours) { return { weeks: Math.floor(hours / (5 * 8)), days: Math.floor((hours % (5 * 8))/8), hours: hours % 8 }; } AJS.$(document).ready(function () { document.addEventListener("DOMSubtreeModified", throttle(function() { //rajoute un listener sur les changement dans la page html pour repartir le script a chaque 100 ms //var username = AJS.$('#header-details-user-fullname').attr('data-username'); //ajouter si vous voulez un IF username //if (username == 'martin.poirier@ubisoft.com') { var path = window.location.pathname; if (path.substring(path.lastIndexOf('/') + 1).indexOf('RapidBoard') > -1) { try { totalday = 0; totalhour = 0; totalweek = 0; totalminute = 0; var activesptring = AJS.$('.ghx-backlog-container.ghx-sprint-active').find('.ghx-issues') AJS.$("span[data-tooltip*='day']", activesptring).each(function() { totalday += parseInt(AJS.$(this).text().match(/(\d*).(?=day)/)); }); AJS.$("span[data-tooltip*='hour']", activesptring).each(function() { totalhour += parseInt(AJS.$(this).text().match(/(\d*).(?=hour)/)); }); AJS.$("span[data-tooltip*='week']", activesptring).each(function() { totalweek += parseInt(AJS.$(this).text().match(/(\d*).(?=week)/)); }); AJS.$("span[data-tooltip*='minute']", activesptring).each(function() { totalminute += parseInt(AJS.$(this).text().match(/(\d*).(?=minute)/)); }); totalremaininginhours = 0 if (totalweek != 0) { totalremaininginhours += totalweek * 5 * 8 } if (totalminute > 59) { totalremaininginhours += Math.floor(totalminute / 60) } if (totalday != 0) { totalremaininginhours += totalday * 8 } if (totalhour != 0) { totalremaininginhours += totalhour } var objRemaining = getDaysWeeks(totalremaininginhours); var weeks = "" var days = "" var hours = "" //console.log(objRemaining); var actions = AJS.$('.ghx-badge-group.ghx-right'); var rowemptylist = AJS.$('[class="aui-badge ubiadded"]').text() if (rowemptylist == undefined || rowemptylist == "") // Si le box de no issue drag and drop est pas la encore { AJS.$(actions).prepend('<span class="aui-badge ubiadded" title="Remaining estimate">' + objRemaining.weeks + 'w ' + objRemaining.days + 'd ' + objRemaining.hours + 'h</span>'); } else { AJS.$('[class="aui-badge ubiadded"]').remove() AJS.$(actions).prepend('<span class="aui-badge ubiadded" title="Remaining estimate">' + objRemaining.weeks + 'w ' + objRemaining.days + 'd ' + objRemaining.hours + 'h</span>'); } } catch (ex) { console.log("ERROR:" + ex); } } //end of if path string // } //end of if username //******************* CODE FOR THE WINDOWS ADDING COLOMNS REAMINING ESTIMATE if (AJS.$('.form-body.ghx-assigned-work-table th').length < 4) //check si la colonne existe deja.. (par le nombre) { try { var estimatetable = AJS.$('.form-body.ghx-assigned-work-table'); var firstthead = estimatetable.find('tr').eq(0); AJS.$('<th class="ghx-right">Remaining Time Estimate</th>').appendTo(firstthead); grandtotalremaininghours = 0; estimatetable.find('tbody > tr').each(function() { //chaque ligne.. currentuser = AJS.$(this).find('td:first').text() //first td avec le nom du user var totalhour = 0; var totalweek = 0; var totalminute = 0; var totalday = 0; var activesptring = AJS.$('.ghx-backlog-container.ghx-sprint-active').find('.ghx-issues') //regarder dans la page pour le active sprint AJS.$("img[data-tooltip*='" + currentuser + "']", activesptring).parent().parent().parent().find("span[data-tooltip*='day']").each(function() { totalday += parseInt(AJS.$(this).text().match(/(\d*).(?=day)/)); }); AJS.$("img[data-tooltip*='" + currentuser + "']", activesptring).parent().parent().parent().find("span[data-tooltip*='week']").each(function() { totalweek += parseInt(AJS.$(this).text().match(/(\d*).(?=week)/)); }); AJS.$("img[data-tooltip*='" + currentuser + "']", activesptring).parent().parent().parent().find("span[data-tooltip*='hour']").each(function() { totalhour += parseInt(AJS.$(this).text().match(/(\d*).(?=hour)/)); }); AJS.$("img[data-tooltip*='" + currentuser + "']", activesptring).parent().parent().parent().find("span[data-tooltip*='minute']").each(function() { totalminute += parseInt(AJS.$(this).text().match(/(\d*).(?=minute)/)); }); totalremaininginhours = 0 if (totalweek != 0) { totalremaininginhours += totalweek * 5 * 8 } if (totalminute > 59) { totalremaininginhours += Math.floor(totalminute / 60) } if (totalday != 0) { totalremaininginhours += totalday * 8 } if (totalhour != 0) { totalremaininginhours += totalhour } grandtotalremaininghours += totalremaininginhours var objRemaining = getDaysWeeks(totalremaininginhours); var weeks = "" var days = "" var hours = "" if (objRemaining.weeks != 0) weeks = objRemaining.weeks + 'w ' if (objRemaining.days != 0) days = objRemaining.days + 'd ' if (objRemaining.hours != 0) hours = objRemaining.hours + 'h' if ((weeks || days || hours) != "") { AJS.$(this).append('<td class="ghx-right">'+weeks + days + hours + '</td>') } else AJS.$(this).append('<td class="ghx-right">0</td>') }); var objgrandtotalremaining = getDaysWeeks(grandtotalremaininghours); if (objgrandtotalremaining.weeks != 0) weeks = objgrandtotalremaining.weeks + 'w ' if (objgrandtotalremaining.days != 0) days = objgrandtotalremaining.days + 'd ' if (objgrandtotalremaining.hours != 0) hours = objgrandtotalremaining.hours + 'h' if ((weeks || days || hours) != "") estimatetable.find('tfoot > tr:last').append('<td class="ghx-right">'+weeks + days + hours + '</td>') else estimatetable.find('tfoot > tr:last').append('<td class="ghx-right">0</td>') } catch (ex) { console.log("ERROR:" + ex); } } //*** END CODE REMAINING CODE ESTIMATE },100 ), false ); //})); //end listener }); //end ready
This will add 2 things:remainingjquery.png
</script>
Have fun
Martin Poirier
Ubisoft
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Martin!
Works for me (having some bugs in the calc in the summery window...)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi, great solution! Works perfect for me. Only a question: is there a way to hide the "Remaining Estimate" filed in card layout with the your script?
I need this because every card is enlarged and the backlog is more difficult to view.
Can you help me?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This solution is great, but it didn't work for us as-is because our users did not have an avatar set in their account (first initial displayed instead). We had to modify how the "currentUser" is fetched, and look for "span" and not just "img". Otherwise, we would get remaining times with values of 0.
The first part of the fix is to the currentUser code. This looks for the text portion of the td node only (otherwise, the first letter in the user's name would be included twice).
currentuser = AJS.$(this).find('td:first').contents().filter(function(){ return this.nodeType === 3; }).text();
Here's the second part of the fix.
var imgOrSpan = AJS.$("img[data-tooltip*='" + currentuser + "']", activesptring); if (!imgOrSpan.length) { imgOrSpan = AJS.$("span[data-tooltip*='" + currentuser + "']", activesptring); } imgOrSpan = imgOrSpan.parent().parent().parent(); imgOrSpan.find("span[data-tooltip*='day']").each(function() { totalday += parseInt(AJS.$(this).text().match(/(\d*).(?=day)/)); }); imgOrSpan.find("span[data-tooltip*='week']").each(function() { totalweek += parseInt(AJS.$(this).text().match(/(\d*).(?=week)/)); }); imgOrSpan.find("span[data-tooltip*='hour']").each(function() { totalhour += parseInt(AJS.$(this).text().match(/(\d*).(?=hour)/)); }); imgOrSpan.find("span[data-tooltip*='minute']").each(function() { totalminute += parseInt(AJS.$(this).text().match(/(\d*).(?=minute)/)); });
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Robert, how do you get the chart to show Current Estimate instead of the count of Issues?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Exactly!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I agree, some sort of widget / report that breaks down the amount of time remaining by person and task would be great.
While the work board can get you this information, you have to manually total up (from what I can see) and lose the quick at a glance that a more compact report can give.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
There is a little drop-down in the bottom right corner of the chart window, and if you select it, Edit is an option. On the Edit window you can select Current Estimate.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It seems far fetched to try to come with workarounds for what should be a given feature for a project management/planning tool. In my case, I am not allowed to apply add-ins and to have our JIRA admin do anything requires about a thousand sign-offs
To me a simple solution would be to create quick filters for each resource and then to dynamically adjust the traffic light timings in the top right hand corner in plan mode and add this to each swim lane too (since I can show each resource per swim lane). Easily seeing how much time each resource has allocated to them has to be bread and butter for any planning tool surely??
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Viðar,
It doesn't look like Tempo is available for could/onDemand. Do you have plans to make a cloud version?
Thanks,
Greg
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Tempo comes pre-installed with JIRA Cloud, you'll only need to activate it. Go to JIRA Admin > Add-ons > Manage add-ons and look up Tempo Timesheets, and click Free trial there to start using it.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You are correct. Planner is not yet available for JIRA Cloud but the team is working hard on getting it there.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Looking for the same thing as well.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The best means of answering the question, "How much time does each resource have in the sprint container we're working?" is to setup a Workload Pie gadget on a dashboard and use a filter like this - note use of the JQL function, futureSprints(). This will sum all subtasks in all sprints (containers) that have not been started yet. In my example, I'm including a cateogry of projects to include along with exluding two subtask issue types in the counts. This way, at sprint planning, we can stuff everyone up to capacity by referring to this pie chart, and then officially, "Start" the sprint.
category = A-Team AND
issuetype in subTaskIssueTypes() AND
issuetype not in ("Standup Meeting", "Sprint Mgmt") AND
Sprint in futureSprints()
ORDER BY assignee ASC, progress ASC, key ASC
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I see that Tempo Planner has been released. Browsing over the materials I can not find a definate answer to wether this will solve this problem we are all having. Since Tempo Planner is only available on Jira 6 and above I am not able to test it out.
Anyone able to give this a test? If we could add the Tempo Planner tag to the question maybe those guys have an answer.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi David,
We @Tempoare looking into this problem and will report here when we have a solution.
Cheers,
Viðar
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Tempo Planner does show you the estimate and assignee information for an iteration. This works great with JIRA Agile. See screenshot here for example: https://tempoplugin.jira.com/wiki/display/PLANNER/Team+Backlog
Better docs about this feature will be available soon!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
As I see it, the issue is that this screen is completely separate from the JIRA Agile sprint planning screen.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It is but we are doing a few things to make it more user friendly. The first is that you can perform many of the actions that you do on the sprint planning screen in the Planner screen. But we have other ideas and if you like to share some suggestions then we would love to hear them.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We also need to see
I am very surprised these basic features are not implemented. Even TFS has this now.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi everyone,
We have just released JIRA Agile integration for our plugin Intelligent Reports. You can easily get this information into a report using the plugin. Simply design your report visually in Microsoft Word, then use simple point and click rules to fill in the data and estimates. No scripting or API to learn.
There is even an included example "Sprint timesheet" report which displays the hours logged in a sprint after the sprint, which is similar except it reports logged hours instead of estimates.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Report is not something that can be used during spring planning.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We are looking for the same functionality.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
If it is available to you, Agile > Classic ..., is the only way I have found to see this information. This is not very useful as the Classic version is no longer being updated or supported AND it also goes off of FixVersion rather than Sprint. We are creating a version for each sprint which allows us to track it thus. Hopefully a Sprint based solution will be implemented.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
One other workaround I just discovered is to make a Quick Filter for each of your Developers which will filter issues assigned to them and then show the sum of the estimates.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I am more looking for plugins or funtionality in Jira Agile then workarounds.
As a workaround, this search query would give you each developers task and then you have to compute manually (is tedious, e.g. would be somethnig you'd want a plugin for)
assignee = [developername] AND type = "[task type for work tasks*]" AND Sprint = "[sprint number]"
*) If you make any distinctions in this regard.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The ability to add each participant to the sprint, plan the team's capacity and see as we plan the sprint each participant's workload is a very important feature.
When will this be made available?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I am currently Open Question Reminders, and yes, the question is still open, I am not aware of any features that would allow me to see estimated time/remaining time by team member.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.