The 42 Principles · Principle XXVIII

Measure What Matters

Metrics, outcomes, vanity measures, incentives, human consequences, and measurement that supports judgment.

Foundational Truth

Every system has a limit.

The challenge is discovering which limit actually matters.

Performance problems rarely announce themselves clearly.

Users experience slow applications.

Administrators see high CPU.

Dashboards show increased latency.

Storage reports elevated I/O.

Network graphs display higher utilization.

These observations are symptoms.

They are not necessarily causes.

Treating symptoms without understanding the underlying constraint often moves the problem rather than solving it.

Measure the constraint, not the symptom.


The Wrong Metric

Imagine upgrading a network from one gigabit to one hundred gigabits.

The infrastructure becomes dramatically faster.

The application remains slow.

Why?

Because the bottleneck never existed inside the network.

Perhaps the database storage cannot deliver data quickly enough.

Perhaps the web server cannot process requests fast enough.

Perhaps every request waits for an external API.

Perhaps the application spends most of its time waiting on a poorly written SQL query.

The network was never the problem.

Improving the wrong component only makes the real bottleneck easier to reach.

The same mistake appears everywhere.

A server with one hundred twenty-eight processors cannot execute a query faster than the storage subsystem can return the required data.

Sixteen terabytes of memory cannot compensate for an inefficient execution plan.

A faster processor cannot eliminate unnecessary database round trips.

The slowest meaningful component determines the experience of the whole system.


Bottlenecks Move

One of the most interesting properties of optimization is that success changes the problem.

Eliminate one bottleneck...

Another appears.

Improve storage performance...

The database engine becomes the limit.

Optimize the database...

The application tier becomes the limit.

Improve the application...

The authentication provider becomes the limit.

Every successful optimization shifts attention to the next constraint.

That is progress.

It is also why performance engineering is never truly finished.


Measure Before You Change

Changing a system without measurement is guessing.

Guessing occasionally succeeds.

Engineering should not rely upon luck.

Before changing a system, understand:

  • What is slow?
  • When did it become slow?
  • Under what conditions?
  • Which resource reaches its limit first?
  • Is the limitation consistent?
  • Can it be reproduced?
  • What evidence supports the hypothesis?

The goal is not collecting more metrics.

The goal is collecting the right metrics.

Data without context becomes noise.

Measurements without understanding become expensive guesses.


The Cost of Assumptions

Assumptions often become the most expensive part of troubleshooting.

"We've always needed more memory."

"The network is probably overloaded."

"It has to be the firewall."

"It must be DNS."

Sometimes those assumptions prove correct.

More often, they delay discovery of the real issue.

Every incorrect assumption consumes time.

Every unnecessary upgrade consumes money.

Every misdiagnosed problem reduces confidence.

Good engineers remain curious longer than they remain certain.

Evidence should lead conclusions.

Not the other way around.


Systems Reveal the Truth

Good monitoring does not exist to produce attractive dashboards.

It exists to answer questions.

What changed?

What resource saturated first?

What happened immediately before the failure?

Can the behavior be reproduced?

Can we prove our hypothesis?

Metrics should tell a story.

Logs provide detail.

Tracing reveals relationships.

Together they transform observation into understanding.

Without context, numbers become decoration.


Closing Thought

The purpose of measurement is not to confirm what you already believe.

It is to reveal what the system is actually doing.

The best engineers are not those who collect the most data.

They are those who ask the best questions before changing anything.

Measure what matters. Optimize what limits. Ignore what merely distracts.

Every Optimization Creates a New Bottleneck

The first bottleneck is rarely the last.

Every successful optimization changes the system.

Remove one constraint...

Another becomes visible.

Increase network bandwidth...

Storage becomes the limitation.

Upgrade storage...

The database engine becomes the limitation.

Optimize the database...

Application processing becomes the limitation.

Improve the application...

Authentication becomes the limitation.

Eventually, users discover a new delay.

This is not failure.

This is progress.

Every improvement exposes the next opportunity.

The purpose of optimization is not to eliminate bottlenecks. It is to discover the next one.


Throughput Is a Chain

A system performs only as quickly as its slowest meaningful component.

Imagine water flowing through a series of pipes.

One section is twelve inches wide.

The next narrows to two inches.

No matter how large the first pipe becomes, the narrowest section still determines how much water reaches the destination.

Technology behaves the same way.

CPU.

Memory.

Storage.

Network.

Database.

Application.

External APIs.

Authentication.

Caching.

Every request passes through multiple stages.

Improving one stage beyond the capability of the next rarely changes the overall experience.

Performance is a chain.

The weakest link determines the result.


More Resources Are Not Always Better

One of the easiest mistakes in engineering is assuming additional hardware solves every performance problem.

It often doesn't.

Adding processors cannot fix poor algorithms.

Adding memory cannot eliminate inefficient database queries.

Faster storage cannot compensate for unnecessary network round trips.

Higher bandwidth cannot accelerate an application waiting on an external service.

The objective is never to build the biggest system.

The objective is to build the most balanced system.

Balanced systems use resources efficiently because every major component grows together.

Oversized components frequently sit idle while waiting for the actual constraint.

Unused capacity is not performance.

It is opportunity waiting for the right bottleneck.


Utilization Is Not the Same as Saturation

High utilization does not automatically indicate a problem.

A processor operating at eighty percent utilization may have plenty of capacity remaining.

A storage system at thirty percent utilization may already be saturated because of latency.

A network link at fifty percent utilization may still experience packet loss caused by congestion elsewhere.

Numbers rarely explain themselves.

Metrics require interpretation.

Understanding what a metric actually represents is often more valuable than the number itself.

Measure behavior, not just percentages.


Follow the Request

The fastest way to identify a bottleneck is to follow a single request through the system.

Where does it wait?

Where does latency increase?

Which component finishes first?

Which component consistently finishes last?

Tracing transforms isolated metrics into a complete story.

Instead of asking, "Which server is busy?"

You begin asking,

"Where is this request spending its time?"

Those are very different questions.

One measures infrastructure.

The other measures experience.

Users care about experience.

Engineers should too.


Measure Before and After

Optimization without measurement is opinion.

Every performance change should answer three questions.

What was the baseline?

What changed?

Did the change actually improve the outcome?

Without a baseline, improvement cannot be demonstrated.

Without validation, optimization becomes guesswork.

Many organizations celebrate changes that produce no measurable improvement because nobody established success criteria before implementation.

Engineering deserves better evidence than assumptions.


Performance Is About the User

The most important metric in any system is often the simplest.

Did the user's experience improve?

A dashboard may show lower CPU.

Network utilization may decrease.

Storage latency may improve.

If users still wait thirty seconds for the application to load, the problem remains.

Technology exists to serve people.

Performance should therefore be measured from their perspective first.

Everything else supports that objective.


Closing Thought

Great engineers optimize systems.

Exceptional engineers optimize outcomes.

Never mistake activity for progress.

Never mistake measurements for understanding.

Measure the constraint.

Understand the cause.

Improve the experience.

Then begin measuring again.

The most valuable metric is the one that changes your next decision.

You Improve What You Measure

Measurement changes behavior.

People naturally pay attention to whatever is being measured.

If an organization measures uptime...

Engineers improve reliability.

If leadership measures ticket closure speed...

Tickets close faster.

If developers are measured by lines of code...

They write more code.

Whether that code is better is another question.

Metrics influence priorities.

Priorities influence behavior.

Behavior determines outcomes.

That is why choosing the wrong metric can quietly move an entire organization in the wrong direction.

People optimize for whatever success looks like. Make sure success is measured correctly.


Vanity Metrics

Not every measurement creates understanding.

Some measurements merely create comfort.

Followers.

Downloads.

CPU utilization.

Lines of code.

Gigabits per second.

Storage capacity.

Memory usage.

Each may be useful.

None automatically proves success.

A web server may process one million requests.

If every request fails...

The metric is meaningless.

A network may support one hundred gigabits per second.

If customers still experience delays...

Bandwidth was never the problem.

Measure outcomes.

Not appearances.


The Difference Between Activity and Progress

Busy systems often look productive.

Busy people often appear effective.

Neither assumption is necessarily true.

An engineer can spend all day solving alerts generated by one poorly designed application.

The engineer worked hard.

The organization made little progress.

Another engineer may spend two hours fixing the root cause.

The alerts disappear forever.

One measured activity.

The other measured impact.

The distinction matters.

Effort is not the same as value.

Movement is not the same as progress.

Do not confuse motion with momentum.


The Human Side of Measurement

The same Principle applies outside technology.

Parents should not measure only grades.

They should also measure curiosity.

Managers should not measure only hours worked.

They should measure outcomes.

Teachers should not measure memorization alone.

They should measure understanding.

Doctors do not simply measure medication administered.

They measure patient recovery.

The numbers matter.

Choosing the right numbers matters even more.


Every System Tells a Story

Metrics rarely answer questions by themselves.

They provide clues.

Logs provide evidence.

Tracing reveals relationships.

Experience provides interpretation.

The story only emerges when those pieces are considered together.

A good engineer learns to ask,

"What is this system trying to tell me?"

rather than,

"What number looks unusual today?"

The first question uncovers causes.

The second often produces distractions.


Measure the Outcome

Organizations frequently measure the work performed.

Customers measure the experience received.

Those are not always the same thing.

The engineer may celebrate reducing CPU utilization.

The customer celebrates a page loading in two seconds instead of ten.

The business celebrates increased customer satisfaction.

Always remember who defines success.

Technology supports outcomes.

It is not the outcome itself.


Questions to Ask Yourself

  • What problem am I actually trying to solve?
  • Which metric best represents success?
  • Am I measuring causes or symptoms?
  • What behavior will this measurement encourage?
  • Could this metric be improved without improving the outcome?
  • If this number becomes perfect, will anyone actually benefit?
  • What would the customer choose to measure?

Closing Thought

Measurement is one of the most powerful tools in engineering.

Used wisely, it reveals truth.

Used carelessly, it creates illusions.

The purpose of measurement is not to collect numbers.

The purpose of measurement is to improve decisions.

Measure what changes outcomes, not what merely fills dashboards.

Founder's Commentary

The System Was Trying to Tell Me

One of the hardest lessons I ever learned as an engineer was that computers almost never lie.

People do.

Assumptions do.

Incomplete information does.

But systems are remarkably honest.

They simply answer the questions we ask of them.

The problem is that we often ask the wrong questions.

Early in my career, I was convinced I could identify performance problems by intuition.

The server felt slow.

CPU usage looked high.

The network graph appeared busy.

Memory utilization seemed excessive.

I had an explanation before I had evidence.

Sometimes I guessed correctly.

Many times I didn't.

Over the years I began noticing a pattern.

Every major outage seemed obvious...

After we found the real cause.

Looking backward, every clue had been there.

The storage latency.

The failed SQL execution plan.

The exhausted connection pool.

The saturated firewall session table.

The expired certificate.

The blocked replication queue.

The clues were always present.

I simply wasn't measuring the thing that actually mattered.

That realization changed the way I troubleshoot.

I stopped looking for confirmation of my first theory.

I started looking for evidence that would prove me wrong.

That sounds like a small change.

It wasn't.

Instead of asking,

"Why do I think the network is slow?"

I began asking,

"What evidence would prove the network isn't the problem?"

That question forced me to follow the data instead of my assumptions.

More often than not, the real bottleneck lived somewhere completely different.

I've seen organizations spend hundreds of thousands of dollars upgrading hardware that was never the limiting factor.

Faster processors.

More memory.

Larger storage arrays.

Higher bandwidth.

The users barely noticed.

Not because the upgrades failed.

Because the wrong thing had been improved.

The constraint never moved.

Eventually I realized something that applies far beyond technology.

People often optimize what they can easily measure instead of what actually determines success.

Businesses measure activity instead of outcomes.

Managers measure hours instead of results.

Developers measure code instead of maintainability.

Students measure grades instead of understanding.

Even in our personal lives, we sometimes mistake being busy for making progress.

The Principle is always the same.

The metric shapes the behavior.

Choose the wrong metric...

You improve the wrong thing.

Choose the right metric...

Everything begins moving in the right direction.

Today, when I inherit a new environment, I don't begin by looking for the biggest server or the busiest dashboard.

I begin by asking one simple question.

"What is this system trying to tell me?"

The answer is almost always there.

You simply have to be willing to listen.

The greatest breakthroughs in troubleshooting rarely come from finding new answers. They come from finally asking better questions.


Related Principles

Continue the idea.

These Principles share themes with Principle XXVIII.