Notes
·
·
4 min
Why Blocked Tickets Stay "In Progress"
Project boards go stale for a reason nobody talks about: moving a ticket to Blocked has a cost, and leaving it alone doesn't. Here's why teams hide bad news from the board, and how to make the truth cheaper to tell.
Every project manager has had this conversation.
The board looks fine. A key feature sits in "In Progress." You catch up with the person building it and they mention, almost in passing, that they hit a wall three days ago and have been working on something else while they wait for an answer from legal.
Three days. The board said nothing.
The standard response is a note about ticket hygiene, or a reminder in standup to keep statuses current. But if you've watched this happen enough times, you start to notice it's not a discipline problem. The engineer knew the ticket was blocked. They chose not to move it.
Bad news has a price
Here's what moving a ticket to "Blocked" actually does on most teams.
It appears on the dashboard the VP looks at. It gets called out in the next standup. It generates a Slack message from someone asking what's going on. Sometimes it generates a meeting. And in the background, it becomes a data point in a conversation about velocity or performance that the person moving the ticket didn't ask to be part of.
Leaving it in "In Progress" does none of that. The work continues quietly, the person solves the problem behind the scenes or waits for the answer they need, and when it's resolved they move it to Done. Nobody asks. Nothing escalates.
A PM with a decade of experience put it this way on Reddit: when a ticket moves to Blocked, it can trigger anxiety, extra meetings, or immediate pressure about deadlines — so people keep it in "In Progress" just to keep the peace while they solve the problem off the grid. Another commenter in the same thread said it more sharply: on one team a blocked status is information; on another, it's a confession.
That's the whole mechanism. The board isn't out of date because nobody cares. It's out of date because telling the truth on it costs something, and not telling it costs nothing.
The fixes that don't work
Stricter process. "Update your tickets daily" adds a rule to a system where the rule is already the problem. People who were hiding bad news to avoid a meeting will now hide it to avoid a meeting and a compliance note.
A simpler board. Fewer fields, fewer states — this helps a little. But the friction isn't the number of clicks. It's what happens after the click.
Rewarding early flags. This is the right instinct and the hardest to sustain. It works for exactly as long as leadership responds to every Blocked ticket with "what do you need?" instead of "why?" — and the first time someone slips, everyone goes quiet again.
Automation off the code. For engineering teams, keying status off GitHub — a PR merged, a ticket closes — removes one class of manual update. But blockers aren't in the code. "I'm waiting on legal" doesn't have a commit.
The truth already got told
Here's the thing the ticket-hygiene conversation misses: the engineer did say the ticket was blocked. They said it in standup. They said it in a DM to their lead. They said it on a call. What didn't happen is the second telling — the one where someone opens the board and types it in.
The first telling is cheap. It's a sentence, said to a colleague, in the flow of work. The second telling is expensive, because it's an announcement to everyone who looks at the board, and it carries all the consequences above.
So the fix isn't to lower the cost of the second telling. It's to not need one.
A board that heard the first telling
That's what Fluorine does. Its engine, Flo, reads where the first telling happens — Slack, standup transcripts, GitHub, forwarded email — and when someone says "I'm stuck until legal signs off," it proposes moving the ticket to Blocked, quoting that sentence, and asks the person who said it to confirm.
That last part is the whole design. Flo doesn't move the ticket. It doesn't announce anything. It shows the person their own words and asks if the board should reflect them. They click yes, and the ticket is Blocked with the reason attached — not as a confession, but as a fact they already told a colleague, now visible to the people who can unblock it.
Nothing moves without them. Flo never writes to Slack, never posts, never escalates. Here's exactly what it reads and never does.
The number that changes
One of the commenters in that thread suggested a better metric than "how many tickets are blocked": the time between a blocker being discovered and becoming visible to the team. Shorten that, and the board gets more accurate without anyone maintaining it.
Fluorine measures exactly that. It has the timestamp on the message that said "blocked" and the timestamp the board showed it. On our own workspace this month, blockers reached the board 18 hours after they were said. Before Flo, the honest number was "when someone got around to it."
The audit-log worry
There's a fair objection here: a board that hears everything sounds like surveillance. If management can see every "I'm stuck" the moment it's said, you've made bad news more expensive, not less.
The answer is who the board answers to. Flo asks the person who said the thing, before anything moves. If they say no, nothing happens and nothing's logged as a confession. The board only reflects what a person confirmed. That's the difference between a tool that helps a team tell the truth and a tool that reports on them — and it's a line worth holding.
Try it on one project
Connect the Slack channel and the standup recording for one project. Run two weeks normally. Then look at what Flo proposed as Blocked, and when — and compare it to when the board would have known.
Fluorine is free right now. Try it.
FAQs
Does Flo tell my manager when I say I'm stuck? No. Flo proposes to you. The board only changes if you confirm, and the proposal isn't visible to anyone else until it's applied.
What if I said "blocked" casually and didn't mean it? Click "Not now" or "That's not what I meant." Flo records the correction and doesn't propose it again from the same sentence.
Does this work if my team doesn't use a "Blocked" status? Yes — statuses are yours to name. Flo proposes moves between whatever states your board has. It also has a separate "Waiting" status for work in someone else's hands, so a handoff doesn't look like an obstacle.
Can it read standup if we don't record it? It reads the transcript your meeting tool produces — Zoom, Google Meet, or Granola. If there's no recording, there's no transcript, and Flo only hears what's in Slack and email.