Concepts / Documenting Project Requirements

Documenting Project Requirements

Scoping discipline means checking the requirements and assumptions behind a project before committing engineering work to it.

  • Programming

A Request Is Not a Specification

A common belief in engineering teams is that a request already contains everything needed to start building. A sales representative, a customer, or a manager describes a feature, and the natural next step seems to be opening the documentation and beginning work. This belief is the misconception this article addresses. The request is a starting point, not a specification, and the details that matter most are often the ones nobody states out loud.

What do you think happens?

An urgent request arrives for an integration with a system the team has not used before. What should the engineer do first?

  • Open the interface documentation and start implementing

  • Check the problem behind the request, who is affected, and whether a simpler alternative exists

  • Ask the manager for a delivery date

Reveal answer
Answer:

Treat the request as a claim that needs checking before any implementation starts. The engineer asks what problem sits behind the request, who is affected by it, and whether a simpler alternative already exists.

The default engineering reflex treats a request as a technical task: find the interface, read the specification, and implement it. That reflex skips the questions that determine whether the task is worth doing and what shape it should take. The trained reflex treats the request as a claim that needs checking.

The difference matters because urgency and importance are not the same thing. A deadline can be real, or it can be a pressure created by someone who wants a deal closed. Without asking, the engineering team cannot tell which situation it is in, and it may spend weeks solving the wrong problem quickly.

Following a Request Through the Validation Gate

Trace what happens to a request after it arrives. The request does not move straight to engineering. It passes a checkpoint where it can be stopped, redirected, clarified, or approved. The diagram below follows one request through that checkpoint. Each decision asks a question that the validation process needs answered before work begins. A request that fails the first question never reaches the implementation stage at all.

Customer requestarrivesReal need existsSimpler workaroundexistsClarify requirementsEngineering workbeginsStop or redirectcheckyesnoyesnoapproved
What happens to a customer request after it arrives, and at which points is it stopped, clarified, or approved before any engineering starts?

The gate has two kinds of outcome that are easy to confuse. A request can be stopped or redirected, meaning the real need does not justify the work or a simpler alternative already bridges the gap. Or it can be clarified, meaning the need is real but the requirements are still unknown. Only a request that survives both checks moves toward engineering. Reading the diagram from left to right shows the order: the team first decides whether to build, and only then decides what to build.

The Two Working Parts of Scoping

Scoping discipline means checking the requirements and assumptions behind a project before committing engineering work to it. It has two working parts that are closely connected. The first part decides whether to build. The second part shapes what to build. Each part is driven by a set of questions.

Tracing an Unchecked Assumption Through a Project

The source gives a real pattern that shows how costly a skipped assumption can be. A large enterprise customer needed a mobile reimbursement feature at a time when the mobile team was fully committed. Two engineers taught themselves development for both major mobile platforms and built both apps within a few weeks. Only later did they ask the customer for its list of Android beta users, and they learned that the customer requires all employees to carry iPhones. Most of the Android work was unnecessary.

Worked example

The Mobile Reimbursement Request

A customer asks for a mobile reimbursement feature. The team assumes both Android and iOS support are needed and begins building both apps before checking which devices employees actually carry.

  1. 1
    Accept the request as a specification

    The team starts building for both platforms without asking which devices users carry. The unstated assumption is that both platforms are needed.

  2. 2
    Build without checking

    Two engineers learn both platforms and complete both apps within a few weeks. No basic question about the user population has been answered yet.

  3. 3
    Ask the basic question late

    Asking for the customer's Android beta user list reveals that all employees carry iPhones. The assumption that drove the Android work was wrong.

  4. 4
    Measure the damage

    Most of the Android work was unnecessary. The cheap question about devices, which could have been asked at the requirements stage, was the one that would have prevented the waste.

Result

The unchecked assumption about which devices users carry was the most expensive thing to get wrong and the cheapest thing to confirm, which is exactly the pattern the source describes.

How the Cost of Being Wrong Grows

The same wrong assumption costs very different amounts depending on when it is discovered. The timeline below follows the mobile reimbursement case from the requirements question through to the beta list. The source does not give numeric figures for how the cost grows, so the diagram shows only the order of events and what each stage produced. The point to read from it is that the one question that was cheap to ask came last.

Requirements stageAsk which devices userscarryEarly buildBoth platforms startedBoth apps builtWeeks of effort spentBeta list revealedEmployees all carry iPhonesskippedcontinuedlate discovery
How does the cost of fixing a wrong assumption grow when it is discovered later in the project rather than during requirements?

Mistakes When Skipping Assumption Checks

  • Common mistake

    Treating the request as a complete specification

    What it looks like

    A feature is described in a sales conversation and the team opens the interface documentation the same day.

    Why it fails

    The request is a starting point. The details that matter most are often the ones nobody states out loud.

    Do this instead

    Treat the request as a claim. Run the validation questions before any implementation begins.

  • Common mistake

    Confusing urgency with importance

    What it looks like

    A deadline is accepted as proof that the project is needed, so the team starts building immediately.

    Why it fails

    A deadline can be real or can be pressure created by someone who wants a deal closed. Without asking, the team cannot tell which.

    Do this instead

    Ask what is driving the urgency before committing work to the deadline.

  • Common mistake

    Assuming the requester speaks for every user

    What it looks like

    The mobile feature is built for both platforms because the customer's request did not mention devices.

    Why it fails

    The people who asked may not describe the people who will use the result. The device question was never asked.

    Do this instead

    Ask who is affected and confirm the user population, such as which devices employees carry, before building.

  • Common mistake

    Skipping the workaround question and building something a simpler existing option already covers

Checking a New Request Before Building

MEDIUM

A customer asks your team for an integration with an internal system that nobody on the team has used before. The request says the work is urgent and needs to be finished this month. Using the validation and requirements questions from this article, list the questions you would ask before opening the documentation, and explain which assumption each question tests.

Hints
  • Start with the two working parts of scoping: deciding whether to build, then deciding what to build.
  • Separate the urgency question from the importance question, since the source treats them as different.
  • Ask who is affected and what resources the customer can bring, since unstated basics are often the costliest to get wrong.

Summary of the Validation Habit

  1. 1
    A customer request is a starting point and a claim to check, not a complete specification.
  2. 2
    Validating customer needs asks whether a real need exists, who is affected, whether workarounds already bridge the gap, and how many others share the need.
  3. 3
    Understanding project requirements asks what is driving urgency, what the project must actually do, and what technical resources the customer can bring.
  4. 4
    Unstated basic assumptions are often the most expensive to get wrong and the cheapest to confirm, so they should be checked before work begins.

At a glance

  • A customer request should be validated before engineering work begins, because the request is a claim to check rather than a specification.
  • Validating customer needs tests whether a real need exists, who is affected, whether workarounds exist, and how many others share the need.
  • Understanding project requirements tests what drives urgency, what the project must actually do, and what resources the customer can bring.
  • Skipped basic assumptions, such as which devices users carry, are often the most expensive to get wrong and the cheapest to confirm.