Standard : Avoid excessive abstraction or generalisation in systems prematurely
Purpose and Strategic Importance
This standard ensures that system design favours simplicity and pragmatism by avoiding premature abstraction or over-generalisation. Delivering only necessary complexity reduces development overhead, accelerates delivery, and lowers maintenance burden.
It supports the policy “Eliminate Non-Value-Adding Activities” by preventing over-engineering and wasted effort. Without this standard, projects risk bloated designs, higher technical debt, and slower response to change.
Strategic Impact
- Speeds up delivery by focusing on immediate requirements
- Reduces technical debt and complexity in codebases
- Improves maintainability and understandability of systems
- Enhances agility by enabling easier change and adaptation
- Encourages pragmatic, value-driven engineering decisions
Risks of Not Having This Standard
- Overly complex, hard-to-maintain systems
- Increased development time and costs
- Higher likelihood of defects and integration issues
- Reduced team agility and slower feature delivery
- Wasted effort on unused or unnecessary functionality
CMMI Maturity Model
Level 1 – Initial
| Category |
Description |
| People & Culture |
- Designs tend to anticipate future needs excessively, adding complexity early. |
| Process & Governance |
- No formal guidelines to limit abstraction or generalisation scope. |
| Technology & Tools |
- Limited tooling to assess complexity or impact of design decisions. |
| Measurement & Metrics |
- No metrics track design complexity or impact on delivery. |
Level 2 – Managed
| Category |
Description |
| People & Culture |
- Awareness of over-engineering risks exists; practices vary by team. |
| Process & Governance |
- Basic design principles encourage minimal viable abstraction. |
| Technology & Tools |
- Tools assist in documenting and reviewing design choices. |
| Measurement & Metrics |
- Some tracking of design rework and complexity-related defects occurs. |
Level 3 – Defined
| Category |
Description |
| People & Culture |
- Design simplicity is embedded as a core principle in engineering culture. |
| Process & Governance |
- Formal review processes assess abstraction appropriateness and necessity. |
| Technology & Tools |
- Integrated design tools provide complexity and dependency analysis. |
| Measurement & Metrics |
- Metrics guide continuous improvement in design practices and outcomes. |
Level 4 – Quantitatively Managed
| Category |
Description |
| People & Culture |
- Data-driven decisions optimise balance between simplicity and flexibility. |
| Process & Governance |
- Design metrics influence architecture governance and technical debt management. |
| Technology & Tools |
- Analytics predict complexity impacts and recommend design optimisations. |
| Measurement & Metrics |
- Quantitative links exist between design simplicity and delivery efficiency. |
Level 5 – Optimising
| Category |
Description |
| People & Culture |
- Continuous refinement of design approaches based on feedback and evolving needs. |
| Process & Governance |
- Policies dynamically adapt to technological advances and business context changes. |
| Technology & Tools |
- AI-enhanced design tools assist in generating optimised, minimalistic architectures. |
| Measurement & Metrics |
- Organisational maturity in design drives faster delivery and reduced technical debt. |
Key Measures
- Design complexity metrics (e.g., cyclomatic complexity, coupling)
- Frequency and impact of rework due to over-abstraction
- Delivery lead time correlated with design simplicity
- Developer feedback on system understandability and maintainability
- Technical debt levels related to design decisions