Problem
Hidden constraints such as budgets, regulation, legacy interfaces, or team skills surface halfway through a project. Designs get rejected late, or worse, ship while quietly violating a rule.
Also known as: assumptions-and-constraints, constraint-register
Make the fixed boundaries and assumptions around a system explicit so design options are evaluated against reality.
Hidden constraints such as budgets, regulation, legacy interfaces, or team skills surface halfway through a project. Designs get rejected late, or worse, ship while quietly violating a rule.
Every architecture lives inside boundaries it did not choose: a budget, a data-residency law, an existing database, a three-person team. Constraint documentation lists those boundaries explicitly and distinguishes them from assumptions, which are beliefs that might be wrong. The goal is that no design option is judged without knowing the walls around it.
Keep a simple register, one row per constraint or assumption, owned by a named person.
ID Type Statement Source Fixed? Review
C-01 regulatory EU user data stays in EU legal yes yearly
C-02 technical must integrate with ERP SOAP vendor no Q3
A-01 assumption peak load under 5k req/s product n/a next launch
Each design record cites the constraints it respects. When a constraint is marked negotiable, the register states who can renegotiate it and at what cost, which turns a hidden limit into an explicit option.
Low: a table in the repository
Low: periodic review
Low: simple concept
Negotiable limits treated as fixed, which blocks better options
Assumptions never revalidated and later proven false
Register becomes stale and is ignored