Definition
Requirements are the statements of what a system must do and what constraints it must respect. They define the problem the software exists to solve, distinct from the design decisions about how to solve it.
A central insight is that requirements are rarely lying on the surface waiting to be collected. They are discovered, through conversation, prototyping, and observing how people actually work, because stakeholders often cannot articulate a need until they see a concrete attempt to meet it.
Why it matters
How it works
Good requirements work separates the underlying need from any proposed solution. When a stakeholder asks for a specific feature, the pragmatic practitioner asks why, drilling toward the actual problem so the solution space stays open.
Requirements are best treated as living documents. Capture them at a level of detail that aids understanding without freezing decisions prematurely, and revisit them as understanding grows. Prototypes and early feedback are not extras; they are the primary instruments by which hidden requirements become visible.