Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Dealing with "Shadow Work" in Jira: How do you report on unestimated mid-sprint chaos?

Max Brüssow
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
August 16, 2026

Hi everyone,

Having worked as a Scrum Master and developer for many years, I rely heavily on time estimations and time-tracking for sprint planning and progress reporting.

Over time, I’ve consistently faced a reporting dilemma with Jira's standard Burndown Chart:

In a typical sprint, we see the Original Estimate line go down, while Time Spent climbs. In reality, Time Spent often shoots far past the original estimate, while the estimate line rarely hits zero because planned scope was left unfinished.

The core issue: The burndown line only jumps upward when estimated tickets are added mid-sprint. However, the majority of unplanned work consists of urgent bugs, ad-hoc support, or small operational requests that are added without an estimate (or with 0h).

Screenshot 2026-08-17 073434.png

A classic example from one of my past sprints (see image above):

  • Planned scope started around 270h, but ~80h remained incomplete at sprint end.

  • Notice specifically the second week (starting around July 1st): While the remaining estimate line almost stagnates, the Time Spent curve spikes massively all the way up to over 350h.

  • In this specific case, that divergence was caused entirely by incoming unestimated tasks, urgent operational requests, and support items that absorbed the team's capacity without moving the planned burndown.

  • To an outside stakeholder looking just at remaining estimates, it looks like a missed commitment — while in reality, the team delivered ~350 hours of pure output, mostly absorbed by untracked shadow work.

What I define as "Shadow Work":

By Shadow Work, I mean all the invisible, unestimated tasks and mid-sprint additions that consume real development hours, silently destroy sprint goals, but leave almost no trace in standard burndown analytics.

The Workarounds I've Tried

When planning sprints, I include capacity buffers per person depending on their role. But tracking and isolating where that buffer actually went afterwards remains difficult:

  1. Custom JQL Queries: Filters like created > SprintStartDate AND (originalEstimate is EMPTY OR originalEstimate = 0) help catch newly created items, but they completely miss existing backlog tickets dragged into an active sprint (as standard JQL lacks a clean timestamp for sprint assignment).

  2. External Spreadsheets (Excel/Sheets): I ended up building spreadsheets that pulled Jira data directly via API/exports. While it gave me the numbers, maintaining external sheets created unnecessary overhead, and constantly jumping between Jira and Excel just to run a retrospective feels disconnected and inefficient.

Analyzing these tickets inside our primary workspace is critical, as they are usually the exact reason a sprint misses its commitment.

My Questions to the Community:

  1. How do your teams isolate and visualize unestimated/unplanned work vs. original commitment?

  2. Do you rely on custom dashboards/JQL, third-party reporting, or do you also fall back on external tools like Excel?

  3. How do you clearly demonstrate to stakeholders that a missed goal was due to absorbed shadow work, not low team output?

Looking forward to your workflows, setups, and perspectives!

2 comments

Comment

Log in or Sign up to comment
Bevan Williams
Contributor
August 17, 2026

This is such a common thing I've seen across larger organisations. I've definitely used the exact same workarounds in the past. My sense here is that there's more conversation work required that tooling won't solve, it'll more than likely hide the issues more. I'll add thoughts after your questions though:

  1. A simple label is the least admin intensive (but most error prone) to have the clearest signal (combined with card colours or swimlanes) but custom fields can suffice too. The simplest visualisation I generally start with is the Sprint Report which shows the burndown, and any changes made during the sprint to work items or estimates. This assumes the work is logged, but it can drive good discussion, i.e. what contributed to this section flatlining, etc.
    • This requires teams set the sprint flag, but if they're good at logging/updating ticket status, then a daily updates check on your team spaces should make it easier for you to catch.
  2. Yes, my personal preference these days is custom dashboards in Atlassian Analytics. If you've got db experience you will quickly understand the schema to get access to excellent data. Rovo here is also incredibly helpful. Also, one small feature I love (and turn on by default every time) is the time spent indicator for the sprint board (Board settings).
  3. Have a (courageous) conversation with stakeholders and the team to review the sprint, identifying changes, unplanned additions, and unexpected "gotchas" that emerged. The Sprint Review is the most powerful way to demonstrate the complexity of building products by taking stakeholders along on the journey and allowing them to make recommendations early and often.

My take, based on the information shared, is that deeper underlying issues in the overall approach are likely causing these problems. I'm sensing that there's a commitment made to a goal that is essentially the work added to the sprint in planning. The risk is that time, cost, and scope are committed. The fact that teams deliver on this "commitment" in some sprints and not others already indicates that when running a fixed iteration (time) with a fixed team/capacity (cost), the scope of what will be delivered will vary. Estimates and our use of them should help stakeholders better understand this by showing alternatives in their language.

Suggestion: Teams should ideally commit to Outcomes not Outputs in planning (the only known at that time is what's important, and that we can't predict the future so the plan will change). Set a goal using language questions like "What will be different at the end of the sprint? How will we know we achieved it? If we delivered every item, what would make our customers celebrate?".

Suggestion: Estimates are a fancy term for a guess, so make ranges explicit. If using points, your velocity is not a single number but a range based on probability:

  • Worst: Least points delivered in a sprint
  • Avg: Avg points delivered over last x number of sprints
  • Best: Most points delivered in a sprint

When forecasting, the script changes from "will be delivered in 4 sprints", to "will be delivered between 2 and 6 sprints, with a high probability being within 4 sprints".

  • If working towards a specific release date the question stakeholders should ask is not "is this on track", but "what will I get on release date". This shift and the ranges above can shift the narrative of a burnup: "looking at our estimated backlog, we can deliver between 60-80% of the backlog based on what we know right now. This encourages the PO and stakeholders to ensure the most NB! items are in the 60% and lets them know early that, based on data, anything beyond the 80% in the backlog will not be delivered. Any unplanned changes or new requirements can then be compared to those ranges.

I've tried to illustrate these scenarios below with some dummy data (apologies for the handwriting).

fixed_scope.jpgfixed time_cost.jpg

I'm working off a lot of assumptions based on my read of it, so feel free to question/challenge/contextualise in response if I've entirely missed the mark.

Like Max Brüssow likes this
Max Brüssow
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
August 17, 2026

Hi Bevan!

First off, thank you so much for the detailed reply and for taking the time to share those illustrations — really appreciate the perspective!

You hit the nail on the head regarding the cultural aspect: tooling will never replace courageous conversations, and committing strictly to outputs rather than outcomes is a trap many organizations fall into. Forecasting in probabilistic ranges (best/worst/avg) is a fantastic way to reset stakeholder expectations around scope vs. time.

However, where I often see teams get stuck is having the empirical baseline data to even start those conversations effectively, especially when human factors come into play:

The friction with manual labeling: Labels are a great lightweight signal in theory, but they rely 100% on team discipline. When things get stressful, support tickets or ad-hoc requests are quickly pushed into the sprint without the proper labels or flags, which breaks the reporting again.

The barrier of ticket creation: Ticket creation needs to be as low-friction as possible. If the process requires too much categorization or overhead, developers often skip creating a ticket entirely and just do the work "under the table" — which makes the actual data foundation even more distorted.

Data as the foundation for the conversation: To tell stakeholders "we absorbed unexpected complexity", the Scrum Master needs clear, immediate proof. Without clean visualization, retrospectives often turn into subjective debates instead of fact-based reviews.

Operational reality of Time-Tracking: In environments where budgets or client billings are tied to tracked hours, we often can't completely detach from time metrics. Having to manually piece together sprint reports or maintain external analytics dashboards just to see mid-sprint additions adds heavy admin friction.

I really like your point about using the Sprint Report and looking at Atlassian Analytics schemas. But my goal has always been reducing that admin overhead so the team can spend less time wrangling data and more time having exactly the outcome-focused conversations you described.

Thanks again for the great food for thought and the sketches!

Quentin Sixt
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
August 17, 2026

I've made for myself a "Capacity planner" browser extension to try to anticipate this.

It allows me to put activity percentages for a ressource, so that i can try to estimate a sprint work quantity more accurately.

 

It's work in progress for me, but it might help you to visualise that.

The browser extension is free, and available for chrome and firefox (it also includes lots of others stuff that i use every week (poker plannig module, administration module, hubspot connection module, etc ...)). You can search "Jira Admin Hub", and asks me if anything is missing.

 

Hopes it helps you.

Like Max Brüssow likes this
Max Brüssow
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
August 17, 2026

Thanks for sharing this, Quentin! Really impressive feature set — especially love seeing fellow builders tackle Jira’s native UX gaps directly.

A few quick thoughts on your setup:

Having a client-side Capacity Planner for pre-sprint setup makes total sense to dial in realistic workloads early on.

I noticed your Label Manager module as well — which directly connects back to our point above about how quickly manual tagging turns into orphan clutter without dedicated cleanup.

The Tempo enhancements also show you're very familiar with the reality of time-tracking teams!

My main headache remains on the post-sprint retrospective side of things — when the sprint is done, and you need to look back and cleanly isolate: "We planned X capacity, but Y hours were swallowed by untracked shadow work."

I actually went down a very similar rabbit hole and started building a native Forge app (Beam) to automate that retrospective visualization for the exact same reason: getting tired of external spreadsheet workarounds.

I’ll definitely check out Jira Admin Hub — always great to see modular, local-first tools built by practitioners!

TAGS
AUG Leaders

Atlassian Community Events