Leading With Data· a Bicycle Guide
Guide highlights

Architecture decisions are guided by objective evidence, and teams take shared ownership of quality improvement. Systems stay in the corridor of low, stable maintenance cost, avoiding the big ball of mud.

  • Decide what quality attributes and goals matter most in your context, using techniques like Goal-Question-Metric and EventStorming.
  • Select and define metrics (four key metrics, fitness functions, MMI, coupling and complexity metrics) that provide strong signals and are feasible to collect.
  • Automate measurement in your delivery pipeline and wrap key metrics in fitness functions run on every change.

Book profile

Software Architecture Metrics

One book, placed in its field — what Christian Ciceri et al's book gets right, where it goes further than the rest, and what the rest of the field adds.

Edited by Mike West

Choose a reading path or an exercise

Suggested sections

Choose a starting point below. Each link opens a section of this guide.

Do this now — Continuous Automated Measurement

  1. Translate each prioritized quality attribute into one executable fitness function, such as a no-cycles rule, a layer-dependency check, or a latency budget.
  2. Wire the checks into the CI/CD pipeline at pull-request time, with the fast ones blocking merges and the slow ones running on a schedule.
  3. Start with a baseline snapshot and fail only on regressions against it, so legacy violations do not make the gate unusable on day one.
  4. Publish trend lines in the team's own channel rather than a separate tooling portal.

Then continue in Continuous Automated Measurement.

Edition 1·Updated 2026-10-03·21 min read

Sources

About this book

An overview of the book, with source information for further reading.

Software Architecture Metrics

Christian Ciceri et al

Ten leading practitioners show how to select, implement, automate, and act on software architecture metrics so that objective measurement—not gut feeling—guides architectural decisions and business outcomes.

More on this book

Software architecture is famously hard to measure, yet the most consequential decisions—about maintainability, testability, deployability, scalability, security, and technical debt—depend on knowing where you stand and where you're headed. In this practitioner-driven anthology, ten experienced architects present case studies and concrete techniques for turning fuzzy architectural intuitions into objective, actionable measurements. You'll learn to unleash the four key DORA metrics to spark team-driven improvement, use fitness functions and a fitness function testing pyramid to define 'good' for your system, guide architecture with testability and deployability, quantify technical debt with the Modularity Maturity Index, survive imperfect DevOps transitions with private builds and process metrics, connect KPIs to architecture as an organization scales, embed continuous measurement across the delivery lifecycle, convert metrics into automated engineering governance via fitness functions, ensure maintainability with coupling and complexity metrics, and discover metrics for hard problems using the Goal-Question-Metric approach. Rather than prescribing a single method, the book supplies a toolbox grounded in real-world experience—so you can pick metrics that fit your context, automate them, and use them to keep your options open as your systems evolve.

Movement I

Orient

In this part

What this book claims, and who wrote it.

  • — The book's one-line promise
  • — The author and where the book stands

Ten leading practitioners show how to select, implement, automate, and act on software architecture metrics so that objective measurement—not gut feeling—guides architectural decisions and business outcomes.

The need-to-know

Objective measurement, applied continuously and automatically, is what transforms architecture from craft into engineering discipline. The combination of metrics matters more than any single metric: balancing throughput with stability, or coupling with complexity, prevents lopsided improvement. Fitness functions unify diverse validation mechanisms under one umbrella and, run continually in pipelines, act as an executable checklist that governs architecture.

About this guide

The guide describes these challenges, steps and possible outcomes.

Who it is for

A software architect (or senior engineer) who wants to improve the quality, maintainability, and business value of their systems and prove that their architecture decisions are working.

Challenges

  • In practice · Architectural qualities like maintainability, scalability, deployability, and technical debt are hard to measure, so decisions are made on gut feeling and problems surface too late.
  • For the reader · The architect feels uncertain about whether their work is effective, overwhelmed by having to spot and fix every problem alone, and anxious about hidden erosion and risk.

Steps to consider

  1. 1Decide what quality attributes and goals matter most in your context, using techniques like Goal-Question-Metric and EventStorming.
  2. 2Select and define metrics (four key metrics, fitness functions, MMI, coupling and complexity metrics) that provide strong signals and are feasible to collect.
  3. 3Automate measurement in your delivery pipeline and wrap key metrics in fitness functions run on every change.
  4. 4Display metrics transparently, discuss them with the whole team, and use them to prioritize and drive improvement.
  5. 5Iterate continuously: act on findings, prune low-value metrics, and let architecture and metrics evolve together as the organization changes.

Risks

Structural erosion and technical debt accumulate until every change is a painful, expensive, error-prone effort. Defects surface late in production, damaging reputation and inflating cost of fixes.

Intended result

Architecture decisions are guided by objective evidence, and teams take shared ownership of quality improvement. Systems stay in the corridor of low, stable maintenance cost, avoiding the big ball of mud.

Set the record straight

What this book sets straight

The common beliefs this book pushes back on.

The myth

Software architecture is a craft that can only be judged subjectively by experienced architects.

The reality

Architectural qualities can and should be objectively measured, and measurement amplifies architects' judgment rather than replacing it.

The myth

Measurement should wait until the system is running in production.

The reality

Different measurement types (artifact vs. operational, internal vs. external) let you start measuring early and continuously across the whole delivery lifecycle.

The myth

You must have a fully mature DevOps culture and automation before metrics are useful.

The reality

Even in imperfect environments, private builds and process metrics let teams stay productive and detect problems selectively.

The myth

Detailed up-front architecture and future-proofing produce the best systems.

The reality

An evolutionary approach guided by testability, deployability, and measurement keeps options open and adapts to what you actually learn.

The myth

A KPI or metric is a target teams must hit.

The reality

Per Goodhart's Law, when a measure becomes a target it ceases to be a good measure; metrics should guide and enable, not dictate.

The myth

More metrics and more measurement infrastructure is always better.

The reality

Start small, measure what matters, act on it, and prune metrics of limited value to avoid drowning in low-signal data.

Movement II

Map

The book's main ideas and how they connect.

In this part

Software Architecture Metrics's own model — and how it sits inside its field.

  • — 10 constructs the book works with
  • — Where it agrees with the field, exceeds it, or fills a gap
The Conditions1· the context you inherit
Goal and KPI Clarity
What You Design4· the levers you pull
Continuous Automated MeasurementTestability and DeployabilityArchitectural Modularity and Loose CouplingCode Size and Complexity
What It Produces1· the states it creates
Team Ownership and Engagement
What You Do1· the behaviours that follow
Technical Debt and Structural Erosion
Maintainability
the mission
the 2 outcomes it drives
Software Delivery PerformanceSystem Quality and Business Outcomes

The constructs

Continuous Automated Measurement

The practice of collecting and computing metrics automatically and frequently throughout the delivery lifecycle, including fitness functions wired into CI/CD pipelines, so that architectural qualities are evaluated on every change rather than late or ad hoc.

Architectural Modularity and Loose Coupling

The degree to which a system is divided into cohesive, loosely coupled parts with clear separation of concerns and good abstraction, minimizing cyclic dependencies and structural erosion between components, packages, and modules.

Code Size and Complexity

The size, cyclomatic complexity, indentation depth, and cohesion characteristics of source files and methods that determine how hard the code is to read, understand, test, and change.

Testability and Deployability

The extent to which the system can be tested easily and deterministically and deployed as an independently releasable unit through a deployment pipeline, treated as architectural properties that drive design quality.

Goal and KPI Clarity

The degree to which architectural goals, quality attribute requirements, and organizational KPIs are explicitly defined, shared, and understood so that measurement is purposeful and metrics are chosen for the right reasons.

Team Ownership and Engagement

The psychological and behavioral state in which development teams understand, discuss, own, and act on metrics and architectural decisions, taking initiative to improve quality rather than deferring to a lone architect.

Technical Debt and Structural Erosion

The accumulated unnecessary complexity, cyclic dependencies, architectural violations, and design decay that make a system progressively more expensive and risky to maintain and extend over time.

Software Delivery Performance

The throughput and stability of software delivery captured by deployment frequency, lead time for changes, change failure rate, and time to restore service, indicating how quickly and reliably value reaches users.

Maintainabilitythe outcome

The long-term ease with which a system can be understood, changed, tested, and extended by evolving teams while preserving quality and speed, keeping the system in the corridor of low and stable maintenance cost.

System Quality and Business Outcomes

The realized runtime quality attributes (performance, scalability, availability, security) and downstream business outcomes such as user satisfaction, reduced production defects, and achievement of organizational KPIs.

How they connect (13)
  • Goal and KPI Clarity → moderates → Continuous Automated Measurement
  • Continuous Automated Measurement → predicts → Team Ownership and Engagement
  • Continuous Automated Measurement → influences → Technical Debt and Structural Erosion
  • Architectural Modularity and Loose Coupling → influences → Technical Debt and Structural Erosion
  • Code Size and Complexity → influences → Maintainability
  • Architectural Modularity and Loose Coupling → predicts → Testability and Deployability
  • Testability and Deployability → predicts → Software Delivery Performance
  • Technical Debt and Structural Erosion → predicts → Maintainability
  • Team Ownership and Engagement → influences → Technical Debt and Structural Erosion
  • Maintainability → influences → Software Delivery Performance
  • Software Delivery Performance → predicts → System Quality and Business Outcomes
  • Goal and KPI Clarity → moderates → System Quality and Business Outcomes
  • Continuous Automated Measurement → mediates → Maintainability

Where this book diverges from the corpus

  • exceeds The field folds automated metric collection and fitness functions into a broader lean-management construct, while the book focuses on wiring fitness functions into CI/CD as a dedicated, operational practice for architecture.
  • fills gap The field has no construct for explicitly defined, shared architectural goals and KPIs that guide which metrics are chosen; its closest constructs (measurement validity, lean measurement) are about the metrics, not the goals.
  • fills gap The field covers autonomy and structural empowerment, but not the behavioral state of teams understanding, discussing, and acting on metrics and architectural decisions.
  • lags The book merges runtime quality attributes with business outcomes, while the field separates reliability, performance, and organizational outcomes into distinct constructs.

Movement III

Master

Explore the book's ideas, examples and practical tools.

In this part

How the author makes the case — section by section, with the book's own tools.

  • — 10 sections, in the book's order
  • — The book's frameworks, checklists, and worked cases
Team Ownership and Engagement
strong · 1 source
  • Software Architecture Metrics
In this section

This section describes how to move architectural responsibility from a single architect to the whole team through shared visibility of metrics. It gives you practices that build understanding and initiative.

Team Ownership and Engagement

The psychological and behavioral state in which development teams understand, discuss, own, and act on metrics and architectural decisions, taking initiative to improve quality rather than deferring to a lone architect.

Why it matters. When a lone architect owns quality, it degrades as soon as that person is absent or overruled, whereas teams that own metrics correct drift as part of daily work.

Myth

Architectural quality is best protected by a dedicated architect who reviews and enforces the metrics.

Reality

A central reviewer becomes a bottleneck and a single point of failure, and developers outsource judgment to them. Ownership grows when the team sees, discusses, and acts on the metrics itself.

Tools for this
The least you need to know
  • Ownership is built by letting teams see and act on metrics, not by mandating compliance.
  • Shift from a gatekeeping architect to a coach who enables team decisions.
  • Never tie metrics to individual performance evaluation.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Team Metrics Ownership Rollout Checklist” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 6 tools for this section. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Technical Debt and Structural Erosion
strong · 1 source
  • Software Architecture Metrics
In this section

This section helps you make technical debt and structural erosion observable through concrete indicators such as cycles, violations, and unnecessary complexity. You learn to track its direction rather than argue over a single dollar figure.

Technical Debt and Structural Erosion

The accumulated unnecessary complexity, cyclic dependencies, architectural violations, and design decay that make a system progressively more expensive and risky to maintain and extend over time.

Why it matters. Unseen erosion compounds quietly until each change costs far more than it should, at which point remediation competes with feature work and is much harder to justify.

Myth

Technical debt is a backlog of known shortcuts that you can pay down in a dedicated cleanup sprint.

Reality

Much of the damage is unintentional, accumulating through small architectural violations nobody chose. It is controlled mainly by preventing new erosion on every change, not by occasional large cleanups.

Tools for this
The least you need to know
  • Stopping new erosion matters more than cleaning up old erosion.
  • Watch the trend of a few concrete indicators rather than one composite score.
  • Repay debt where the code is changing most, since that is where interest is paid.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Erosion Watch Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 5 tools for this section. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Software Delivery Performance
strong · 1 source
  • Software Architecture Metrics
In this section

This section explains how to read deployment frequency, lead time, change failure rate, and time to restore as outcome signals of your architecture and practices. It shows how to use them for diagnosis rather than as targets.

Software Delivery Performance

The throughput and stability of software delivery captured by deployment frequency, lead time for changes, change failure rate, and time to restore service, indicating how quickly and reliably value reaches users.

Why it matters. These four measures reveal whether your architecture lets value reach users quickly and safely, but misused as targets they push teams to game speed at the expense of stability.

Myth

Delivery performance is a team-process issue that can be improved by pushing the team to deploy more often.

Reality

The four measures move together only when the underlying system allows small, safe, independent changes. Pressure to deploy faster without testable, modular structure raises failure rates instead.

Tools for this
The least you need to know
  • Throughput and stability must be read as a pair; improving one at the other's expense is not progress.
  • Slow delivery is often an architecture symptom, so diagnose structure before pressuring people.
  • Compare teams to their own history, not to each other.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Four Key Metrics Definition Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 13 tools for this section. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Maintainability
strong · 1 source
  • Software Architecture Metrics
In this section

This section defines maintainability as a long-run cost trajectory and shows how to monitor whether your system stays in a corridor of stable, low change cost. It connects the code-level and structural indicators that feed it.

Maintainability

The long-term ease with which a system can be understood, changed, tested, and extended by evolving teams while preserving quality and speed, keeping the system in the corridor of low and stable maintenance cost.

Why it matters. Maintainability decides whether the pace you achieve today is sustainable, since a system that becomes harder to change eventually throttles delivery no matter how skilled the team is.

Myth

Maintainability is a property of the code that you can score once with a single index and then forget.

Reality

It is a moving trajectory shaped by every change, team turnover, and accumulating structure. A good score today says little unless the trend of change effort stays flat.

The least you need to know
  • Maintainability is judged by the trend in cost of change, not by a snapshot score.
  • Combine an outcome measure with leading structural indicators to catch decline early.
  • Onboarding time is a practical, human check on whether the system is understandable.
Master this◆ Paid

The deep drill-down: 7 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Maintainability Fitness Function Card” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for. Included when you buy this guide.

Grounded in: Software Architecture Metrics

System Quality and Business Outcomes
strong · 1 source
  • Software Architecture Metrics
In this section

This section ties your architectural metrics to what users and the business actually experience: runtime quality attributes and results. It helps you check that internal improvements show up externally.

System Quality and Business Outcomes

The realized runtime quality attributes (performance, scalability, availability, security) and downstream business outcomes such as user satisfaction, reduced production defects, and achievement of organizational KPIs.

Why it matters. If internal metrics improve while performance, availability, security, or user satisfaction do not, you are optimizing the architecture for its own sake and cannot defend the investment.

Myth

Clean internal metrics, such as low coupling and low complexity, guarantee good runtime quality and business results.

Reality

Internal structure enables good outcomes but does not produce them; runtime qualities must be measured directly in production. The link is strongest when architectural work is aimed at clearly defined business goals.

The least you need to know
  • Verify internal improvements against production and user-facing measures before claiming success.
  • Runtime quality attributes must be measured directly; structure alone cannot be used as a proxy.
  • Judge outcomes against the explicit KPIs agreed at the start.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Service-Failure and Outcome Definition Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Continuous Automated Measurement
strong · 1 source
  • Software Architecture Metrics
In this section

This section shows how to move architectural metrics out of quarterly reviews and into the pipeline that every commit passes through. You get a way to decide which qualities deserve an automated check and how to keep those checks trusted.

Continuous Automated Measurement

The practice of collecting and computing metrics automatically and frequently throughout the delivery lifecycle, including fitness functions wired into CI/CD pipelines, so that architectural qualities are evaluated on every change rather than late or ad hoc.

Why it matters. Architecture that is measured only at audit time is discovered to be eroded after the damage is baked in, while architecture checked on every change is corrected when the fix costs minutes.

Myth

Installing a static-analysis dashboard that runs nightly means you are doing continuous architectural measurement.

Reality

A dashboard nobody is forced to act on is reporting, not measurement. The practice only works when fitness functions run on every change and can fail the build, so the feedback arrives while the author still has the context to fix it.

Tools for this
The least you need to know
  • Measurement counts as continuous only when it executes on every change and can block a merge.
  • Gate on regressions from a baseline, not on absolute thresholds, so adoption survives legacy code.
  • Each automated check should trace to a stated quality goal; otherwise it is noise you maintain.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Fitness Function and Pipeline Instrumentation Card” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 1 tool for this section. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Architectural Modularity and Loose Coupling
strong · 1 source
  • Software Architecture Metrics
In this section

This section explains how to judge whether your system's parts are genuinely separable, using dependency structure rather than folder layout. You leave with signals for cycles, coupling, and cohesion you can track over time.

Architectural Modularity and Loose Coupling

The degree to which a system is divided into cohesive, loosely coupled parts with clear separation of concerns and good abstraction, minimizing cyclic dependencies and structural erosion between components, packages, and modules.

Why it matters. Modularity determines whether a change stays local or ripples across the codebase, so getting it wrong makes every later test, deployment, and refactoring more expensive.

Myth

If the code is split into packages or microservices, the system is modular.

Reality

Modularity is defined by the dependencies between the parts, not by the boundaries drawn around them. A tangle of cyclic package references or services that must deploy together is a monolith with extra network hops.

Tools for this
The least you need to know
  • Cyclic dependencies are the clearest observable sign that a module boundary is not real.
  • Verify modularity from the extracted dependency graph, never from the diagram or directory structure.
  • Enforce dependency rules as tests so the structure cannot silently decay.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Modularity and Coupling Seam Review Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 2 tools for this section. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Code Size and Complexity
strong · 1 source
  • Software Architecture Metrics
In this section

This section covers the file- and method-level measures, such as size, cyclomatic complexity, nesting depth, and cohesion, that indicate where code is hard to read and change. It helps you use them as pointers to hotspots rather than as verdicts.

Code Size and Complexity

The size, cyclomatic complexity, indentation depth, and cohesion characteristics of source files and methods that determine how hard the code is to read, understand, test, and change.

Why it matters. Complexity concentrates where developers spend most of their time, so misjudging it either lets unreadable hotspots slow every change or sends teams chasing harmless numbers.

Myth

A low average cyclomatic complexity across the codebase means the code is easy to work with.

Reality

Averages hide the few oversized, deeply nested files where most defects and edits cluster. Complexity matters most where it intersects with change frequency, so the distribution tail is the signal.

Tools for this
The least you need to know
  • Look at the tail of the distribution, not the average, to find the code that actually hurts.
  • Combine complexity with change frequency to prioritize refactoring.
  • Use size and complexity limits on new code to stop the problem growing while you fix the old.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Complexity Fitness Function Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 5 tools for this section. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Testability and Deployability
strong · 1 source
  • Software Architecture Metrics
In this section

This section treats testability and deployability as architectural properties you can inspect, not just process outcomes. It shows how to spot design choices that block fast, deterministic tests and independent releases.

Testability and Deployability

The extent to which the system can be tested easily and deterministically and deployed as an independently releasable unit through a deployment pipeline, treated as architectural properties that drive design quality.

Why it matters. If a component cannot be tested in isolation or released alone, every release becomes a coordinated event, and delivery speed is capped by the architecture regardless of team effort.

Myth

Testability is about writing more tests, and deployability is a DevOps tooling matter handled after the design is done.

Reality

Both are determined by design: hidden dependencies, shared state, and tangled coupling make tests slow and flaky and releases interdependent. Better tooling cannot compensate for a structure that does not permit isolation.

Tools for this
The least you need to know
  • A component you cannot test in isolation is a coupling problem, not a testing problem.
  • Independent deployability should be proven by releasing a unit alone, not asserted.
  • Track flakiness and test duration, since they reveal architectural coupling that coverage hides.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Testability and Deployability Audit Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 4 tools for this section. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Goal and KPI Clarity
strong · 1 source
  • Software Architecture Metrics
In this section

This section helps you establish which architectural goals and KPIs your metrics should serve before you pick any tools. You get a way to link each measure to a quality attribute requirement and a business reason.

Goal and KPI Clarity

The degree to which architectural goals, quality attribute requirements, and organizational KPIs are explicitly defined, shared, and understood so that measurement is purposeful and metrics are chosen for the right reasons.

Why it matters. Without explicit goals, teams measure whatever is easy, drown in numbers that drive no decision, and cannot show that architecture work contributes to outcomes the business values.

Myth

Good measurement starts with choosing a comprehensive metrics tool and seeing what it reveals.

Reality

Tools reveal what they can compute, not what matters to you. Starting from goals and quality attribute requirements tells you which few metrics deserve attention and what counts as a meaningful change.

Tools for this
The least you need to know
  • Pick metrics from goals, not goals from the metrics your tool happens to produce.
  • A metric with no predefined action attached is decoration.
  • Goals must be shared with the whole team to steer behavior, not just documented by the architect.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Goal-to-Metric Alignment Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 3 tools for this section. Included when you buy this guide.

Grounded in: Software Architecture Metrics

Movement III · The run-it-now depth

The Playbook

Practical tools and examples from this guide.

Frameworks

Frameworkfree

Architectural Modularity and Loose Coupling

How this mechanism is run, step by step, as the literature describes it.

  1. 1Start from the five attributes, not from a tool. Write each one as a one-line check for your system: modularity (parts change without forcing change elsewhere), cohesion (things that change together sit together), separation of concerns (each part solves one problem), abstraction/information hiding (seams let you consume behavior without knowing internals), coupling (how much separate parts must change together).
  2. 2Anchor the effort to quality goals. Align with key stakeholders on which ISO/IEC 25010 attributes matter (Maintainability lists modularity, reusability, analyzability, modifiability, testability). Spend measurement effort only on attributes that have a big impact on those goals.
  3. 3Express the goal as a fitness function: an objective function that summarizes how close the design is to the aim, outputting a discrete value (the metric). Define the verification mechanism that produces it. Automate it if you can, but automation is not required.
  4. 4Test the seams with a swap scenario. Pick a concrete change, such as replacing an RDBMS-backed repository with a GraphDB repository. Ask whether the domain core is separated from persistence. If the two are conflated, you have found a coupling problem.
  5. 5Use testability as the probe. For one module, check whether you can reach the relevant parts, put them in a well-defined state, invoke behavior, and capture responses. If setup is hard, the module is probably not cohesive or is tightly coupled to others.
  6. 6Check the tests themselves. If tests are decoupled from the code, the code can change without forcing test changes. Tests that break on internal changes show leaky abstractions. Tests that can target an abstraction boundary show a usable seam.
  7. 7For a whole codebase or an IT landscape, assess technical debt with the modularity maturity index (MMI). Use the result to decide which systems to refactor, which to replace, and which to leave alone.
  8. 8Feed delivery signals back into the architecture. Review the four key metrics (deployment frequency, lead time for changes, change failure rate, time to restore service) with the team weekly. Treat the coupling that is looser on paper than in practice, and the domain boundaries that are less crisp than they looked, as the architectural problems the metrics expose.
Framework◆ Paid

Code Size and Complexity

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Continuous Automated Measurement

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Software Delivery Performance

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Goal and KPI Clarity

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Maintainability

How this mechanism is run, step by step, as the literature describes it.

◆ The full 7-step framework — included with this guide purchase

Framework◆ Paid

System Quality and Business Outcomes

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Team Ownership and Engagement

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Technical Debt and Structural Erosion

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Testability and Deployability

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Checklists

Checklistfree

Architectural Modularity and Loose Coupling — decision rules

  • If a module is hard to set up for a test, then suspect low cohesion or tight coupling to other modules before blaming the test tooling.
  • If a planned technology change (for example, a different database) would force changes in domain logic, then introduce a seam such as a repository abstraction before committing to the change.
  • If a quality attribute has little impact on your overall goals, then do not define a fitness function for it. Spend effort on the attributes stakeholders rank highest.
  • If tests break whenever implementation details change, then strengthen the abstraction so tests target the boundary rather than the internals.
  • If an MMI-style assessment shows heavy technical debt in one system and little in another, then refactor or replace the first and leave the second alone.
Checklist◆ Paid

Code Size and Complexity — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Continuous Automated Measurement — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Software Delivery Performance — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Goal and KPI Clarity — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Maintainability — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

System Quality and Business Outcomes — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Team Ownership and Engagement — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Technical Debt and Structural Erosion — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Testability and Deployability — decision rules

◆ All 5 checkpoints — included with this guide purchase

Case studies — including what didn't work

Case studyfree

Architectural Modularity and Loose Coupling

Context

The source's own example is the database swap. Suppose you learn that your system would run more efficiently on a graph database than on a relational one. If you separated the core domain logic from the persistence of its results early on, you can imagine unplugging the RDBMS-backed repository and plugging in a GraphDB repository with relative ease. That outcome shows good separation of concerns, better modularity and cohesion, and decent abstraction. If core domain and persistence are conflated, the same move is very hard even to contemplate. You can turn this into a fitness function: define the aim as 'persistence replaceable without changing domain logic', and verify it by trying to write a domain test with no database present. The passages give no figures for this scenario, so treat the pass/fail result as your discrete metric. A second signal comes from delivery data. When teams discuss the four key metrics weekly, they surface coupling that isn't as loose as expected and domain boundaries that aren't as crisp as they appeared. Those findings point you to the modules to restructure.

Case study◆ Paid

Code Size and Complexity

Context

The source gives a ready-made fitness function. Define a file as complex if average indentation exceeds 3, or average complexity exceeds 10, or size exceeds 800 LoC. Say your system has a certain total LoC. Sum the LoC of every file that trips any of the three tests, divide by the system total, and compare against a 10% ceiling. The daily CI build computes this and breaks if the ratio exceeds 10%. The same build stores the number so you can chart it over 90 days. Per-method soft limits (indentation 4, Modified Cyclomatic Complexity 15) sit alongside it. Because the average is weighted by Number of Statements, a file with fifty trivial getters and one 120-statement method with deep nesting still shows as complex. Then pull the Number of Changes (d) for the flagged files and start refactoring with the ones that change most often.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Continuous Automated Measurement

Context

The passages give two fitness functions for a hypothetical system. Example 2-1 is 'Unit Test Coverage > 0.9; Execute on each CI Build; Fail when below target coverage'. Example 2-2 is 'Integration Test Coverage > 0.5; Execute on each nightly integration test build; Fail when below target coverage'. Each names a metric (coverage), a threshold (0.9, 0.5), a trigger (every CI build, nightly build), and a consequence (fail). A developer pushes a change, the CI build computes unit coverage, and the build fails if it drops below 90%. That evaluates the quality on every change instead of at a late review. The slower integration tests run nightly, so the 50% check is frequent but cheaper. An architectural example from the same source: instead of only checking that a customer can be created, the test creates 10 customers and verifies it took under 10 milliseconds. The delivery side works the same way. A pipeline run that fails at compilation is excluded, because counting it would shorten lead time artificially.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Software Delivery Performance

Context

The chapter describes a home-built dashboard in Microsoft PowerBI, chosen because the client used Azure DevOps. Deployment frequency was a daily bar graph over 31 days, with a summary of average deploys per day, today's deploys, the period total, and mean and 95th-percentile trend lines. It was rated 'DORA Elite'. Lead time for changes showed the daily mean, highlighted the longest individual lead time, and shadow-plotted deploy counts in light gray because people kept asking whether many deploys had happened that day. It rated 'High' in the figure, though the text describes the highlight as 'Low' on the Elite-Low scale, so the source is inconsistent on that point. Change failure rate typically showed zero or one failure per 24 hours, so problems stood out immediately, and it was rated 'Elite'. Time to restore service used a 120-day window, co-plotted lead time, also showed zero open change failures, and rated 'High'. The team spent most time getting comfortable with time to restore service. Once deployment frequency and lead times were stable, it became their primary focus.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Goal and KPI Clarity

Context

Anna, an architect at YourFinFreedom, wants to use leverage points in the architecture to reduce complexity in the Travel Insurance domain. She runs workshops, builds a KPI Value Tree, and gets a plan from the product engineering team. She knows the team's capacity to deliver features will drop during the experiment, so she meets Keisha and shares the workshop outcomes, the value tree, and the plan. She names the consequences, what she wants to learn, and how it contributes to the company goal of being a major EU player. Keisha backs her, and the stakeholders accept the honest framing and agree the experiment should run and its results be shared. The team takes the travel insurance policy service live and replaces the central customer information service for that domain. The metrics show the old boundaries were misplaced, and redefining them means the domain's services no longer need release orchestration. Because goals and expected costs were agreed up front, the stakeholders back the same approach in other domains. Later, as the domain's KPIs improve, leaders question whether current metrics such as 'Decrease the time to find a match for the insurance quote request' still fit, since analysts forecast a need to hire more people. That is a goal-clarity check on the metrics themselves.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Maintainability

Context

The source describes a monolith whose organization wants features to market faster, so it hires more people into product engineering teams. Each team tries its own solutions on top of the centralized architecture and adds accidental complexity: new dependencies, poorly documented or untested code, unstructured design. The result is a big ball of mud, and the ripple effects land on maintainability, operability, and changeability, so features slow down, the opposite of the intent. To keep this system in a stable maintenance-cost corridor, you would first agree with stakeholders that modifiability and testability are priority goals. Then you would add CI-triggered, automated, static fitness functions for cyclomatic complexity and unit test coverage, which are atomic and cover only the code they touch. Next you would add the four key metrics as a holistic view, captured manually at first and shown on a wiki-page dashboard. If lead time for changes lengthens while change failures rise, the atomic checks tell you where complexity is accumulating and the delivery metrics tell you it is hurting. In the source's own rollout, the team stabilized deployment frequency and lead time first, then made time to restore service the primary focus. Thresholds are yours to set; the passages give none for these checks.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

System Quality and Business Outcomes

Context

Andrew Harmel-Law's rollout shows the progression. His teams got PowerBI dashboards that let them self-serve data in real time and see only the data from their own pipelines. Trend lines were added, followed by timescales longer than the default 31 days. The cross-functional discussions that followed surprised him. Problems that once fell to him alone as architect to spot, analyze and fix were now being raised and solved by the teams. The requests came in a consistent order. First were process changes ('Can we change the cadence of releases?'). Next were quality changes ('Let's pull tests left', 'Let's add more automation'). Then came team-makeup changes ('Can we move to cross-functional or stream-aligned teams?'). All of it ended by exposing architectural problems: coupling looser on paper than in practice, domain boundaries less crisp than drawn, frameworks that got in the way, modules hard to test, and microservices impossible to observe under real traffic. The business-facing signal sits in the failure definition. Users who drop out of a slow system count as a service failure, so a user-visible quality problem shows up in the numbers.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Team Ownership and Engagement

Context

The source describes an architect rolling out the four key metrics. Early team conversations were only about what each metric meant. Over the following weeks they moved to why the numbers were where they were (too high, too low, data missing), and then to how to improve them. Self-service, real-time data, a view limited to each team's own pipelines (all via PowerBI dashboards), trend lines, and timescales beyond 31 days all helped. The architect reports being amazed: problems that once fell to them alone to spot, understand, analyze, and remedy were now being raised and driven by the teams. The requests then escalated as predicted. First came "Can we change the cadence of releases?", then "Let's pull tests left" and "Let's add more automation", then "Can we move to cross-functional (or stream-aligned) teams?" All of it ended up exposing architectural problems such as coupling and observability gaps, which the architect then took on.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Technical Debt and Structural Erosion

Context

The source cites Apache Cassandra as a real case of cycle-group growth. In version 2, the project already had a cycle group of about 450 Java files, and the passages note that such groups keep growing once they reach a certain size. Apply that to your own system: map the dependency graph at file or package level, highlight each cycle group, and record the size of the largest one. Re-measure each release. If it keeps growing, treat it as erosion, because a change in one area can now break something unrelated. Then add a cycle fitness function to CI so no new cycle can be committed, and set a lenient first goal, such as stopping growth, before you target shrinking the group. The passage on cost makes the stakes clear: as debt piles up, each change delivers less functionality per unit of time.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Testability and Deployability

Context

Take the zero-downtime check described in the passages. A team has a service with its own pipeline. Their reliability fitness function runs a rolling update against the system in a test environment while traffic is applied, and verifies the system stays operational and no requests fail. It is holistic, because a pass means a large part of the system works for end users. It is triggered by the CI/CD pipeline on each change. A pass becomes part of the pipeline's definition of releasable. The team also deliberately takes one node down during the test to show the whole system stays responsive. Alongside it they run atomic checks, such as unit test coverage and cyclomatic complexity, as cheap early feedback. They feed pipeline results into the four key metrics, ignoring scheduled runs with no change and using daily totals for the graph. If a release manager still wants a separate integration pass after the pipeline, the pipeline has failed to define releasability, and the check moves into it.

◆ What happened, and the outcome — included with this guide purchase

Templates

Templatefree

Modularity and Coupling Seam Review Sheet

Template◆ Paid

Complexity Fitness Function Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Fitness Function and Pipeline Instrumentation Card

◆ The fillable template — included with this guide purchase

Template◆ Paid

Four Key Metrics Definition Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Goal-to-Metric Alignment Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Maintainability Fitness Function Card

◆ The fillable template — included with this guide purchase

Template◆ Paid

Service-Failure and Outcome Definition Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Team Metrics Ownership Rollout Checklist

◆ The fillable template — included with this guide purchase

Template◆ Paid

Erosion Watch Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Testability and Deployability Audit Sheet

◆ The fillable template — included with this guide purchase

Items marked Paid are included when you buy this guide.

Movement IV

Reflect

Consider the book's evidence, limitations and how it compares with other sources.

In this part

How good is it — where the book stands against the field, what it leaves open, and when to trust it.

  • — Its positioning, its critique, its blind spots
  • — When to apply it — and when not
  • — The evidence behind the advice

Book profile · in the corpus

This book’s model, against the corpus

8 of 10 constructs align with the field · 2 the book adds · 2 where it diverges · the field spans 30 constructs across 21 books

shared with the corpusthis book's own emphasisthe corpus adds (other sources)where it diverges

Shared with the corpus — corroborated by other sources

Continuous Automated MeasurementArchitectural Modularity and Loose CouplingCode Size and ComplexityTestability and DeployabilityTechnical Debt and Structural ErosionSoftware Delivery PerformanceMaintainabilitySystem Quality and Business Outcomes

This book's own emphasis — where it's the authority

Goal and KPI ClarityTeam Ownership and Engagement

Where it diverges — the book and the field pull apart

Continuous Automated MeasurementSystem Quality and Business Outcomes

The corpus adds — from 20 other sources this book doesn't cover

The full field guide folds in ideas this book doesn’t reach — drawn from 20 further sources and cited in the full model.

This book’s place in the corpus

1 of 21
sources in this corpus
10
constructs contributed
8
corroborated by others
2
unique to this book

Why the corpus guide, not just this book

The book builds on the Accelerate/DORA delivery-performance tradition and on evolutionary-architecture ideas, and it is the authority on architecture fitness functions in CI/CD, on goal-driven metric selection, and on team engagement with metrics. The reconciled field-guide still adds the wider context the book lacks: culture, cognitive load, burnout, measurement gaming, and a separate treatment of reliability and performance.

This guide stands on the shoulders of this book and 20 other sources — every claim cited, the disagreements named.

Read the reconciled Engineering Analytics guide →

Read it closely

The book, examined

Not a summary — a close analytical reading: how the book is built, what it leaves open, and where it falls short.

How it’s built — the argument in order

  1. 01
    Preface: purpose and framing — States the problem: architecture metrics should warn early about accumulating architectural and technical debt. Ten practitioners promise practice over theory, with case studies and trade-offs. They link objective metrics to business outcomes and cite a reader survey showing demand but little available material. The chapters are deliberately different in voice.
  2. 02
    1. DORA metrics — Starts with the four key delivery-performance metrics. They show how throughput and stability together can spark team-driven improvement. This gives readers a low-barrier, widely known starting point and establishes that metrics work in combination.
  3. 03
    2. Fitness functions and the fitness function testing pyramid — Introduces fitness functions as the way to define 'good' for a particular system. They unify diverse validation mechanisms under one umbrella and are organized as a pyramid. This supplies the book's central conceptual vocabulary.
  4. 04
    3. Testability and deployability as architectural guides — Treats two qualities as measurable drivers of design. Architecture is steered by how easily the system can be tested and released, which ties structure to delivery.
  5. 05
    4. Quantifying technical debt with the Modularity Maturity Index — Gives a concrete composite measure of structural quality and technical debt. Modularity, coupling, and cyclic dependencies become something that can be scored and tracked.
  6. 06
    5. Surviving imperfect DevOps transitions: private builds and process metrics — Defines the key terms (automation, CI, CD) and the logic that painful activities should be done more often and automated. A case-driven account then shows how teams can prioritize needs and improve the development process when the transition is incomplete. It uses private builds and process metrics, and the goal is to avoid breaking the shared build.
  7. 07
    6. Connecting KPIs to architecture as an organization scales — Uses the fictional YourFinFreedom story (Anna, Keisha) to show a monolith-to-microservices move that drifts into a distributed big ball of mud for lack of metric-guided direction. Company KPIs (EBITDA, customer lifetime value, MAU) are traced down through a KPI Value Tree. Its levels run from organizational lagging KPIs, to domain KPIs, to metrics that are leading and lagging. The chapter warns with Goodhart's Law that KPIs are guides, not targets, and that the tree must evolve.
  8. 08
    7. Embedding continuous measurement across the delivery lifecycle — Addresses where in the pipeline and lifecycle to measure, and how to introduce measurement without wasting effort. It builds on the CI/CD logic that later detection costs more.
  9. 09
    8. Turning metrics into automated engineering governance via fitness functions — Shows fitness functions run continually in pipelines as an executable checklist. Governance moves from review meetings to automated checks.
  10. 10
    9. Maintainability through coupling and complexity metrics — Focuses on code size, complexity, and coupling, especially cyclic dependencies and structural erosion. It argues these can be measured, limited, and reversed, and that the combination of metrics prevents lopsided improvement.
  11. 11
    10. Discovering metrics with Goal-Question-Metric (GQM) — Closes with a method for hard, poorly understood problems where no ready metric exists. Starting from goals and questions makes the chosen metrics trusted and meaningful, which echoes the book's theme that why you measure comes before what you measure.

What it leaves unsolved

How can a team know which metrics fit its own context when copying another organization's set fails?

The book says context decides and offers a toolbox rather than a method. GQM is the main aid, but the material gives no general procedure for choosing among competing candidates, so the judgment is left to the reader.

How do you keep metrics from becoming targets once they are automated into pipelines and governance?

Goodhart's Law is invoked and KPIs are called 'guides and enablers, not targets'. Fitness functions as executable checklists and quality gates nonetheless act like targets. The passages do not show where guidance turns into gaming.

How strongly and causally do architecture metrics (DORA, coupling, MMI) predict business KPIs such as EBITDA, lifetime value, or MAU?

The KPI Value Tree links levels conceptually, with deployment frequency and change fail rate as leading indicators. The link is argued by narrative and workshop rather than demonstrated, and the lagging business outcomes are affected by many other forces.

What absolute thresholds count as good or bad?

The takeaways stress that trends are often more revealing than absolute values and that contexts differ. That leaves open when a value is dangerous in itself.

How should measurement evolve as an organization and its technology scale?

The KPI Value Tree is described as a snapshot that needs continual discussion and adjustment. The book does not say how often or by what signals teams should retire or replace metrics.

How do you measure hard qualities such as scalability and security objectively?

The book raises these alongside maintainability, testability, and technical debt. GQM is offered for poorly understood problems, but the framing suggests no settled metric exists for them.

How can teams in imperfect or partial DevOps transitions get reliable measurement when the pipeline itself is immature?

The process-metrics chapter exists because transitions are imperfect. The material only describes pragmatic workarounds, not a way of knowing the measurements are trustworthy.

Where it falls short — a fair critique

incomplete

The book is an anthology of ten voices and explicitly declines to prescribe one method. It is rich in tools but offers no integrating framework for how DORA, fitness functions, MMI, KPI trees, and GQM relate or sequence. The reader must assemble the pieces.

incomplete

The Preface says the book is about what has been tried and has worked, but the passages show little quantitative evidence. The KPI chapter relies on a stylized fictional company (Anna, Keisha, YourFinFreedom) rather than measured outcomes. Its claims about success are therefore illustrative rather than demonstrated.

uninformed

The reader survey that motivates the book is mentioned only briefly, with no sample or method. The claim of strong demand and few resources is not substantiated, and other existing literature on software metrics is not engaged in the passages.

illogical

The book promotes automated, continuous governance via fitness functions and quality gates while also warning (Goodhart's Law) that measures must not become targets. A pipeline check that fails the build is effectively a target. The tension between the two positions is stated but not resolved.

illogical

It says metrics must be context-dependent and cannot be copied, yet it presents well-known sets such as the four DORA metrics and recurring coupling and cyclic-dependency measures as broadly useful starting points. The criteria for when a standard metric transfers and when it must be custom-built are never made explicit.

incomplete

The causal story from architecture metrics to business outcomes (EBITDA, MAU, lifetime value) is asserted by mapping levels in a value tree. Deployment frequency and change fail rate are called leading indicators of domain KPIs without evidence of predictive strength, and confounders such as market, product, and people are not addressed.

misinformed

Treating lagging and leading indicators as a clean split is questionable. The KPI chapter labels some metrics as both lagging and leading. Because the same measure is classed both ways, the taxonomy gives limited guidance on which signals should drive decisions.

incomplete

The framing promises coverage of scalability and security alongside maintainability, testability, and deployability. The passages and chapter list emphasize delivery, modularity, and coupling or complexity, so scalability and security appear underdeveloped in comparison.

incomplete

The cost and human side of adopting metrics (tooling effort, team trust, and the risk of misuse for performance management) is acknowledged through themes like team ownership and engagement, and the aim of avoiding wasted effort. It still gets little concrete treatment of overhead or of how to prevent metrics being used against teams.

Before you apply it

Using it well

Where the method fits, who it’s for, and the honest case for and against — so you apply it where it works.

Is this book for you?

For you if

  • You are a software architect, tech lead, or engineering manager who must justify architectural decisions with evidence rather than intuition
  • You already run, or plan to run, CI/CD pipelines and want to extend them with architectural checks
  • You are struggling with maintainability, technical debt, or erosion and need ways to quantify them
  • You need to connect architecture work to business KPIs and outcomes
  • You want a practical toolbox of case studies rather than a single prescriptive method

Skip it if

  • You want a single universal set of metrics with fixed thresholds to apply as-is
  • You are looking for deep theory or academic research on software metrics (the book states it is about practice, not theory)
  • You are a junior developer with no influence over architecture, pipelines, or team practices
  • Your system is small, short-lived, or has no maintenance horizon, so measurement overhead isn't justified

Need first

  • Working knowledge of CI/CD and automated builds and tests, since most techniques rely on pipeline automation
  • Basic familiarity with architectural concepts such as modularity, coupling, cohesion, and cyclic dependencies
  • A clear understanding of your system's goals and your organization's KPIs, so you know why you are measuring
  • Some team buy-in and psychological safety, so that metrics are used for improvement rather than blame

When it applies — and when it doesn’t

Use it
  • A team with a CI/CD pipeline already in place wants to turn architectural rules (coupling limits, cyclic dependencies, layering) into automated fitness functions — The book's core thesis is that continuous, automated checks act as an executable architecture checklist, and a pipeline gives them somewhere to run.
  • A codebase is drifting toward a big ball of mud, and you need to measure and limit cyclic dependencies and structural erosion — Cycles and erosion are named as the main enemies of maintainability, and the book says they can be measured, limited, and reversed.
  • A company moving from monolith to microservices has no direction, and architects need to tie architecture to business KPIs — The KPI Value Tree and Goal-Question-Metric approach link org-level KPIs to team-level metrics, which guards against the accidental complexity of a distributed big ball of mud.
  • Adopting DORA metrics (throughput and stability) to start team-driven delivery improvement — The book favors pairing throughput with stability so improvement isn't lopsided, and it presents the metrics as a way to spark team-owned change.
  • Quantifying technical debt for a prioritization conversation with management, for instance with a Modularity Maturity Index — It gives an objective, trend-trackable measure that turns a vague debt concern into a concrete, discussable number.
Adapt it
  • Optimizing a single metric in isolation, such as raw code coverage or deployment frequency alone — The combination of metrics matters more than any one, so pair coupling with complexity and throughput with stability.
  • A team that is skeptical of measurement or has little say in choosing metrics — Team ownership and trust are prerequisites; use Goal-Question-Metric so people understand why they measure.
  • Measuring hard, poorly understood problems such as security or scalability where no standard metric exists — Goal-Question-Metric offers a way to discover metrics, but the results will be bespoke and need validating.
  • Judging a team or system by one absolute number taken at a single point in time — The book stresses that trends are often more revealing than absolute values.
Not here
  • Copying another organization's metric set or thresholds wholesale into your own context — The book says metrics are context-dependent and that imported metrics fail because contexts differ.
  • Setting a metric as a hard target tied to performance reviews or bonuses — Goodhart's Law is quoted directly: KPIs and metrics should be guides and enablers, not targets, or they stop being good measures.
  • A very early prototype or throwaway system with no long-term maintenance horizon — The effort of building continuous measurement infrastructure outweighs the benefit when maintainability and debt don't yet matter.

The honest case

Strongest case for

  • Architecture decisions are costly and hard to reverse, so replacing gut feeling with objective, repeatable measurement reduces risk and settles opinion-driven disputes.
  • Automating measurement through fitness functions in pipelines gives continuous feedback, catching erosion and cyclic dependencies early, when fixing them is cheapest.
  • Trends and combined metrics, such as throughput with stability or coupling with complexity, reveal direction and trade-offs that intuition misses.
  • Tying metrics to goals and KPIs through Goal-Question-Metric and KPI Value Trees makes architectural work legible to the business and gives teams a reason to care.
  • The book draws on ten practitioners' real case studies rather than theory, which shows the techniques have survived contact with real organizations and contexts.

Strongest objection

  • Metrics can be gamed, and Goodhart's Law shows that once a measure becomes a target it stops measuring the thing you care about, so the discipline risks producing optimized numbers rather than better architecture.
  • Many of the qualities that matter most, such as good boundaries, fit with business domain, and design clarity, are judgment-heavy and resist quantification, so measurable proxies may crowd out what is important but unmeasurable.
  • Because the book insists that metrics are context-dependent and offers a toolbox rather than a method, readers get little guidance on which metrics to pick, and the evidence that metrics improve outcomes is anecdotal.
  • Building and maintaining the measurement infrastructure and culture is itself costly, and it favors teams with mature pipelines and resources, while small teams may be better served by skilled design judgment and code review.
Source notes

The model's constructs are drawn from the source element(s); load-bearing constructs are corroborated across the shelf, emerging ones are flagged.

Ideas covered by the source notes

  • Continuous Automated Measurement
  • Architectural Modularity and Loose Coupling
  • Code Size and Complexity
  • Testability and Deployability
  • Goal and KPI Clarity
  • Team Ownership and Engagement

Movement V

Measure

Use available assessments to reflect on what you have learned.

In this part

A way to gauge yourself against the book's model, and the instruments it gives you.

  • — A self-check built from the book
  • — Instruments and what you'd measure next

Learning curriculum

After this book, you can…

The book's learning objectives, classified by Bloom's taxonomy and ordered so each builds on the ones before it.

01Foundational — know & understand
  1. explain
    After this book you can explain why objective, continuous measurement (rather than gut feeling) turns architecture from craft into an engineering discipline, and describe the roles of CI/CD and automation in supporting it.
    Check: Short written explanation or discussion that links CI/CD, automation of 'painful' activities, and early feedback to objective architectural measurement, with examples.
  2. define
    After this book you can define the core architectural qualities (maintainability, modularity, testability, deployability, technical debt, runtime quality) and relate each to the kinds of metrics that indicate it.
    Check: Matching and short-answer exercise: given a quality attribute, name candidate metrics and explain what each reveals and its limits.
02Working — apply
  1. calculate
    After this book you can calculate and interpret the four key DORA metrics (deployment frequency, lead time for changes, change failure rate, time to restore) and use them in combination to balance throughput with stability.
    Check: Given sample delivery data, compute the four metrics, interpret them together, and identify lopsided improvement.
  2. apply
    After this book you can apply practices that foster team ownership of metrics (visibility, team-driven discussion, acting on what is measured, starting small) rather than using metrics as targets or management weapons.
    Check: Design a rollout plan for a metric on a team, including how it is made visible, discussed, and acted on, and how misuse as a target is avoided.
  3. implement
    After this book you can write and automate fitness functions in a build pipeline so that architectural rules (e.g., dependency, complexity, and cycle constraints) are governed as an executable checklist.
    Check: Practical exercise: implement an automated architecture check in a CI pipeline that fails the build on a violation, and explain how it replaces a manual review.
03Advanced — analyze & judge
  1. assess
    After this book you can assess testability and deployability of a system, using a fitness function testing pyramid and independent deployment-unit criteria to decide what to improve.
    Check: Case-based analysis of a system's tests and deployment pipeline, producing a pyramid-based gap analysis and prioritized improvements.
  2. trace
    After this book you can elicit and document architectural goals, quality attribute requirements, and organizational KPIs, and trace how architecture decisions connect to business KPIs (e.g., MAU, EBITDA) as an organization scales.
    Check: Given a company scenario, build a goal-to-KPI-to-architecture map and identify metrics that enable (rather than target) the intended direction.
  3. analyze
    After this book you can measure modularity, coupling, and cyclic dependencies (e.g., between packages/namespaces) and use them to detect structural erosion and quantify technical debt, for example via a Modularity Maturity Index.
    Check: Analyze a dependency report or case study, identify cycles and violations, estimate the technical-debt impact, and propose a limit on cycles.
04Mastery — synthesize & create
  1. plan
    After this book you can plan how to embed measurement across the delivery lifecycle, including imperfect DevOps transitions (private builds, process metrics), without wasting effort.
    Check: Create a phased measurement roadmap for a team with a flawed delivery process, specifying which metrics are collected where, at what cost, and with what action.
  2. derive
    After this book you can use the Goal-Question-Metric approach to derive suitable metrics for hard or poorly understood problems.
    Check: Given a vague problem (e.g., 'security posture is unclear'), produce a GQM tree with goals, questions, and measurable metrics, and justify the choices.
  3. evaluate
    After this book you can evaluate code-level maintainability using size, cyclomatic complexity, indentation depth, cohesion, and coupling metrics, and combine them to avoid one-sided optimization.
    Check: Given metric output for a codebase, judge which files/methods are maintainability risks and justify prioritization using a combination of metrics.
  4. justify
    After this book you can judge which metrics fit a given context, interpreting trends rather than absolute values, and justify rejecting copied metrics from other organizations.
    Check: Critique a proposed metric set, using trend data and context to accept, adapt, or reject each metric with reasoning.
  5. design
    After this book you can design an integrated, metric-driven strategy that keeps a system from becoming a big ball of mud while it evolves (e.g., monolith to microservices), combining governance automation, team engagement, and business-aligned goals.
    Check: Capstone proposal for an evolving system, specifying goals, metrics, fitness functions, team practices, and review cadence, with the trade-offs explained.

How to measure it

Turning each idea into a measure

For each construct: how to operationalize it, the observable signals to look for, and how well it holds up.

Continuous Automated Measurement

Assessed by auditing pipelines and tooling for automated metric collection, presence of fitness functions with enforceable thresholds, cadence of computation, and visibility of results.

Observable signals
  • metric jobs running per commit or nightly
  • build-breaking thresholds
  • shared dashboards or wiki pages
  • trend charts over time
Scale

Best captured as a categorical maturity assessment plus archival counts of automated checks; not self-report based.

Holds up?

Risk of measuring presence of infrastructure rather than whether measurements are acted upon. · Pipeline configuration and tool logs give repeatable evidence.

Architectural Modularity and Loose Coupling

Quantified using coupling metrics (Average Component Dependency, propagation cost), cycle group size, relative cyclicity, structural debt index, and the Modularity Maturity Index derived from architecture review and tools.

Observable signals
  • size of largest cycle group
  • propagation cost percentage
  • package cycle counts
  • MMI modularity subscore
Scale

Continuous archival metrics aggregated to component, package, and system levels.

Holds up?

Some aspects (clear responsibilities, naming) require reviewer judgment and are not fully measurable. · Automated static analysis provides high repeatability; reviewer-based components need paired reviews for consistency.

Code Size and Complexity

Measured via static analysis metrics such as lines of code, number of statements, cyclomatic complexity, LCOM4, and maximum indentation, with soft thresholds.

Observable signals
  • percentage of code in large files/methods
  • average cyclomatic complexity
  • indentation debt
  • LCOM4 values > 1
Scale

Continuous archival values with recommended thresholds (e.g., <800 LoC per file, <15 modified cyclomatic complexity).

Holds up?

LCOM4 unreliable within complex class hierarchies; complexity is a proxy for readability. · High—deterministic from source code via tools.

Testability and Deployability

Assessed by presence and coverage of automated tests, test-driven design practices, deployment pipeline scope and determinism, and ease of establishing modules in known states for testing.

Observable signals
  • automated test coverage
  • pipeline pass/fail determinism
  • independently deployable units
  • TDD adoption
Scale

Mixed—coverage percentages (archival) plus qualitative assessment of pipeline design.

Holds up?

Coverage alone is an imperfect proxy for testability; deployability depends on correct pipeline scoping. · Coverage and pipeline metrics are repeatable; design assessments benefit from consistent criteria.

Goal and KPI Clarity

Assessed through the existence and quality of GQM trees, KPI value trees, EventStorming outputs, documented quality goals, and stakeholder agreement on definitions.

Observable signals
  • documented goal statements
  • consensus on KPI definitions
  • GQM tree traceability
  • KPI value tree ownership
Scale

Primarily perceptual and artifact-based; can be assessed via workshops and document review.

Holds up?

Different stakeholders may hold divergent KPI definitions until convergence is created. · Depends on facilitation quality; artifact review improves consistency.

Team Ownership and Engagement

Assessed via participation in metric discussions, initiative in raising and driving improvement requests, discipline in running private builds, and employee Net Promoter Score.

Observable signals
  • team-initiated improvement requests
  • cross-functional metric conversations
  • consistent private-build discipline
  • employee NPS
Scale

Mostly perceptual (surveys, NPS) plus behavioral observation.

Holds up?

Engagement may be influenced by broader organizational culture beyond metrics. · Perceptual measures require consistent survey instruments; behavioral signals are more stable.

Technical Debt and Structural Erosion

Quantified via the Modularity Maturity Index, structural debt index, relative cyclicity, architecture violation counts, and architecture review of target-versus-actual architecture.

Observable signals
  • MMI score
  • structural debt index
  • growth of cycle groups
  • increasing change effort per feature
Scale

Archival composite metrics; MMI on a 0-10 scale where <4 signals replacement candidate.

Holds up?

Some architecture debt requires reviewer judgment and cannot be fully counted automatically. · Tool-based metrics reliable; review-based judgments improved by paired assessments.

Software Delivery Performance

Computed from pipeline commit and deployment timestamps and change-failure tickets, aggregated over rolling time windows (e.g., 31 or 120 days).

Observable signals
  • deploys per day
  • elapsed time commit-to-deploy
  • percentage of deploys causing failures
  • median time to restore
Scale

Archival quantitative metrics reported as means/medians over defined periods; consistent scope required across all four.

Holds up?

Definitions of 'failure' and commit timestamp involve judgment; proxies can skew figures. · High when data sources and scope are consistent; manual ticketing introduces some skew.

Maintainability

Approximated by the Maintainability Level metric, MMI, coupling/complexity metrics, and observed trends in maintenance effort and trunk stability.

Observable signals
  • Maintainability Level percentage
  • MMI score
  • time spent restoring trunk stability
  • stable maintenance-cost corridor
Scale

Mixed—composite code metrics (archival) plus effort trends; ML expressed as a percentage.

Holds up?

Maintainability Level is experimental; must combine component and package structure health. · Tool-computed metrics are reproducible; effort-based signals depend on consistent tracking.

System Quality and Business Outcomes

Measured via operational metrics (latency, throughput, MTBF/MTTR, RPO/RTO, vulnerability counts) and business KPIs (monthly active users, revenue, EBITDA) tied through KPI value trees.

Observable signals
  • response time distributions
  • workload capacity per resource
  • availability percentage and MTTR
  • vulnerability findings
  • MAU/revenue trends
Scale

Mixed archival and operational metrics; some quality attributes measurable only in operation, others estimable via models.

Holds up?

Security relies on proxy measures; availability 'nines' can be misleadingly simplistic. · Operational metrics reliable when environments are consistent; models require calibration.

Self-assessment

Where would you like to improve?

This is a structured self-diagnostic built from the model — a mirror for reflection, not a validated psychometric scale. For validated measurement, see the instruments below.

1 = Strongly Disagree · 7 = Strongly Agree

Capabilitythe practices and skills you deploy
  • Our CI/CD pipeline automatically computes and reports our key architecture and quality metrics on every build or release.
  • A change in one part of our system often forces us to change several other parts because of tangled or cyclic dependencies.
  • Most of our source files and methods are short and simple enough that a new teammate can read and understand them quickly.
  • We can run reliable automated tests and release our system independently through a deployment pipeline without coordinating with other teams.
  • We regularly find and remove unnecessary complexity and architectural violations before they build up in our codebase.
Alignmentthe outcomes you steer toward
  • We deploy changes to production frequently, with short lead times, few failures, and fast recovery when something breaks.
  • It is getting harder and slower for new or changing team members to understand, change, and extend our system safely.
  • Our system consistently meets its targets for performance, availability, and security, and this shows up in user satisfaction.
Motivationthe states you cultivate in others
  • Our team regularly discusses our metrics and architectural decisions and takes the initiative to act on them without being asked.
Supportthe conditions you shape
  • Our architectural goals, quality requirements, and KPIs are written down and understood by everyone on the team.
0 of 10 answered

Proposed measures — starter instruments where no validated one was found

Continuous Automated Measurement Index (Proposed)

proposed · not validated

Rated for your team or hiring process — not a personal self-check.

  1. Delivery metrics such as build time, deployment frequency, and change failure rate are computed by the pipeline on every build or release without manual data collection.
  2. Architectural fitness functions are defined as executable checks and run automatically in the delivery pipeline, with failures visible to the team.
  3. Current metric values are available on a shared dashboard that is refreshed automatically at least daily and is accessible to all team members.

Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.

Architectural Modularity and Loose Coupling Index (Proposed)

proposed · not validated

Rated for your team or hiring process — not a personal self-check.

  1. System components have documented responsibilities and explicit interfaces, and each component can be built and tested without building the entire system.
  2. Dependency analysis tooling shows no cyclic dependencies between modules, and automated rules prevent new violations from being merged.
  3. A typical feature change is completed within one or two modules without requiring coordinated changes in other teams' components.

Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.

Code Size and Complexity Index (Proposed)

proposed · not validated

Rated for your team or hiring process — not a personal self-check.

  1. Static analysis reports cyclomatic complexity, method length, and file size for every change, and agreed thresholds are enforced by a pipeline quality gate.
  2. Files and methods exceeding the agreed complexity or size thresholds are tracked in a visible backlog with named owners and scheduled remediation.
  3. Trend data show that average and maximum method complexity and nesting depth are stable or declining across the past several releases.

Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.

Sources

  • Software Architecture Metrics — Christian Ciceri et al · Ten leading practitioners show how to select, implement, automate, and act on software architecture metrics so that objective measurement—not gut feeling—guides architectural decisions and business outcomes.

The cheat sheet

Everything, on one page

One key takeaway from each section, with links to read more.

Publication details

Consult the sources listed in this guide for further reading. Edition 1 · Updated 2026-10-03.

Explore related books and profiles in the library.

Take it with you

The main guide above is free to read. This purchase includes 36 additional tools and examples — 9 frameworks, 9 checklists, 9 case studies and 9 templates — plus the full sections and the ebook itself: an epub and a PDF covering all 10 sections. Every format, yours to keep — permanently, including every future update. When this guide is deepened, you get the new edition at no cost.

One payment. The main guide stays free to read.

Get one letter a month: the new guides worth your time, and where the books disagree.

One letter a month from Leading With Data, plus a short welcome. Your address is used for this letter only. Unsubscribe any time.