← All writing

Saying no is a decision. Record it like one.

· 6 min read · by Tan Gravam

The short answer

Treat "not now" and "no" as recorded decisions with an owner, a date and a one-line reason — not as the absence of a decision. A request left indefinitely in a backlog is a no that nobody communicated: the requester keeps asking, the team keeps re-reading it, and when it resurfaces a year later nobody remembers why it stalled. Parking and declining should be first-class outcomes of triage, as legitimate as planning the work, and each should be reversible with its history intact.

Go and look at your backlog. Not the top of it — the part below where anyone scrolls. Count the items that have not moved in a year.

Every one of those is a decision that was made and never written down. The organisation decided not to do it. It just decided by not deciding, which is the most expensive way to arrive at the same answer.

What a silent no actually costs

"We'll keep it in the backlog" feels kind. It is the phrase that avoids a difficult two minutes. It has four costs, and they all land later.

The requester keeps asking. They were not told no, so from where they sit the request is pending. They follow up at the end of the quarter, and the next quarter, and each follow-up costs somebody a reply that says nothing.

The team keeps re-reading it. Every backlog review, the same forty stale items get skimmed again by people trying to work out whether any of them matter now. That is a recurring tax on the scarcest thing you have, which is the attention of the people who could be reading the items that do matter.

The reason evaporates. There was a reason — the vendor contract expires next year, it needs a data model change nobody wants yet, the requesting team is being restructured. Six months on, that reason exists only in the head of whoever was in the room, and half of them have moved on. When the request resurfaces the whole discussion runs again from zero.

It corrupts your own signal. If a backlog contains both real candidates and a decade of things nobody will ever build, then backlog size, age and throughput all become meaningless as measurements. You have lost the ability to answer "are we keeping up?" because the denominator is fiction.

Two different noes

They get collapsed and they should not be, because they have different follow-ups.

Parked — a real candidate, blocked on something specific and external. It is waiting on a contract, a platform migration, a decision somebody else owns. The essential part is naming what it is waiting for, because that is what makes it a park rather than a hiding place. A park with no condition is a decline that is embarrassed about itself.

Declined — you are not going to do this. Wrong product, wrong team, solved elsewhere, not worth it at any plausible priority. The requester should hear this, and should hear it as a sentence rather than as silence.

Both are legitimate outcomes of triage — as legitimate as deciding to plan the work. If your process only has one exit, everything that is not a yes accumulates at the bottom.

What to record

Not much, and that is the point. Anything heavier will be routed around.

  • Which one — parked or declined. Different words because they mean different things.
  • One line of reason. "Needs the billing migration first." "Solved by the reporting tool the finance team already bought."
  • Who decided, and when. Automatic if the system records it.
  • For a park: what would unblock it. This is the field that does the work — it converts an open-ended wait into a condition you can check.

Two minutes. Compare that against the follow-ups, the re-reading, and the argument you will otherwise have again in eight months.

The objection, and it is a fair one

"If I formally decline things, people will stop bringing me requests."

Some will, and that is worth taking seriously. But consider what the alternative teaches. When everything is accepted into a backlog and most of it is never built, people learn that submitting a request is theatre and the real route is to escalate or go around you. A visible, reasoned no is what makes a yes mean something — and a requester who gets a clear answer in a week generally prefers it to a maybe that lasts a year, even when the answer is not the one they wanted.

The genuine risk is not declining too much. It is declining without a reason, or declining things you have not understood. That is an argument for shaping a request before you judge it, not an argument for never judging it.

Make it reversible

A decision people are afraid to make is a decision they will avoid. The way to lower the stakes is to make park and decline fully reversible, with everything that was written still attached.

Circumstances change: the blocking migration lands, the priority moves, the requester comes back with a much sharper case. Bringing a parked demand back should return it to where it was, with the original shaping intact and the reason it was parked still readable — so the conversation resumes rather than restarting.

Nothing should be deleted, either. A declined request is evidence. When the same idea arrives from a different direction next year, the most useful artifact in the building is the record of why you said no last time — including the cases where that reasoning turns out to have been wrong.

How DeliverySheet handles it

At the Decide stage — the point where a shaped demand gets its next step — park and decline sit alongside planning the work, asking the requester for more information, and running a time-boxed discovery. Five options, all first-class; "leave it in the list" is not one of them.

Parked and Closed are their own buckets in the inbox rather than a hidden state, so they are visible without cluttering the active view, and a parked demand keeps everything that was written about it. Nothing is ever hard-deleted anywhere in the product — archiving is reversible and restores a demand to exactly the stage it left, which is the whole reason people are willing to use it.

The point of all of it is narrow: make the no as easy to record as the yes. A process where saying yes takes one click and saying no takes a difficult conversation will produce a backlog full of unsaid noes, every time.

I'm Tan Gravam. I build DeliverySheet — it takes a vague work request to a clear delivery decision, so the shape, owner, capacity, dependencies and open questions are on the table before anyone commits people or a date.

$10/month per workspace during the launch period (normally $189), unlimited members, 7-day free trial. I answer the support email myself.

More writing