TL;DR: I spent nine days chasing four co-packers for a written quote; sure, they were the holdup. They were all stuck with the same condition: only three ingredients, and I could decide how to source them. The real bottleneck was a decision sitting in my own queue. When a dependency won’t move, run the Stall Check. Name the exact input it’s waiting on, ask whether that input is yours to produce, then make the smallest version of it today.
For nine days, I thought I was waiting on other people.
Four co-packers had our blend specifications. I sent emails, signed the NDA, shipped sample jars, and responded to each reply within an hour. Each morning, I checked my inbox expecting a quote, but the messages remained untouched. I told myself the usual stories: vendors are slow, summer’s over, everyone’s busy.
After reading the four threads back to back, and they were all focused on the same issue. None mentioned being “busy” or asked for “more details.” Instead, each one, in their own way, conveyed the same message: they are unable to source three of your ingredients.
Saffron, dried rose petals, and mushroom powder are the three ingredients that distinguish two of our blends from others. These are also the items a typical blend-and-package house wouldn’t keep readily available. One partner even estimated the labor cost at about a dollar fifty per bottle, provided I supply these three ingredients.
I had considered that condition a mere footnote, but it was actually the whole gate. The quote I believed I was waiting for couldn’t come to life until I decided how to source saffron, rose petals, and mushroom powder. That wasn’t the vendor’s decision; it was mine. I had put it off because it was the most difficult part.
Most stalls point back at you
Product managers often navigate dependencies, facing blocks from platforms, legal, data teams, or agencies. Sometimes delays seem due to others being slow, which can be understandable. More commonly, the delay occurs because the other side is waiting for a question only you can answer, and you haven’t responded yet.
Eliyahu Goldratt, the physicist behind The Goal and the Theory of Constraints, is often remembered for the rule: losing an hour at the bottleneck means losing an hour for the entire system. However, the preceding line is frequently overlooked. Knowing the actual bottleneck is crucial. On a factory floor, this is typically a machine you can physically approach and observe. In product work, the bottleneck is rarely a physical station; instead, it is often a decision stuck in your queue, wearing someone else’s delay as a disguise.
So I built myself a short diagnostic for any dependency that won’t move. I call it the Stall Check. Three questions, in order.
The Stall Check
What is the dependency literally waiting on?
Focus on the specific next step required, not vague terms like “the partnership” or “the integration.” Write down the exact next item needed for progress—such as a number, a file, an approval, or a yes/no. If you can’t identify it with a concrete noun, you haven’t understood the stall, and that’s your first insight. Vague blockers remain unresolved because no one can act on uncertainty.
When I did this for the co-packers, the status changed from “they haven’t quoted” to “they need to know who supplies the saffron.” One of those is a complaint. The other is a task.
Is that input yours to produce?
Now check who owns the next input. If the next step is a choice only you can make, then it’s your responsibility. The vendor isn’t taking too long; they’re simply respecting that they can’t decide on your supply chain, scope, or budget.
This is the uncomfortable question because a parked decision feels nothing like procrastination. It feels like diligence. You’re following up. You’re being responsive. You’re keeping the thread warm. But following up on a question you haven’t answered is just motion. I’d sent maybe a dozen polite nudges across those four threads, and every one of them was me asking other people to resolve something I hadn’t.
What’s the smallest version you can decide on today?
You don’t need the final answer to unblock the system. You need to stop being the blocker. So shrink the decision until it’s reversible, and you can make it before lunch.
I didn’t need a twelve-month sourcing contract for saffron. I needed enough saffron, rose petals, and mushroom powder to blend one small batch. That’s a call I can make in an afternoon, and it turns a dead thread into a live one. The moment the supply question has even a small answer, the quote I’d been chasing can finally exist.
The third option nobody admits to
Here’s what caused me to stay immobilized for nine days, and it’s worth mentioning because I believe I am not the only one experiencing it.
Make-or-buy looks like two choices. It hides a third, and it’s called waiting. Wait for the perfect partner. Wait for the clean quote. Wait until the decision feels safe enough that it can’t embarrass you. Waiting passes for the responsible option because it never shows up as a mistake. It shows up as a calendar with nothing shipped.
I’ve written before that the idea you only mention out loud is the priority you’ve actually set, and about the night we finally stopped changing a lid and committed. Same muscle. The hard part of product work is rarely generating options. It’s closing one.
FAQ
What’s the difference between a parked decision and a real external blocker? A real blocker is an input you genuinely can’t produce yourself: a third party’s signature, a dependency’s release date, a regulatory window. A parked decision is an input you could produce today but haven’t, usually because it’s hard or feels risky. The Stall Check separates them at question two. If the next input is yours to make, it’s parked, not blocked.
How is this different from the Theory of Constraints? The Theory of Constraints assumes you can already see the bottleneck and tells you to protect it. The Stall Check is for the step before that, when the bottleneck is hiding. In founder and product work, the constraint is often a decision in your own queue rather than a visible station, so you have to locate it before Goldratt’s advice even applies.
What if the decision really is the vendor’s to make? Then question one hands you a cleaner ask. Instead of “any update?” you can write “we’re blocked on your X, what do you need from us to produce it?” Naming the literal next input either moves them or proves the stall is theirs. Both outcomes are useful.
How small should the smallest version be? Small enough to be reversible and to make this week. A test batch, not a year of supply. A one-page scope, not the full spec. You’re not committing the whole future. You’re producing the single input that the system is waiting on, so the next step can happen.
What’s the one thing I should do this week? Take your most annoying “blocked on someone else” item and run question one. Write the exact next input that has to land. If it turns out that input is yours, you’ve found your bottleneck, and it isn’t them.
What I’m doing this week
We’ve moved on from waiting for the ideal large-scale partner. This week, I’m personally sourcing small amounts of saffron, dried rose petals, and mushroom powder, then hand-blending a test batch of two of our blends. While it will be more expensive per bottle than the initial dollar-fifty estimate, it will give me a clearer understanding of the true production costs and whether customers will buy it something no quotation could reveal. The large-scale partner can be engaged later when volume justifies it.
The quote I spent nine days chasing still hasn’t arrived in my inbox. I no longer need it. I was the bottleneck, and now the bottleneck has chosen to move on.


Leave a Reply