惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News | PayPal Newsroom
P
Proofpoint News Feed
Cyberwarzone
Cyberwarzone
C
Cisco Blogs
SecWiki News
SecWiki News
Know Your Adversary
Know Your Adversary
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
NISL@THU
NISL@THU
WordPress大学
WordPress大学
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Threat Research - Cisco Blogs
AI
AI
Simon Willison's Weblog
Simon Willison's Weblog
Security Archives - TechRepublic
Security Archives - TechRepublic
有赞技术团队
有赞技术团队
L
LINUX DO - 热门话题
Hacker News: Ask HN
Hacker News: Ask HN
V
V2EX
G
GRAHAM CLULEY
TaoSecurity Blog
TaoSecurity Blog
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Fortinet All Blogs
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
Latest news
Latest news
The Hacker News
The Hacker News
aimingoo的专栏
aimingoo的专栏
T
Troy Hunt's Blog
S
Schneier on Security
I
Intezer
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threatpost
爱范儿
爱范儿
The Register - Security
The Register - Security
S
SegmentFault 最新的问题
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
美团技术团队
B
Blog RSS Feed

Yusuf Aytas

When Code Is Cheap, Does Quality Still Matter? Why Crouching Tiger, Hidden Dragon Is a Masterpiece Why We Ignore Advice The Mirror Is Part of the Machine When Too Many Maps Overlap on One Person The Work Runs on Different Maps Your Work Introduces You Trial By Fire The Dude Why Headcount Math Lies Capacity Is the Roadmap The Roadmap Is Not the System Torres del Paine W Trek Escaping Status Theater Incentives Drive Everything Scaling Culture Without Dilution What Good Looks Like Why Airport Security Feels Random Why Politics Appear How to Work with Me The Janus Protocol Multi-Horizon Delivery Framework What Good Execution Looks Like Managing Your Manager Why Kingdom of Heaven’s Director’s Cut Is Better AI Broke Interviews Most of What We Call Progress Managers Have Been Vibe Coding All Along Stop Wasting Brainpower Why Over-Engineering Happens Prisoner's Dilemma Climbing No More The Weekly Win Mevlana Candy Brewing Turkish Tea Onboarding Your Engineering Manager Technical Deep Dives Yapay Zekâ Çağında Bilgisayar Mühendisliği Building Remote Teams From Idea to Launch in 2 Weeks Reflecting on Software Engineering Handbook Representing the Business New Manager Survival Guide Take Self Reviews Seriously Chasing Real Respect The Invisible Difference Learning the Johari Window Management is a Lonely Place Simple Task Management AI Balance in Work PIP Manager Insights Engineering Manager Interview Preparation Work-Life Balance as a Manager Bridging the Management Disconnect Tech Hiring Bubble Bursts Traits for EMs Simple Acts of Recognition Matter The Question I Ask Every New Report The Reality of an Employer's Market Bridging Ideals and Reality Hiring Red Flags Why The Godfather Is So Damn Good Subteam Tenets No Fluff Please Losing a Top Performer Balancing Act of Reliability Building Trust in Engineering Teams Ideal Number of Direct Reports Overriding a People Leader’s Decision From Misperception to Promotion Perception vs Perspective Setting Goals From Engineer to Manager Getting Delegation Right Interviewing Your Future Boss Celebrating Our Book in Iceland Operational Skills Needed On Writing Software Engineering Handbook Charlie Munger Quotes Working with Dependencies From Las Vegas to Canyons Navigating Layoffs Handling Competitive Dynamics A Weekend Getaway to Malta Engineering Health Essentials Should Dev Managers Code? Confronting the Life on Pause Winning Eleven Kindness is A Choice Bireysel Katılımcılar ve Yöneticiler Leading from Where You Are The Subtle Art of Listening Coding in Leadership The Power of Consistency The Making of a Leader The Path to Leadership Embracing TikTok Talent Sourcing Journey Leading Self Managing Teams Cracking Coding Bottlenecks
Why Metrics Don’t Equal Quality
Yusuf Aytas · 2023-10-03 · via Yusuf Aytas

Published · 4 min read

In 1902, Hanoi was drowning in rats. The government was getting nervous about plague. Hence, the city put a bounty per rat tail. Suddenly, the system had a scoreboard, something you could count, stack, report, and feel good about. And it worked. Hunters brought tails in, the numbers soared, and the program looked like a win. Then reality showed up. Rats were still everywhere, and officials started finding rats alive, without tails. Because once you pay for tails, you create a tail economy. People stop solving the problem and start manufacturing the evidence. Software teams do the same thing, just with prettier dashboards.

We often pursue quality through tangible metrics like code coverage. Here's the problem. If you reward a number like code coverage, you will get more code coverage. You will also get tests that assert nothing meaningful, brittle mocks, and a false sense of safety. The metric turns green, incidents still happen, and everyone is confused because the quality score says you are winning.

The emphasis on numbers might lead us astray from the essence of what true quality signifies. We often forget that metrics are indicators not guarantees, and treating them as the final measure of quality can create a dangerous illusion of progress. Every project encounters its own set of hurdles. Be it tight deadlines, evolving requirements, or sneaky bugs. Amid these challenges, upholding your high-quality bar is really hard.

Metrics are useful indicators. They are not guarantees. Real quality shows up in judgment, collaboration, and context, especially when deadlines, shifting requirements, and production weirdness start applying pressure.

What Metrics Don’t Capture

Each iteration in a software project is another round of “tail counting.” You push a change, you watch the dashboards, you check the numbers you chose to represent quality: coverage, bugs, latency, error rate, story points, whatever your org worships this quarter. And just like Hanoi, the moment those numbers become targets, people learn to feed the metric.

Not because they are evil. Because incentives work.

Teams will write tests that technically execute lines but prove nothing. They will mock away the hard parts. They will split work to make throughput look better. They will avoid risky refactors because it might dent short-term stability metrics. The numbers improve, the system does not.

In engineering, the most important variables are usually the ones you cannot reduce to a dashboard. The context behind a change. The judgment of whether a test is meaningful. The intuition that a “green” build is still unsafe. The ability to anticipate how real users will break your assumptions. The discipline to say “this feels wrong” even when the graphs look perfect.

The variables you already measure do contribute. They are useful sensors. But they are not the craft. The craft is noticing what the metric is failing to see, and refusing to let a tail count masquerade as quality.

What matters most is usually off-dashboard. Developer intuition. Context on real user needs. Forward-thinking about stability. A team’s ability to learn from past iterations and mistakes. These shape the final product far more than a single percentage ever could.

Beyond Numbers: Quality in Software EngineeringBeyond Numbers: Quality in Software Engineering

Looking Beyond the Numbers

When a team is encouraged to look beyond numerical targets, the conversation changes. They stop asking, “How do we get this number up,” and start asking, “What will fail in the real world.”

They look at impact instead of output. They care about whether users can complete the job without friction. Whether the system behaves predictably under load. Whether the codebase can be changed without fear. They still track metrics, but the metrics serve the work, not the other way around.

For instance, you can have bug-free code and still ship a product users hate. You can hit 100% code coverage and still miss the failure mode that matters. The goal is not a perfect dashboard. The goal is software that survives contact with reality.

In practice, this means asking better questions. Does this change make the user’s job easier. Does the system degrade gracefully. Can the team maintain it without heroics.

All in All

Quality is not a number you achieve once. It is behavior your system keeps under pressure.

When you evaluate software on real properties like usability, resilience, maintainability, and clarity, you end up with something that works for humans, not dashboards. Metrics support that understanding, but they cannot replace it.

So, the next time you find yourself chasing a metric, pause. Ask what you are really trying to improve. Are you reducing rats, or just collecting tails?