• Home
  • BVSSH
  • C4E
  • Playbooks
  • Frameworks
  • Good Reads
Search

What are you looking for?

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
Associated Policies

Technical debt is like junk food - easy now, painful later.

Awesome Blogs
  • LinkedIn Engineering
  • Github Engineering
  • Uber Engineering
  • Code as Craft
  • Medium.engineering