A module was built off-spec and needs rework
A module shipped and behaves differently from its specification in totals, nesting and line-item behaviour. Rework now competes with new features.
Compare the approved specification, subsequent decisions and implementation. Possible causes include ambiguity, changed requirements, implementation defects or missing validation.
Table of Contents
Summarize with:
Key facts
- Failures cluster in totals, nested structures and line-item behaviour.
- The specification showed screens and left states, totals and edge cases to interpretation.
- The bug list reads like a redesign.
- Patching keeps what works and locks in structural errors.
- Rebuilding corrects the structure and discards time already spent.
Why it happens
The specification showed screens. States, totals and edge cases were left to interpretation.
Parallel work. Development settled details in code before design settled them.
Design consideration
Data behaviour left out
The specification described how screens look and left out how data behaves across them.
Handoff readiness
Record stakeholder approvals and design decisions during the demo before preparing the developer handoff.
How it shows up
- Totals are wrong or missing
- Nested structures come out flat
- The add-item flow differs from the design
- The bug list reads like a redesign
- Developers and designers disagree about what the specification meant
Options and trade-offs
What helps:
- Behaviour specifications covering totals, states and edge cases
- Acceptance criteria for each interaction
- An early review of the built version against the design
- Simplified rules and a restart where rules had grown too complex
The tension: patching keeps what works and locks in the structural errors. A rebuild corrects the structure, and the time already spent is lost.
Common mistakes
- Fixing bugs one at a time when the structure is wrong
- Writing specifications as screen images
- Reviewing the built version only at the end
- Keeping rules that grew too complex because they are already coded