Why Jira Boards Lie
Jira does not tell you where your project actually stands. Here is why the board looks healthy right up until the project slips.
By Ege Uysal
There is a particular kind of meeting that happens in engineering teams about once a quarter. The project is behind. Nobody is sure by how much. The engineering lead pulls up the Jira board to get a read on the situation, and the board looks fine. Tickets in progress. A backlog that is not visibly catastrophic. A burn-down chart that trends roughly where it should.
Two weeks later, the project slips by a month.
This is not a process failure. It is not a discipline problem. It is what happens when a team mistakes board health for project health, and Jira, by design, makes that mistake very easy to make.

The board only knows what people tell it
Jira is a manual system pretending to be an information system. Every piece of data on a Jira board was put there by a human who decided to log something at a specific moment in time.
The board does not:
- Read your GitHub activity
- Watch your Slack threads
- Notice when a ticket has been sitting in In Progress for eleven days with no commits attached to it
It reflects intent at the moment of logging. Not reality at the moment of reading.
This creates a category of invisible problems that Jira structurally cannot surface. A ticket moves to In Review because that is where the engineer put it when they opened the PR. The PR sits unreviewed for six days because two reviewers are waiting on a decision about the approach that was discussed in a Slack thread and never formally resolved. The ticket stays In Review. The board looks fine.
The blocker is real. The board does not know it exists.
This is not a Jira problem specifically. Linear has the same gap. Shortcut has the same gap. Any tool that depends on human updates to reflect project state will have this gap. The difference is that Jira, more than any other tool in this category, has become the default proxy for project health across engineering organizations, which means the gap between board state and actual state carries more organizational weight when it gets it wrong.
Tickets are not decisions
Jira is built around tasks. A ticket represents something to do. It has a status, an assignee, a priority. It does not have a reasoning field. It does not capture the conversation that led to this work being prioritized over something else. It does not flag when the original premise of the ticket has changed.
Decisions, the actual steering mechanisms of a project, mostly happen outside Jira:
- In Slack threads that die after two weeks of inactivity
- In the last five minutes of a standup when someone says let's just go with option A and nobody writes it down
- In a GitHub PR comment where the reviewer suggested a different approach and the author said good point, pivoting, and the ticket never reflected the change

The result is a Jira board where tickets have statuses that no longer accurately describe what is happening, owned by the last person who touched them, under priorities that were set before three subsequent decisions changed the context entirely.
The board is not a lie in the sense that anyone put false information in it. It is a lie in the sense that it was never built to hold the information that would make it true.
The sprint ceremony that makes this worse
Sprint planning and retrospectives were supposed to be the corrective mechanism. The team reviews the board, identifies drift, resets priorities. In theory, this is the process that keeps Jira accurate.
In practice, sprint ceremonies have become the ritual that launders Jira's gaps into organizational memory.
A ticket that has been In Progress for two sprints gets moved to the next sprint. A blocker raised in the last retro appears again in this retro. The board is updated. The underlying problem remains untouched.
Sprint velocity becomes the headline metric because it is the thing Jira can measure. It measures output, not progress. A team can hit sprint velocity numbers every sprint while the actual project moves laterally, because velocity counts closed tickets regardless of whether those tickets were the right ones to close.
The board confirms activity. It does not confirm direction.
What the board obscures at scale
The problems above exist in any sized team. They compound as the team grows.
At five engineers, the gap between Jira and reality is small because everyone has enough ambient context to fill it in. They know which tickets are actually stalled. They were in the Slack thread. They attended the meeting. The board is not accurate but the team compensates for it automatically.
At fifteen engineers, that ambient context does not exist:
- Two engineers working on different parts of the same feature may have no overlapping Slack history
- A new hire has no way to know that the ticket they picked up has a hidden dependency on a decision that was made informally six weeks ago and documented nowhere
- The board is the only shared source of truth for people who do not have the context to know it is incomplete
That is a different kind of dangerous.
This is the exact point where most engineering organizations reach for more Jira. More labels, more custom fields, more sprint rituals, more ceremony to try to force accuracy into a system that was not designed to maintain it automatically. The board gets more elaborate. The gap does not close.
The metric worth watching instead
Jira measures what was planned and what was logged. Neither of those things directly answers the question engineering leads are actually asking:
Is this project going to hit its goal, and what is in the way right now?
A more useful metric is open decision age: how long decisions have been sitting unresolved across a project. Not the tickets. The decisions.
An engineering team can have a clean Jira board and six open decisions sitting in Slack threads with no owners. The sprint velocity will look healthy right up until the week three of those decisions surface as blockers simultaneously and the project slips.
Tracking open decisions is harder than tracking ticket status because decisions do not live in Jira. They live in the gaps between Jira, Slack, and GitHub:
- PR comments where approach changes were discussed but never formalized
- Thread replies where blockers were raised and acknowledged but never owned
- Meeting notes that exist only if someone remembered to write them
That is the actual measure of project health. Not the board.

What accurate project state actually requires
The data for an accurate read on project health exists in every engineering organization. It is distributed across GitHub activity, Slack discussions, and issue trackers in a way that no single tool was built to synthesize.
Accurate project state requires reading across all three and surfacing what matters:
- Which decisions are open and unowned
- Which work has stalled and why
- What has actually moved versus what has been logged as moving
Jira was not built to do this. It was built to be a structured place to put tasks, and it does that reasonably well. The problem is not the tool. It is the belief that the tool is telling you something it was never designed to tell you.
The board is a filing cabinet that some people remembered to update. Treating it as a real-time project health monitor is the mistake.
Ryva reads your GitHub and Slack activity and surfaces the actual state of your project: open decisions, active blockers, and what has moved since the last read, without requiring anyone to manually update a board to make it accurate.
If your team is running on GitHub and Slack and you want project state that does not depend on disciplined ticket hygiene to stay true, try Ryva on your repo. No account required.