When Hardware Reveals a Requirements Error: The Trilemma Every Program Faces
Hardware programs almost always surface requirements problems after the hardware exists. This is not a planning failure — it is a structural property of complex systems development. Simulation and analysis can only predict so much. Physical hardware reveals loading conditions, thermal behaviors, electromagnetic interactions, and integration conflicts that models missed. The question is not how to avoid late requirements discoveries. The question is what to do when they happen.
The answer matters enormously. A poorly managed late requirements change can add months to a schedule, trigger contract disputes, invalidate completed verification work, and create certification gaps that surface during audit. A well-managed one can be absorbed with minimal disruption if the team moves deliberately and documents cleanly.
This article lays out the actual decision framework, the formal processes involved, and the tools that make those processes faster and less expensive.
The Trilemma
When hardware fails to meet a requirement, or when testing reveals that the requirement itself was wrong, the program faces exactly three options:
Option 1: Change the hardware. Redesign, rework, or replace the non-conforming component to meet the requirement as written. This path preserves the requirement baseline and avoids contract and certification complications — but it costs money and time, and it triggers its own regression verification burden.
Option 2: Change the requirement. Revise the requirement to reflect what the hardware can actually do, or what the system actually needs. This path is appropriate when the original requirement was genuinely incorrect — based on flawed assumptions, a misunderstood interface, or a specification that was never validated against physical reality. It requires a formal change request, impact analysis, re-verification of affected items, and a baseline update.
Option 3: Accept a deviation or waiver. Formally document that the hardware does not meet the requirement as written, provide an engineering rationale for why this is acceptable, and obtain the necessary approvals. A deviation applies when you know before production that the requirement will not be met. A waiver applies after the fact — when hardware already exists and does not conform. This path preserves the original requirement in the baseline while explicitly acknowledging and controlling the non-conformance.
None of these options is universally correct. The right choice depends on the nature of the gap, the cost and schedule of hardware rework, the certification implications of the requirement, the contractual allocation of responsibility, and the downstream consequences for integrated systems.
What is never acceptable is the fourth path that programs sometimes take under schedule pressure: undocumented workarounds. Hardware that does not meet a requirement, with no formal record of that fact, is a liability that will surface — at acceptance testing, during audit, or in the field.
Requirements Error vs. Design Error: Why the Distinction Is Not Semantic
Before deciding which path to take, the program must answer a prior question: is this a requirements error or a design error?
A requirements error means the requirement was wrong. It specified the wrong value, the wrong interface, the wrong operating condition, or the wrong behavior. The hardware was built to a specification that was internally inconsistent, based on incorrect assumptions about the operating environment, or disconnected from the actual system need. The requirement, as written, should not have existed in that form.
A design error means the requirement was correct, and the hardware was designed or manufactured in a way that fails to meet it. The specification was sound; execution was not.
The distinction matters for three concrete reasons:
Contract allocation. On cost-plus contracts, requirements errors may be compensable — the customer wrote a bad specification and the contractor is entitled to recover rework costs. On fixed-price contracts, the allocation is more complex, but the distinction still determines who bears risk and who can make claims. A design error on a fixed-price contract is typically the contractor’s problem. A requirements error is a different conversation.
Certification. Regulatory authorities — whether FAA, EASA, DoD, or a nuclear or automotive certification body — care deeply about whether a requirement was correct and has been properly closed. Changing a requirement mid-program requires the certifying authority to be notified, and in many cases to approve the change. Changing it without documentation is a compliance violation. Characterizing a design error as a requirements error to avoid rework is an integrity problem that auditors are specifically trained to detect.
Root cause and recurrence. If a requirements error is misclassified as a design error, the team may spend resources fixing hardware while leaving a broken requirements process in place. If a design error is misclassified as a requirements error, the team revises the specification and ships hardware with an unresolved defect. Correct classification drives correct remediation.
The test is straightforward in principle, though sometimes difficult in practice: If the hardware had been built exactly to specification, would it have performed acceptably in the actual operating environment? If yes, it is a design error. If no, it is a requirements error.
The Formal Change Management Process
Regardless of which path the program takes, the process is formal and sequential. Skipping steps does not save time — it creates rework when the skipped steps surface later as deficiencies.
1. Requirements Change Request
The change request is the formal entry point. It documents what the proposed change is, what triggered it, and who is requesting it. A well-written change request includes: the current requirement text, the proposed new text, the reason for the change, and a preliminary assessment of scope. It does not include the approval — that comes after impact analysis.
2. Impact Analysis
Impact analysis is the most underinvested step in most change management processes. Before any change is approved, the team must understand what it touches. This means tracing the requirement forward to the design elements, test cases, and verification evidence that depend on it, and tracing it backward to the higher-level requirements and system needs it was derived from.
A complete impact analysis answers:
- Which design elements will need to change?
- Which test procedures reference this requirement?
- Which verification records will be invalidated?
- Which interface control documents reference this parameter?
- Which downstream systems or suppliers are affected?
- What is the cost and schedule estimate for each affected item?
Without this analysis, approval is a guess. Programs that approve changes before completing impact analysis routinely discover that a “minor” requirements change invalidates weeks of completed verification work or requires a supplier to re-qualify a component.
3. Change Board Review and Approval
The Change Control Board (CCB) — or equivalent governance body — reviews the change request and the impact analysis together. The CCB should include representation from systems engineering, design, verification, program management, and if applicable, the customer and the certifying authority. Approval is conditional on the impact analysis being complete.
4. Regression Verification
Once a requirement changes, every test case and verification activity linked to that requirement must be reviewed. Some will be invalidated and must be rerun. Some will remain valid with updated expected values. Some new tests may be required. The verification baseline must be updated to reflect which evidence remains current and which has been superseded.
This is where programs most often underestimate cost. Regression verification is not just re-running failed tests. It means auditing the full chain of evidence to confirm that the new requirement is closed, that the closure is documented, and that no previously-valid evidence has been silently invalidated by the change.
5. Baseline Update
The approved change is incorporated into the controlled requirements baseline, with version control, change history, and links to the impact analysis and approval record. The old requirement text is preserved — marked as superseded — so the audit trail is complete.
Waivers and Deviations: Formal Acceptance of Non-Conformance
When hardware exists and does not meet a requirement, and when changing the hardware is not the chosen path, the program must process a formal waiver.
A waiver is not a get-out-of-jail-free card. It is a controlled document that acknowledges a specific non-conformance, provides an engineering rationale for why the non-conformance is acceptable in the specific use case, identifies any compensating measures or operational restrictions, and records approval from the appropriate authorities — including, in many cases, the customer and the certifying authority.
A deviation is processed before the fact — when a program knows it will not meet a requirement and is seeking pre-approval to proceed. This is common when a required component is unavailable, when a manufacturing process cannot achieve a specified tolerance, or when testing reveals a requirement cannot be met without redesign that is out of scope.
Both documents become permanent parts of the program record. They appear in configuration audits. They travel with the hardware. A customer accepting hardware with an open waiver is accepting a documented, bounded risk — not an unknown one. This distinction is what makes waivers legitimate and undocumented workarounds dangerous.
How Graph-Based Platforms Change the Economics of Late Changes
The processes described above are necessary regardless of what tools a program uses. But the cost of executing them — particularly impact analysis — varies enormously depending on whether requirements are managed in living documents or in a connected engineering graph.
In a document-based environment — Word files, PDFs, manually maintained RTMs — impact analysis is a manual process. An engineer reads through specification documents, cross-references test plans, traces through interface control documents, and tries to assemble a complete picture of what the proposed change touches. This takes days to weeks, is error-prone, and produces an answer that is immediately stale as the program continues to move.
Platforms like Flow Engineering model requirements, design elements, tests, and verification evidence as nodes in a connected graph, with explicit typed relationships between them. When a requirement is flagged for potential change, the platform can immediately surface every downstream node — every design element derived from that requirement, every test case linked to it, every interface that references it — and show the propagation path to system-level and higher requirements as well.
This changes the economics of impact analysis in two concrete ways:
First, it compresses the time required. What takes a senior systems engineer three days to assemble manually — by reading through multiple documents and checking cross-references — takes minutes when the relationships are already modeled in the graph. The engineer’s role shifts from hunting for connections to evaluating them.
Second, it surfaces propagation paths that manual analysis misses. In complex systems, requirements have non-obvious dependencies. A thermal requirement may be linked to a power budget, which is linked to a duty cycle assumption, which is linked to a performance specification that a different team owns. Manual trace analysis follows the paths the engineer thinks to follow. A graph traversal follows all paths. The difference shows up in CCB meetings, when the impact analysis is complete rather than optimistic.
Flow Engineering is built specifically for hardware and systems engineering workflows, which means the data model reflects the way requirements, allocations, and verification closures actually work in these programs — not in software development. The traceability graph includes interface allocations, derived requirements, and verification method tagging, so the impact of a change on verification scope is visible before the change is approved, not after.
This matters most at exactly the moment when programs are under the most pressure: when hardware has been built, a problem has been found, and the program manager wants a decision in 48 hours. The team that can produce a complete, auditable impact analysis in hours — rather than weeks — has real options. The team that cannot is forced into a choice between a slow, thorough process and a fast, risky one.
Practical Starting Points
If your program does not have a formal change management process, these are the minimum elements to establish before the next integration phase:
-
Define your CCB structure now, before you need it. Who has authority to approve a requirements change? Who must be notified? What is the quorum? A CCB that is convened for the first time in the middle of a crisis will spend its first meeting arguing about its own authority.
-
Audit your current requirements for testability and traceability. Requirements that cannot be tested and requirements that are not linked to design elements are the ones that will generate surprises at integration. Find them before the hardware does.
-
Establish the distinction between requirements errors and design errors in your program documentation. This is a documented engineering judgment process, not a finger-pointing exercise. Define who makes the call and what evidence is required.
-
Template your waiver and deviation process. Most programs that lack a waiver process do not lack the intent to manage non-conformances — they lack the template and the approved workflow. Borrowing from a standard like AS9102 or MIL-STD-973 is faster than writing from scratch.
-
Choose tools that make impact analysis cheap enough to run before approval, not after. If your current tooling makes impact analysis so expensive that it gets abbreviated under schedule pressure, the tooling is part of the problem.
Honest Assessment
Late requirements errors are expensive. There is no process that makes them free. But there is an enormous difference between an expensive problem that is managed well and an expensive problem that is managed badly. A well-executed waiver, a documented requirements change with complete impact analysis, a regression verification plan that closes cleanly — these are professional responses to a reality that every hardware program faces. They protect the program, the contract, and the certification record.
The teams that struggle most with late requirements changes are not the ones who discover errors. They are the ones who discover errors without the process infrastructure to handle them, and who then make fast decisions that create slow problems.
Build the process before the hardware tells you you needed it.