Requirements

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

Constraints are design decisions that are imposed by the environment in which the solution is being developed or delivered to. Constraints may be properties of the process or materials used, such as size, conductivity, or elasticity; or they may be limitations intentionally imposed on the build such as time, budget, or design (e.g. branding). Constraints often seed creativity. In a world of unlimited possibilities, time can be one of the most useful constraints to apply. Time constraints, even when artificial, can force decisions to be made and foster creative solutions.

Deeper Knowledge on Requirements

You Aren't Gonna Need it (YAGNI)

You Aren't Gonna Need it (YAGNI)

A simple mnemonic to help limit project scope

Architectural Decision Records (ADRs)

Architectural Decision Records (ADRs)

A method for capturing architectural decisions

System Qualities and Nonfunctional Requirements (NFRs)

System Qualities and Nonfunctional Requirements (NFRs)

Constraints on how software is engineered

Acceptance Testing

Acceptance Testing

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

User Stories

User Stories

The philosophy behind gathering, writing, and using user stories

Broader Topics Related to Requirements

Project Management

Project Management

Resources for Project Management

Engineering

Engineering

Apply science to create technology

Requirements Knowledge Graph