If your daily standups feel like status-update theater where blockers surface too late, automated stuck story detection can transform how your team identifies and resolves blocked work. This guide shows you the signals to watch for and how to act on them.
The daily standup has a problem: by the time someone says "I'm blocked," they've already been stuck for hours—sometimes days.
The developer didn't want to seem like they couldn't handle it. Or they thought they'd figure it out in the next hour. Or they just forgot to mention it because they were focused on a different question.
What if you could detect stuck work before anyone had to admit it?
What "Stuck" Looks Like in the Data
A story is stuck when it's assigned, in progress, but showing no signs of actual progress. The signals are there—you just have to look for them.
Signal 1: No Commits
The Jira ticket moved to "In Progress" three days ago. But there are no commits linked to it. No PRs opened. No branch created.
Maybe the developer is still in research mode. Maybe they're struggling with the requirements. Maybe they got pulled into something else. Either way, it's worth asking about.
Signal 2: Stale PR
A PR was opened, but it's been sitting without updates. No new commits. No review comments addressed. It's lingering in that uncomfortable state between "started" and "merged."
This often means the developer hit a wall—a failing test they can't figure out, a review comment they don't know how to address, or just lost momentum and moved on to something shinier.
Signal 3: High Churn
The developer is active—lots of commits—but they're thrashing. Adding lines, then deleting them. Multiple force-pushes. This kind of churn often indicates they're struggling with the approach, trying different solutions, and not making forward progress.
Signal 4: Issue Re-opened
The ticket was marked "Done" and then moved back to "In Progress." Something went wrong in QA or production. The developer is now revisiting work they thought was finished—often the most demoralizing kind of block.
Automated Detection
In Velocinator, stuck stories surface automatically in the Work Log view.
We cross-reference:
- Jira ticket status and age
- GitHub activity (or lack thereof) on associated branches
- PR status and last update timestamp
- Commit frequency and churn patterns
When a story matches our stuck heuristics, it gets flagged. You can see at a glance: which tickets are "In Progress" with no recent GitHub activity, and for how long.
What To Do With This Information
Detection is only useful if you act on it. Here's how to use stuck story data without creating a surveillance culture.
Make It Visible to the Team
Share the stuck story dashboard with the whole team, not just managers. When everyone can see what's stalled, help flows naturally. "Oh, PROJ-456 is stuck? I ran into that same issue last month—let me pair with you."
Use It to Prepare for Standup
Instead of going around the room asking "Any blockers?", start with "I see three stories with no activity in 48 hours. Let's check in on those." It changes the standup from interrogation to problem-solving.
Identify Patterns
If the same developer has stuck stories every sprint, that's a coaching opportunity. Maybe they need help breaking down work. Maybe they're overcommitted. Maybe there's a skill gap to address.
If the same type of story gets stuck (e.g., anything touching the payments system), that's a systemic issue. Maybe that part of the codebase needs better documentation or dedicated ownership.
Don't Punish
The goal is to unblock faster, not to shame people for getting blocked. Everyone gets stuck. The question is how quickly the team notices and helps.
The Best Standup Is No Standup
When stuck work is detected automatically, you don't need a daily synchronous meeting just to surface problems. The data is always visible. Help can be offered asynchronously.
Some teams we work with have replaced daily standups with a Slack bot that posts: "Stories at risk: PROJ-123 (3 days, no commits), PROJ-456 (PR stale 2 days)." The team responds with offers to help. No meeting required.
Start Detecting
Connect your Jira and GitHub to Velocinator, and stuck stories start appearing within minutes. No configuration required—we know what "stuck" looks like because we've seen thousands of engineering teams.
Your standups will thank you.
For more on visualizing work patterns, see our guide on work log heatmaps. And to understand how context switching compounds the stuck story problem, read about context switching: the velocity killer.
Frequently Asked Questions
- How can I detect stuck stories without asking in standup?
- Cross-reference Jira ticket status with GitHub activity. A ticket marked 'In Progress' with no commits, stale PRs, or high code churn for 48+ hours is likely stuck. Tools like Velocinator automate this detection.
- What signals indicate a Jira story is blocked?
- Key signals include: no commits linked to the ticket for 2+ days, a PR sitting without updates, high code churn (adding and deleting the same code), or a ticket re-opened after being marked done.
- Can I replace daily standups with automated stuck story detection?
- Some teams have replaced standups with a Slack bot that posts at-risk stories daily. The team responds with offers to help asynchronously. This works best when the detection data is visible and trusted.



