The Easy Approach to Requirements Syntax (EARS) is a structured method for writing natural language requirements using a small set of keywords and sentence patterns. Developed by Alistair Mavin and colleagues at Rolls-Royce plc while analysing airworthiness regulations for a jet engine control system, EARS was first published at the IEEE International Requirements Engineering Conference (RE'09) in 2009. EARS gently constrains free-form natural language by imposing a consistent clause order and a limited vocabulary of structural keywords, reducing or eliminating common problems such as ambiguity, vagueness and incompleteness.
EARS has been adopted by organisations including Airbus, Bosch, Dyson, Honeywell, Intel, NASA, Rolls-Royce and Siemens, and is taught at universities in China, France, Germany, Sweden, the United Kingdom and the United States. Since 2025, EARS notation has been integrated into AI-assisted spec-driven development tooling, most notably Amazon's Kiro IDE.
System requirements are usually written in unconstrained natural language, which is inherently imprecise. Requirements authors are often domain experts rather than trained requirements engineers, and poorly expressed requirements propagate errors to downstream design, implementation and testing phases, increasing cost and schedule risk. While formal specification languages can increase precision, they impose a significant training overhead and require translation of source requirements, which can itself introduce errors.
EARS was designed to occupy a middle ground: it retains natural language so that all stakeholders can read and review requirements without specialist training, while imposing enough syntactic structure to eliminate the most common defects. The approach arose during Mavin's analysis of the airworthiness regulations contained in the certification basis for a Rolls-Royce aero engine control system, where he observed that well-written requirements all followed a similar underlying structure.
The general structure of an EARS requirement is:
<blockquote>WHILE <optional precondition(s)>, WHEN <optional trigger>, the <system name> SHALL <system response></blockquote>
The EARS ruleset states that a requirement must have:
The clauses always appear in the same temporal order, and a small number of keywords denote the different clause types. This produces requirements that fall into one of five basic patterns, plus combinations thereof.
Ubiquitous requirements are always active. They have no EARS keyword because there is no triggering condition.
<blockquote>THE <system name> SHALL <system response></blockquote>
Example: "The mobile phone SHALL have a mass of less than 150 grams."
Event-driven requirements specify how a system must respond when a triggering event occurs. They are denoted by the keyword WHEN.
<blockquote>WHEN <trigger>, the <system name> SHALL <system response></blockquote>
Example: "WHEN 'mute' is selected, the laptop SHALL suppress all audio output."
State-driven requirements are active as long as a specified state remains true. They are denoted by the keyword WHILE.
<blockquote>WHILE <precondition(s)>, the <system name> SHALL <system response></blockquote>
Example: "WHILE there is no card in the ATM, the ATM SHALL display 'insert card to begin'."
Optional feature requirements apply only in products or system variants that include a specified feature. They are denoted by the keyword WHERE.
<blockquote>WHERE <feature is included>, the <system name> SHALL <system response></blockquote>
Example: "WHERE the car has a sunroof, the car SHALL have a sunroof control panel on the driver door."
Unwanted behaviour requirements specify the required system response to undesired situations such as faults, failures or errors. They are denoted by the keywords IF and THEN.
<blockquote>IF <trigger>, THEN the <system name> SHALL <system response></blockquote>
Example: "IF an invalid credit card number is entered, THEN the website SHALL display 'please re-enter credit card details'."
The simple building blocks above can be combined to specify richer system behaviour. Complex requirements use more than one EARS keyword:
<blockquote>WHILE <precondition(s)>, WHEN <trigger>, the <system name> SHALL <system response></blockquote>
Example: "WHILE the aircraft is on ground, WHEN reverse thrust is commanded, the engine control system SHALL enable reverse thrust."
EARS provides several documented advantages over unconstrained natural language requirements:
EARS is not suited to every requirement type. Requirements with more than three preconditions can produce unwieldy single sentences, and some requirements are better expressed as mathematical formulae, decision tables, or state-transition diagrams. The notation is also less appropriate for non-functional requirements that cannot be captured as conditional behaviour (e.g., architectural constraints).
Spec-driven development (SDD) is a software methodology in which a formal or semi-formal specificationâÂÂrather than ad-hoc prompts or informal descriptionsâÂÂdrives code generation, testing and documentation. In SDD workflows, requirements are first captured in a structured format, then used to produce a technical design, and finally broken down into implementation tasks. EARS notation has emerged as a favoured syntax for the requirements phase of SDD because its constrained natural language can be parsed by both humans and large language models (LLMs), bridging the gap between product intent and machine-readable specifications.
Kiro, an agentic AI integrated development environment announced by Amazon in 2025 and built on Code OSS, has adopted EARS as its native requirements notation. Kiro's spec-driven workflow operates in three phases:
Because each acceptance criterion follows the EARS pattern <code>WHEN <condition/event> THE SYSTEM SHALL <expected behaviour></code>, the requirements are directly testable and provide unambiguous success criteria for each generated task. Developers can also manually author requirements in EARS format and use Kiro's "Refine" function to validate or restructure them.
The integration of EARS into Kiro reflects a broader trend in which structured requirements templates are used to improve the predictability and quality of LLM-generated code. Compared to free-form prompts (sometimes called "vibe coding"), EARS-formatted specifications reduce the ambiguity that causes AI agents to make undesirable assumptions. Community projects have extended the approach to other AI coding assistants through plugins and Model Context Protocol (MCP) servers that expose EARS-based spec-driven workflows.
EARS and user stories are frequently used together in practice: user stories capture high-level stakeholder needs, while EARS is used to specify detailed acceptance criteria within each storyâÂÂan approach formalised by Kiro's spec-driven workflow.