Part II · The Life Cycle, Audited

04 Requirements as the Primary Artifact

InvertsLab: Executable specificationFeeds M1P2

Load-bearing assumption

Implementers fill gaps with tacit knowledge and ask when unsure

Verdict: Inverts

Requirements engineering assumes that implementers fill gaps with tacit knowledge and ask when unsure; agents by default fill gaps silently and often proceed without asking unless the workflow requires it, so the specification stops being upstream documentation and becomes the primary input the work is built from.

Learning objectives

After this chapter you should be able to:

  1. Write a requirement as a shall-statement, a use case and a user story, and check it for the qualities that matter most here.
  2. State the load-bearing assumption of classical requirements engineering and use the negation test to show which half fails when the implementer proceeds without asking.
  3. Summarize what has been measured about code generation from ambiguous specifications.
  4. Explain, with Chapter 2's decision rule, why the activity inverts while the specification mechanism recalibrates.
  5. Write an executable specification, with every property bound to a check, and make clarification a gate in the workflow.
  6. Classify defects by root cause, and say what data would show specification is not the largest source.

Opening case

A composite case, not a real engagement.

The ticket was four sentences, written by a consultant after a thirty-minute call with a logistics company's operations manager. "Dispatchers can reassign jobs to other drivers. Late jobs are highlighted. Customers are notified when a job's status changes. A daily report shows on-time performance." The consultant and the manager knew what each sentence meant. It summarized a conversation, which is what a ticket is for.

The chapter continues from here.

What the chapter covers

  1. 4.1 The classical method
    • 4.1.1 What requirements engineering is for
    • 4.1.2 Functional and quality requirements, and the standard
    • 4.1.3 Elicitation is a conversation
    • 4.1.4 The forms requirements take
    • 4.1.5 A worked example: Dispatch, specified for people
    • 4.1.6 What it got right
  2. 4.2 The assumption it depends on
  3. 4.3 What agents change
    • 4.3.1 Agents fill gaps and, by default, do not ask
    • 4.3.2 Tacit intent reaches the model only if someone writes it down
    • 4.3.3 The Mission Brief
  4. 4.4 The verdict
  5. 4.5 What replaces it: the executable specification
    • 4.5.1 Parts of an executable specification
    • 4.5.2 Behavior rules in EARS
    • 4.5.3 Examples in Gherkin
    • 4.5.4 Property-based acceptance
    • 4.5.5 Non-goals and open decisions
    • 4.5.6 Binding every property to a named check
    • 4.5.7 Dispatch, rewritten
    • 4.5.8 Using the specification, and making clarification a requirement
  6. 4.6 Lab: Executable specification
  7. 4.7 What would make this verdict false

Lab and prediction

Lab: Executable specification

Feeds milestone M1. How the labs fit the project

The lab tests this prediction from the working paper the book grows from (Smith 2026a):

  • P2 Defects traced to missing or ambiguous specification are the largest root-cause category

A result that contradicts a prediction, honestly reported, is a result. You are graded on accurate records and reasoned interpretation, not on agreeing with the book.

Summary

  • Load-bearing assumption: implementers fill gaps with tacit knowledge and ask when unsure; the user-story tradition states it outright.
  • Evidence: in benchmarks, models by default write code rather than ask, lose correctness on ambiguous descriptions, and improve when they do ask. No study measures the effect over a real multi-week project.
  • Verdict: inverts. Explicit, checkable intent is scarce, and the specification package becomes the primary input. The specification mechanism itself recalibrates: the same documents and checks at a higher completeness bar.
  • Replacement: the executable specification, with every property bound to a named check, plus clarification enforced by the workflow: questions before code, a gate on open decisions, answers recorded.
  • The verdict would soften to recalibrate if agents reliably asked unprompted or had the tacit context.

Key terms

Tacit knowledge
knowledge people hold and use but cannot fully state (Polanyi 1966).Also used in 1, 2, 10
Executable specification
a specification whose every statement of required behavior is a runnable check or bound to one.Also used in 3, 5, 13, 18
Specification package
the specification plus its linked, versioned decisions and context.
EARS
Easy Approach to Requirements Syntax; five sentence templates.
Gherkin
the Given/When/Then format for scenarios.
Property-based acceptance
acceptance stated as properties that hold over a domain of inputs.Also used in 13
Non-goal
an explicit statement of what is out of scope.
Open decision
a stakeholder's choice not yet made, recorded with an owner and a default.
Clarification gate
a workflow step requiring the agent to raise open questions before implementing, and blocking work while open decisions are unresolved.
Property Coverage Index (PCI)
the fraction of acceptance properties bound to a named check and evidence location.

Connections

Where this chapter and another point to each other most often.

See it on the map

Further reading

  • Brooks (1987), "No Silver Bullet." The requirements passage is the shortest, clearest statement of why this part of engineering is hard.
  • Jeffries (2001), "Essential XP: Card, Conversation, Confirmation." This chapter's load-bearing assumption, in the words of the people who held it.
  • Wu and Fard (2025) and Vijayvargiya et al. (2026). Two careful studies of whether models ask. Read the threats to validity, then ask what a study on a real project would need.