Loading...
Insights · requirement engineering

Requirement management tracks it. Requirement engineering questions it.

The code that destroyed Ariane 5 Flight 501 was not wrong — it did exactly what it was written to do. The failure was a requirement nobody re-examined, because the module carrying it was reused rather than re-engineered.

The code that destroyed Ariane 5 Flight 501 was not wrong. It did exactly what it was written to do. The failure was one level up — in a requirement nobody re-examined, because the module carrying it was labelled "reused," and reused code, the assumption went, doesn't need reviewing again.

Thirty-seven seconds

On 4 June 1996, the European Space Agency's Ariane 5 rocket self-destructed 37 seconds after liftoff on its maiden flight, taking four uninsured Cluster scientific satellites with it — a loss of roughly $370 million. The Inertial Reference System (SRI) software, inherited largely unchanged from the earlier Ariane 4, converted a 64-bit floating-point value representing horizontal velocity into a 16-bit signed integer. Ariane 5's flight profile produced a horizontal velocity value larger than that variable's valid range. The conversion overflowed. The resulting exception was unhandled, both of the (redundant) inertial reference units shut themselves down, and the launcher's guidance system received diagnostic data that it interpreted as valid flight data — commanding an extreme correction that broke the vehicle apart.

The independent inquiry board, chaired by Jacques-Louis Lions and reporting within weeks, traced the fault to its actual origin: the range limit on that variable had been derived from Ariane 4's flight trajectory. Nobody re-verified it against Ariane 5's different, faster-accelerating profile, because the module was carried over as heritage software rather than re-engineered as a new requirement.

What the inquiry board actually found

The function that failed was not even needed after liftoff on Ariane 5 — it kept running for reasons specific to Ariane 4's launch sequence. Nobody had asked, for the new vehicle, whether that assumption still held.

Reuse is a requirements decision, not a coding shortcut

This is the case people reach for when they say "the code was correct." It was — against the requirement it was written to satisfy. What never happened was requirement engineering for the new context: nobody asked whether Ariane 5's flight envelope still fit inside the assumptions Ariane 4 had established, because reused code inherited a lower level of scrutiny than new code, by convention rather than by any documented risk assessment.

That gap is exactly where most requirement management tools stop being useful. They track that a requirement exists, that it links to a test case, that it's been marked "reviewed." None of that catches an assumption that was valid for a previous system and silently stopped being valid for this one — because nobody re-engineered the requirement, they just re-used the artifact that satisfied it.

Management tracks it. Engineering questions it.

Real requirement engineering means every requirement — new or inherited — is actively decomposed, its assumptions made explicit, and its fitness for the current system checked, not assumed from its pedigree. That is a different job from requirement management, and it's the distinction that mattered on 4 June 1996: not that a requirement existed, but that nobody engineered it for the vehicle it was actually flying on.

It's also, not coincidentally, the gap PES is built to close — AI-assisted review that flags exactly this pattern: a requirement whose range, assumption, or context doesn't match the system it's now attached to, surfaced before flight, not after.

SEE IT ON YOUR WORKFLOW

Where would this show up in your program?

Share your standards context and current change/review workflow — we'll show you what changes when the record is one continuous thread instead of something reconstructed after the fact.

Sources: Ariane 501 Inquiry Board Report ("Ariane 5 Flight 501 Failure"), chaired by Prof. Jacques-Louis Lions, European Space Agency / CNES, 19 July 1996 — the primary public technical report on the failure, its root cause in the Inertial Reference System software, and the horizontal-velocity conversion overflow. Loss figures ($370m, four Cluster satellites) as widely reported in contemporaneous ESA and press coverage of the mission.