Skip to content

Blocked/Stuck Protocol (CQ)

Owner: Vi | Updated: 2026-02-05

Purpose

Define what happens when a developer posts a blocker. Devs won't surface blockers if they don't get help—this SOP ensures every blocker gets a response.

The deal: You post blockers honestly → We respond and help you move.


Principles

Principle Why
Acknowledge fast Dev knows someone saw it, isn't shouting into void
Unblock, don't necessarily solve Sometimes answer is "skip this" or "do X instead"
Time-box waiting Don't let devs sit blocked for days
Escalate early Better to over-escalate than let blocker fester
No shame in being stuck Complex work = getting stuck sometimes

Blocker Types & Who Responds

Blocker Type First Responder Example
Requirements unclear Vi (PM) "What should happen when user clicks X?"
Need decision Vi → Ryan if needed "Should we support edge case Y?"
Technical / architecture Senior dev or Ryan "How should this integrate with Z?"
Waiting on another dev Vi (coordinates) "Need Minh to finish API first"
Access / tooling Vi or Ryan "Can't access staging server"
Priority conflict Ryan "Task A and B both urgent, which first?"
Strategic / direction Erik (via Ryan) "Should we build this feature at all?"

Response SLAs

Action Timeframe Who
Acknowledge Within 4 hours (or next morning if EOD post) Vi
Provide answer OR escalate Within 24 hours First responder
Escalation response Within 24 hours Ryan / Erik

If SLA missed: Ryan gets notified automatically.


The Process

Step 1: Dev Posts Blocker (in Daily Update)

**Blocker:** Need API endpoint specs from backend. Who owns this?

Or posts standalone in #cq-product:

@vi Blocked on [task]: [description]. Need [what you need].

Step 2: Vi Acknowledges

Within 4 hours (or next business morning):

Saw this. Checking with [person] and will get back to you.

Or if she can answer immediately:

[Answer]. You're unblocked—let me know if not.

Step 3: Resolve or Escalate

If Vi can resolve: Provide answer, confirm dev is unblocked.

If Vi can't resolve:

Escalating to Ryan. @ryan [dev] is blocked on [issue], needs [decision/help].

Step 4: Confirm Unblocked

After providing answer:

Does this unblock you? Let me know if you need more.

Dev confirms:

Yes, unblocked. Thanks.


Escalation Path

Dev blocked
    ↓
Vi (first response, 4 hrs)
    ↓ (can't resolve in 24 hrs)
Ryan (technical/priority decisions)
    ↓ (strategic/direction)
Erik

When to Escalate Immediately

Situation Escalate To
Blocker affects deadline Ryan
Multiple devs blocked on same thing Ryan
Blocker is about whether to build something Ryan → Erik
Dev blocked 2+ days Ryan
Vi unsure how to answer Ryan

For Devs: How to Post a Good Blocker

DO

**Blocker:** Payment API returning 403 on sandbox.
**Tried:** Checked API key, verified sandbox mode, tested in Postman.
**Need:** Someone with Stripe admin access to check permissions.

DON'T

**Blocker:** It doesn't work.

Template

**Blocker:** [What's blocking you]
**Tried:** [What you already attempted]
**Need:** [Specific help needed - decision, access, answer, review]

The more specific, the faster you get unblocked.


For Vi: Responding to Blockers

Quick Response Templates

Acknowledging:

Saw this. Let me check and get back to you within [timeframe].

Need more info:

Can you clarify [specific question]? Want to make sure I get you the right answer.

Providing answer:

[Answer]. Does this unblock you?

Escalating:

This needs Ryan's input. Escalating now. @ryan [brief context]

Unblock confirmed:

Great, marking this resolved. Let me know if anything else comes up.

Triage Questions

  1. Can I answer this myself? → Answer it
  2. Does another dev know? → Connect them
  3. Is this a product/priority question? → Escalate to Ryan
  4. Is this a strategic question? → Ryan will involve Erik

Blocker Tracking

Vi maintains visibility: - Note blockers in daily standup tracking - If blocker persists 2+ days, escalate to Ryan - In weekly meeting, review any blockers that took >24 hrs to resolve


What "Unblocked" Means

Outcome Counts as Unblocked?
Got the answer they needed Yes
Told to skip the task / deprioritize Yes
Given a workaround Yes
Told to wait (with clear timeline) Yes, if timeline < 2 days
"We'll figure it out later" No - need concrete next step

Key: Dev must be able to continue productive work.


Anti-Patterns to Avoid

Anti-Pattern Why It's Bad Do This Instead
"Let me look into it" (then silence) Dev waits indefinitely Give a timeframe, follow up
Solving instead of unblocking Over-engineering, slow "Do X for now, we'll revisit"
Only checking blockers in standup 24hr delay minimum Check #cq-product channel throughout day
Making dev feel bad for being stuck They'll hide blockers Thank them for surfacing early
Answering in DM No visibility, can't help others Answer in thread on #cq-product

FAQ

Q: What if I'm stuck but not sure it's a "blocker"? A: Post it anyway. Better to surface early. Worst case, you figure it out and update "never mind, solved it."

Q: Should I wait before posting a blocker? A: Try for 30 minutes max. If you're not making progress, post it. Don't lose hours.

Q: What if the blocker is embarrassing (I should know this)? A: Post it. Everyone gets stuck on "obvious" things. Speed > ego.

Q: What if Vi is out? A: Post in #cq-product anyway, tag @ryan. Someone will respond.

Q: Can I ask another dev directly? A: Yes, but also post in #cq-product so Vi has visibility. DMs are invisible.


Summary

Role Responsibility
Dev Post blockers honestly, with context
Vi Acknowledge in 4 hrs, resolve/escalate in 24 hrs
Ryan Handle escalations, priority conflicts
Erik Strategic direction (via Ryan)

The goal: No dev stuck for more than 24 hours without a path forward.