What is a blocker in project management?
blockers in project management is a key topic in modern project management and teamwork. A blocker is a condition outside the assignee’s control that prevents a task from progressing and requires a named person to act before work can resume. It is not “this is hard” and it is not “I have not started.” It is a hard stop with an external cause.
The distinction matters because only the second category deserves escalation. Treat difficulty as a blocker and the log fills with excuses until managers stop reading it. Treat real blockers as ordinary delay and the schedule absorbs a cost nobody accounts for.
A one-sentence test works: *”If X does not happen, this task cannot move, and I cannot make X happen myself.”* If more effort from the assignee solves it, it is not a blocker. If X depends on a person, a decision, an approval, an environment or another team, it is.
What is the difference between a blocker, a risk, an issue and a dependency?
These are four different objects, and mixing them is the most common reason a blocker log turns into noise. A risk is a probability; a blocker is a present-tense fact. An issue is a problem you own and can work; a blocker is one you cannot work until someone else moves. A dependency is a planned link that only becomes a blocker when it is late.
| Signal | Timing | Can the team fix it alone? | Where it belongs | Example |
|---|---|---|---|---|
| Risk | Future, uncertain | Sometimes | Risk register | “The vendor may miss the API deadline” |
| Issue | Present, owned | Yes | Issue tracker | “Login fails on Safari 17” |
| Blocker | Present, external | No | Blocker log with owner and age | “Legal has not signed the data-processing agreement” |
| Dependency | Planned link | Not applicable until late | Task graph or WBS | “Release 3 starts after migration sign-off” |
| Delay | Present, no single cause | Varies | Schedule review | “Testing is two days behind” |
Two rules follow. A dependency becomes a blocker the moment it is late, and the log should capture that transition date. And a risk that materialises must move out of the risk register into the daily conversation, or it stays invisible precisely when it starts costing money.
Join Doitify Today
Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.
Which fields turn “it’s stuck” into a managed item?
Six fields do the work. Four are mandatory; two make the item usable in a steering meeting.| Field | Question it answers | Weak entry | Useful entry |
| Blocked item | What work has stopped? | “API work” | “Payments API v2 — task PAY-214, customer checkout” |
|---|---|---|---|
| Cause | Why did it stop? | “Waiting” | “Vendor sandbox credentials not issued; ticket 88213 open” |
| Owner | Who is unblocking it? | “The team” | “Nadia in procurement, backed by Tomas if no reply by Thursday” |
| Age | Since when? | “A while” | “Blocked since 4 March, 6 working days” |
| Impact | What does it cost? | “It’s urgent” | “Holds two developers and the 14 March release gate” |
| Next action | What happens next, and when? | “Following up” | “Escalate to vendor account manager on 7 March if silent” |
The highest-leverage field is owner. Blocker age is almost entirely a function of whether one named human feels responsible. Shared ownership equals no ownership, and “the team is aware” is a status, not an owner.
The second is visible age, in working days, without opening the item. Age creates mild social pressure that a status field never does. A card showing “day 7” gets a conversation; a card showing “in progress” gets silence.
> Important note: Do not make the blocked person the only one responsible for chasing the block. That punishes the person with the least power to resolve it, and produces developers spending afternoons writing reminder emails instead of building.
How do you track blockers without building a bureaucracy?
Keep the log in the same system as the tasks, and make blocked a property of the task rather than a separate document. A blocker living in a spreadsheet needs a second act of discipline every time it changes — and that discipline disappears in the first busy week.
A workable minimum:
- One status value. Add “Blocked” to the existing workflow instead of inventing a parallel process.
- Two required fields on transition. Cause and owner cannot be empty. Most tools can enforce this with required fields, which removes the awkwardness of chasing people for metadata.
- One filtered view. A saved view called “Blocked, oldest first” that anyone can open. Sorting by age rather than priority is deliberate.
- A soft cap on open blockers. Above roughly ten at once, a ten-person team is accumulating rather than clearing.
- One process owner. Usually the delivery lead or Scrum Master — whose job, in the words of the Scrum Guide, includes “causing the removal of impediments.”
Teams under five people can run this on a shared board with a blocked column and a date. Teams above twenty usually need an intake path, because blockers start arriving from places the delivery team cannot see.
How should a daily standup handle blockers?
Spend the time on what changed, not on what is still true. Reading an unchanged list aloud every morning trains people to stop listening; by week two it is background noise.
A 15-minute structure that holds up:
- Only new or changed blockers get airtime. The rest is on the board, sorted by age.
- Four facts per blocker: what is blocked, by whom, since when, and what happens next. “Checkout is blocked by vendor credentials, day six, Nadia escalates to their account manager today.”
- The owner speaks, not the blocked engineer. This single change moves the conversation from complaint to commitment.
- Anything past the age threshold goes straight to the escalation list without debate. Policy decides, not the room.
- Park the diagnosis. Root-cause discussion belongs in a smaller session with the two or three people who can act.
For distributed teams the same structure works asynchronously, provided the board is the source of truth. The failure mode is a second, prose-only record that drifts from it within a month.
When should a blocker escalate, and to whom?
Escalation should be a scheduled event, not an emotional decision. Set the clock while the project is calm, publish it, and let it run. That removes the social cost of “making a fuss,” which is exactly what stops junior team members raising a blocker on day one.
| Level | Who acts | Trigger | First response | Target resolution |
|---|---|---|---|---|
| 1 | Assignee and direct lead | Blocker created | Same working day | 2 working days |
| 2 | Delivery lead or Scrum Master | Age reaches 3 working days | Within 4 working hours | 5 working days |
| 3 | Sponsor or department head | Age reaches 5 days, or a release gate is at risk | Within 1 working day | 10 working days |
| 4 | Steering group or executive owner | Age reaches 10 days, or contractual impact | Next steering meeting, or ad hoc if a date is at risk | Decision or scope change |
Three rules keep the ladder honest:
- Age, not severity, triggers escalation. Severity is self-assessed and inflates. Age is a timestamp.
- Every level names a person, not a title. “Head of Operations” works on an org chart; “Sara” is what makes a phone call happen.
- Escalation is not blame. Say that out loud during onboarding, or people will hide blockers to avoid looking incompetent.
One further rule earns its keep: if the answer to an escalation is “we cannot fix this soon,” the correct output is a scope or date decision, not a longer wait. Escalation that produces sympathy instead of a decision is a broken rung.
Which metrics tell you the escalation path is broken?
Two numbers carry most of the value: open blocker count and average age in working days. The rest is diagnostic detail.
| Metric | How to compute | What “bad” looks like | What it usually means |
|---|---|---|---|
| Open count | Items in Blocked state today | Rising for 3+ weeks | Intake outpaces clearing capacity |
| Average age | Sum of ages ÷ open count | Above the level-1 SLA | Nobody owns follow-up |
| P90 age | Oldest item of ten, or 10th of 100 | Far above the average | A few items are rotting silently |
| Inflow vs outflow | Created vs cleared per week | Outflow below inflow | The process is decorative |
The average is easy to misread, which is why P90 matters. Ten blockers clearing in a day while one sits for six weeks averages into a respectable number and hides the relationship damaging the project.
Numeric example 1: reading fourteen blockers
Fourteen open blockers, ages in working days: 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 8, 11, 14, 19.
- Total age = 1+1+2+2+3+3+4+5+5+6+8+11+14+19 = 84 working days.
- Average age = 84 ÷ 14 = 6.0 working days.
- The oldest item sits at 19 days, over six times the level-2 trigger.
The average suggests a mild problem. The distribution says something sharper: the items at 6, 8, 11, 14 and 19 days account for 58 of the 84 days — 69% of all blocked time. Clearing five items, not fourteen, removes most of the damage. That is the practical argument for sorting by age instead of priority.
What does an aging blocker actually cost?
Blocked time is not free, even when salaries are committed. Two costs matter, and only one appears in a budget report: capacity drag, the share of work-days that produced nothing, and cost of delay, the value lost when a downstream date moves. Showing both once a quarter stops the team treating blockers as administrative friction.
Numeric example 2: capacity drag in a two-week sprint
Six engineers, two-week sprint, 10 working days each — 60 person-days available. At mid-sprint, two engineers have been fully blocked for 6 days and one half-blocked for 4.
- Blocked person-days = (2 × 6) + (1 × 4 × 0.5) = 14 person-days.
- Capacity drag = 14 ÷ 60 = 23.3%.
Nearly a quarter of the sprint produced nothing. At a blended loaded cost of $70 per hour and 8-hour days, that is 14 × 8 × $70 = $7,840 of paid capacity lost in one sprint. Across 26 sprints it exceeds $200,000 a year — enough to change whether chasing a vendor is worth an afternoon.
Numeric example 3: unblock latency and throughput
A support-tooling team measured two quarters. In Q1, median unblock latency was 4.2 working days and the team completed 18 items per cycle. In Q2 they added a 3-day automatic escalation and a named owner per blocker. Latency fell to 1.1 days and throughput rose to 24 items.
The arithmetic: 24 ÷ 18 = 1.33, a 33% increase in completed items with the same headcount and no overtime. Nothing changed about the engineers’ skill. The queue in front of them got shorter, so more work reached the point where it could be finished — which is the core argument for blocker discipline. In most teams the constraint is not effort, it is the number of items sitting in a wait state.
What are the most common mistakes?
- Logging symptoms instead of causes. “Blocked by dependencies” is not a cause. “Awaiting the data team’s schema change, requested 2 March, ref DT-441” is.
- Letting the log live in a second tool. If updating a blocker means opening a spreadsheet, it gets abandoned by month two.
- No age field. Without a date, everything is either “new” or “old” and escalation has no trigger.
- Escalating everything. A team that escalates ten items a week has taught its managers to ignore escalations.
- Punishing the messenger. One sarcastic comment about “another blocker” buys three days of silence from the next person.
- Closing the blocker, not the cause. If vendor onboarding produced the same blocker four times this quarter, the fix is a process change.
- Measuring only the count. A high count with low age is a busy, healthy team. A low count with high age is a quiet, expensive one.
> Practical tip: Add a field called “unblocked by” recording what actually cleared each item. After a quarter, group by it. You will usually find 60–70% of blockers were cleared by two or three mechanisms — an approval path, a credentials process, or one person’s calendar. Fix those and the count drops without new tooling.
What are the trade-offs of different tracking approaches?
Heavier process is not automatically better. The right level depends on how many external dependencies you carry and how expensive a missed date is.
| Approach | Strength | Weakness | Fits |
|---|---|---|---|
| Status flag on the task | No extra tooling, always in context | No history, weak reporting | Small teams, single project |
| Dedicated blocker log | Clear ownership and reporting | Duplicates work, decays without an owner | Multi-team programmes |
| Impediment backlog | Reviewed each retro | Can become a wish list | Scrum teams with an active SM |
| Dependency column in a WBS | Shows planned links before they hurt | Covers only planned dependencies | Construction, hardware, regulated delivery |
| Escalation ticket queue | Clean audit trail | Slow for small blockers | Enterprises with formal change control |
A hybrid suits most organisations: keep the status flag on the task, and log only items that cross the three-day threshold. The daily view stays clean and management gets a report without a second record.
How do you keep blockers visible in one workspace?
The failure is rarely analytical. It is that the schedule sits in a planning tool, the approval sits in email, and the blocker conversation happens in chat. Reconciling three sources weekly is manual work that quietly stops happening.
That is the problem Doitify is built for: tasks and sub-tasks with owners and due dates, a blocked state in the same board as the work, dependencies, milestones, and progress reports in one place, so a blocker’s age is a property of the task rather than a number someone must remember. We build Doitify, so read that as a description of fit rather than an independent review. It is not an enterprise project-controls suite, and a team that needs only a shared list should keep its shared list. For a team whose main leak is blocked work sitting invisibly between handoffs, having the blocker and the task in one record is the whole point.
FAQ
Conclusion
Blockers are not a communication problem. They are an ownership and clock problem. Give every blocked item one named owner, one visible age, and one scheduled escalation, and most of the delay disappears without anyone working harder.
Start smaller than feels satisfying: add a blocked state, require a cause and an owner, sort by age, escalate automatically at three days. Watch average age and P90 for a quarter. If the numbers do not move, escalation is producing sympathy instead of decisions — fix that next.
If this post on blockers in project management was helpful, you might also enjoy Project Baseline: Scope, Schedule and Cost Baselines Explained and Essential Project Documents Every Project Needs.
Join Doitify Today
Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.