Requirements abstractly describe what a solution must and must not do and are the fundamental building blocks of product engineering. In addition to these abstract descriptions, an effective requirements document will contain enough context to explain the rationale behind the individual requirements.

Marketing vs. engineering Requirements

Requirements come in two broad forms: marketing requirements and engineering requirements. Marketing requirements describe the needs and desires of the market served by the product. Engineering requirements are derived from marketing requirements and abstractly describe in unambiguous (typically numerical) terms how the product must function to meet the marketing requirements.

For example, the marketing requirement for a camera might be: "The photo quality must be industry leading". A corresponding engineering requirement might then be: "Photos produced must be greater than 8.5 megapixels".

Elements of well-formed requirements

Abstract: Well-formed requirements abstractly describe what the solution must and must not do, without describing how the solution is achieved.

Verifiable: Well-formed requirements can be independently and precisely verified and are therefore typically described in numerical terms.

Traceable: Well-formed requirements can be traced back to the specific need being solved. Marketing requirements should be traceable to research, whereas engineering requirements should be traceable to the marketing requirements.

Realistic: Well-formed requirements can realistically be implemented by the team that will create the solution.


Constraints are design decisions that are imposed by the environment in which the solution is being developed or delivered to and typically violate.

Deeper Knowledge on Requirements

Acceptance Testing

Processes and techniques to test whether a set of requirements is met

Architectural Decision Records (ARDs)

A method for capturing architectural decisions

System Qualities and Nonfunctional Requirements (NFRs)

Constraints on how software is engineered

User Stories

The philosophy behind gathering, writing, and using user stories

You Aren't Gonna Need it (YAGNI)

A simple mnemonic to help limit project scope

Broader Topics Related to Requirements


Apply science to create technology

Project Management

Resources for Project Management

Requirements Knowledge Graph