CodeNSM
codensm / blog

Field notes on code, debt and judgment in the LLM era.

Essays from the team behind CodeNSM — first a long, honest walk through the problems of the AI coding era, then the methodology we built in response: what production telemetry reveals about codebases, why the old debt instruments stopped working, and how we run pre-registered science on the results.

The Problem — a 30-part walk through the AI coding era

Written to be read in order. Start at Part 1 →

1 The Problem · Part 1 Nobody wrote this code Every line of code used to ship with an invisible warranty: a human being once understood it. Sometime in the last two years that warranty quietly expired, and almost nobody read … 7 min 2 The Problem · Part 2 The prompt lottery Same developer. Same ticket. Two different prompts. Radically different code — one elegant, one a slow-motion liability — and the diff looks equally green either way. Code quality… 7 min 3 The Problem · Part 3 Graduating without scars There's a whole cohort of engineers entering the industry right now who have never once debugged their own 2am disaster — because they've never had to. The pain is gone. Here's th… 7 min 4 The Problem · Part 4 The review theater Code review was engineered for a world where humans typed the code, at human speed. That world ended. The ritual survived. What's running in your PR queue right now isn't quality … 7 min 5 The Problem · Part 5 Copy-paste velocity Your team is shipping more code than ever, and the charts have never looked better. One problem: shipping faster and progressing faster are different things, and the gap between t… 7 min 6 The Problem · Part 6 The confidence machine Humans leak uncertainty everywhere — hedging comments, TODO flags, that one Slack message that says 'not sure about this bit.' Models leak nothing. Every line arrives with the sam… 7 min 7 The Problem · Part 7 Ten thousand lines a day Your codebase is growing faster than any group of humans can read, let alone understand. That gap between what exists and what anyone comprehends has a name, it compounds like deb… 7 min 8 The Problem · Part 8 The missing mentor The most valuable code review comments were never about the code in the diff. They were twenty years of scar tissue, transmitted one 'hmm, are you sure about this name?' at a time… 7 min 9 The Problem · Part 9 Tests that test nothing Ask an AI to write tests for a function and it will — beautiful ones, lots of them, green across the board. There's just one small catch: they assert that the code does whatever t… 7 min 10 The Problem · Part 10 The abstraction collapse Developers have stopped reading below the function signature — and honestly, who can blame them? But every abstraction era before this one kept a few people stationed at the botto… 8 min 11 The Problem · Part 11 You own a multi-million-dollar asset you have never met You would never run a warehouse you've never walked through. Yet the core asset of a software company — the codebase — is unwalkable by its own owner, and everyone has quietly agr… 7 min 12 The Problem · Part 12 You have a dashboard for everything except the thing you sell Count your dashboards: servers, funnels, revenue, ad spend, uptime. Now find the one that shows what the code itself did today. There isn't one. The entire observability industry … 7 min 13 The Problem · Part 13 The employees who haven't shown up in three years (and are still getting paid) Dead code doesn't cost CPU — dormant functions are nearly free to run, because they don't run. What they cost is comprehension: every engineer who reads the file must still step a… 7 min 14 The Problem · Part 14 Ten functions are carrying your entire company. Name them. Production traffic doesn't spread politely across your codebase — it stampedes through a handful of functions while thousands of others watch. Every team has a hot path. Almost no… 7 min 15 The Problem · Part 15 Nobody made it slow. It's slow. Your app used to feel fast. Now it doesn't. You can git-blame a bug to a line and a lunch break — but slowness has no author, no commit, and no witness. Latency doesn't break; it … 7 min 16 The Problem · Part 16 “Oh, that one always throws” — the five scariest words in software Every mature system runs a background hum of failures that everyone has stopped hearing. Sociologist Diane Vaughan studied how NASA normalized O-ring damage until Challenger. Your… 7 min 17 The Problem · Part 17 The questions your CTO can't answer (and why that's not a firing offense) You have a great CTO. This post is not about replacing them. It's about the honest unknowns even an excellent technical leader carries — which code is secretly load-bearing, what … 7 min 18 The Problem · Part 18 The scariest code in your company runs four times a year Everyone worries about the bus factor as a people problem — what if Dana leaves? But the sharpest version is a code problem: the refund handler, the auth edge case, the year-end j… 7 min 19 The Problem · Part 19 Your codebase is 80% glue. Do you know where the gold is? A gold mine is almost entirely rock — and nobody minds, because the mine knows exactly where its seam runs. Your codebase is mostly vanilla integration glue wrapped around a thin … 7 min 20 The Problem · Part 20 How to buy a software company: check every invoice, skim the software Acquirers diligence the financials to the decimal — forensic accountants, quality-of-earnings reports, months of scrutiny. The codebase, the machine that GENERATES those financial… 8 min 21 The Problem · Part 21 Debt without a borrower: the 2 a.m. loan nobody signed Ward Cunningham's debt metaphor had a hidden assumption so obvious nobody wrote it down: somebody chose to borrow. In 2026, code debt is taken out by a model at 2 a.m. with nobody… 7 min 22 The Problem · Part 22 Interest compounds in prod: why your ugliest code might be free Two identical horrible functions. One has cost you nothing in three years. The other bills you daily and is quietly writing your next incident report. The difference isn't in the … 7 min 23 The Problem · Part 23 The firefighting ratio: the most important number your team has never measured What share of your engineering commits chase fragile code, and what share builds new value? Almost no team can answer. Which is strange, because it might be the single most expens… 7 min 24 The Problem · Part 24 Rewrite roulette: 'let's just rebuild it' is debt denial with a project plan At some point in every debt-soaked codebase's life, someone says the five most expensive words in software: let's just rewrite it. Brooks warned you in 1975. Naur explained why in… 7 min 25 The Problem · Part 25 The non-technical CEO's survival guide to an engineering org you can't audit You can read a P&L, interrogate a funnel, and smell a bad sales forecast from across the room. And the asset everything depends on reports to you through one channel: what your en… 7 min 26 The Problem · Part 26 Hiring a tech lead vs. renting judgment You're not paying a great tech lead for their typing. You're paying for two hundred daily decisions about where to look — what to review deeply, what to wave through, which quiet … 7 min 27 The Problem · Part 27 What good looks like: five observable properties of a healthy codebase Twenty-six parts of this series have been about the disease. This one is about health — not as a vibe or an architecture diagram, but as five properties you can literally observe.… 7 min 28 The Problem · Part 28 The checklist: are you flying blind? Pilots learned the hard way that 'it feels fine' is not flight data — in clouds, your inner ear confidently lies to you. Twelve questions, four themes, one honest score. Find out … 6 min 29 The Problem · Part 29 Measuring what the code does (not what it says) Static analysis reads your code like an essay. Repo mining reads your commits like a diary. Both are real instruments — and both go dark at the exact boundary where this series' p… 7 min 30 The Problem · Part 30 The case for code telemetry: what thirty parts add up to The AI era broke three controls at once — authorship, review, and apprenticeship — and no amount of process nostalgia brings them back. This closing part assembles the argument: v… 8 min

The Standup — thirty parts on the one meeting still run from memory

The Standup · Part 1

The brief nobody wrote: how standup prep turns into ritual

Someone invented your standup on purpose, to solve a real problem. Eighteen months later it's a recitation nobody remembers agreeing to. A grounded-theory study that sat through 79 real standups found the exact moment the meeting stops being a meeting.

2026-06-11·7 min read
The Standup · Part 2

Never ask what the system already knows

"Which services are hot right now?" is a question with an answer sitting in a dashboard nobody opened. Every time a standup asks it out loud, it's charging the team a tax for information the room already owns. There's a fifty-year-old consulting principle for designing questions that don't do that.

2026-06-13·6 min read
The Standup · Part 3

"I understand the retry logic": the illusion that ends careers quietly

Ask someone to explain how a zipper works and watch their confidence collapse mid-sentence. It's the same mechanism sitting under the most dangerous four words in any standup: "I understand this." A 2002 psychology paper mapped exactly how the illusion forms, and it has nothing to do with how the sentence sounds.

2026-06-16·7 min read
The Standup · Part 4

A reference class of one: why "by Thursday" is a genre of fiction

Every estimate in your standup is a work of fiction written in the optimistic-realist genre, and the person writing it has no idea they're doing it. Kahneman and Tversky named the bias in 1979. A Danish economist turned it into a forecasting method used on billion-dollar tunnels. Neither of them worked in software, and both of them explain your sprint.

2026-06-18·7 min read
The Standup · Part 5

The thing nobody said out loud

Put five people in a room, give each of them one piece of unique information and a pile of shared information, and watch the group talk almost entirely about the pile everyone already had. This isn't a personality flaw. It's a forty-year-old, heavily replicated finding about what groups are structurally bad at — and it happens in your standup on a schedule.

2026-06-20·7 min read
The Standup · Part 6

Your bus factor has a name, and it's measurable, not folklore

Every team jokes about the bus factor and no team measures it. There's an actual algorithm for computing it from a commit graph, and a separate Microsoft Research study showing that low-ownership code ships measurably more defects. Put them together and "I'm the only one who really knows this" stops being a joke someone tells in standup and starts being a number.

2026-06-23·7 min read
The Standup · Part 7

The question telemetry cannot answer

Your monitoring stack can tell you charge() failed nine times last hour. It cannot tell you what that actually cost you — in refunds, in trust, in the one customer who never came back. There's a fifty-year-old philosophical argument for why no dashboard will ever answer that question, and it doubles as the design spec for the only question worth asking a human out loud.

2026-06-25·7 min read
The Standup · Part 8

Context has a half-life, and a confident stale answer is worse than none

The fact you learned about a system six months ago is not the same fact today, even if nobody told you it changed. Memory research mapped exactly how fast this happens in a single brain in 1885. Organizational research mapped the same decay across whole companies more than a century later. Neither of them thinks a stale, confident answer is better than admitting you don't know.

2026-06-27·7 min read
The Standup · Part 9

The agenda is the call graph, not the seating chart

Your standup goes around the room in the order people happen to sit, or the order they happen to report to someone. Your codebase doesn't care about either. A 1968 essay everyone's heard of and a 2008 study almost nobody has explain why running the meeting in dependency order — not org-chart order — is the difference between coordination and a very expensive round of show and tell.

2026-06-30·7 min read
The Standup · Part 10

The premortem that fits in a standup

Imagining a project has already failed, in detail, before it starts, sounds morbid and turns out to work — 30% better, in the original lab result. Gary Klein compressed it into a boardroom exercise. It fits in a standup in one sentence. This closes the arc: everything before the room, ending in the one question that turns dread into a claim you can actually check.

2026-07-02·7 min read
The Standup · Part 11

A standup is a prediction market (that nobody is running)

Every 'I'll have it done by Thursday' is a forecast about a world that doesn't exist yet. Wall Street built an entire industry around scoring forecasts like that. Your engineering org built a calendar invite.

2026-06-11·8 min read
The Standup · Part 12

Keep the sentence: why paraphrase is where accountability goes to die

Somebody says something in a standup. By the time it matters, what gets remembered is a tidy summary — and the summary is never neutral. It is quietly, invisibly, edited by whoever wrote it down.

2026-06-12·8 min read
The Standup · Part 13

Sixty-one percent of this meeting cannot be checked

Not every sentence in a standup is a lie. Most of them are worse than a lie: they're not even wrong, because there's nothing in them a fact could disagree with. That's a real number, and it might be the most useful one your team has never seen.

2026-06-15·7 min read
The Standup · Part 14

Watermelon status: green outside, red inside

Every project manager has a name for the status report that says 'on track' right up until the week it explodes. The report wasn't wrong by accident. Somewhere between the code and the calendar invite, somebody made a very human, very predictable decision not to say the quiet part.

2026-06-16·8 min read
The Standup · Part 15

The blocker that was never a blocker

'Still blocked on the staging DB' is the most restful sentence in software. It sounds like an update. It has been the same sentence for eleven days. Nobody is timing it, which is exactly why it can keep being the same sentence.

2026-06-18·8 min read
The Standup · Part 16

Talking time is not signal

There's a famous study that supposedly proves quiet people are secretly the smart ones. It doesn't say that. It says something narrower, stranger, and much more useful — and almost nobody who cites it has read past the abstract.

2026-06-19·8 min read
The Standup · Part 17

You think they heard you. They didn't.

You said the sentence. It made perfect sense in your head, which is exactly the problem: your head is the only place it fully existed. Two well-documented biases explain why you'll walk out of every standup overestimating how much you actually communicated.

2026-06-22·8 min read
The Standup · Part 18

'Yeah, got it' is not evidence of anything

Two people nod, say 'got it,' and move on, both privately picturing a different version of what was just agreed. This isn't a rare failure of attention. It is, by design, the cheapest way two minds can end a conversation — and cheap is not the same as true.

2026-06-23·7 min read
The Standup · Part 19

Safe to be wrong

A falsifiable claim is a small act of courage: it hands the room a way to prove you wrong. Teams that punish being wrong don't get fewer mistakes. They get better hedging — which means every idea in this series depends on a precondition almost nobody names out loud.

2026-06-25·8 min read
The Standup · Part 20

The decision nobody recorded

'We're dropping the Redis cache' takes four seconds to say in a standup and can take four months to re-litigate, in full, by people who weren't in the room the first time. A decision without a record isn't a decision. It's a rumor with a deadline.

2026-06-26·8 min read
The Standup · Part 21

Calibration, not confidence: the only score that has ever mattered

Two forecasters, same city. One says '70% chance of rain' and is right about 70% of the time. The other says 'DEFINITELY' and is right about half. You'd trust the first one with your wedding. You run your engineering org on the second one, every single day.

2026-06-25·8 min read
The Standup · Part 22

Two of two is not one hundred percent

A round number is the most seductive shape a statistic can take, and small samples hand them out for free. Why '100% calibrated' from two resolved claims isn't a compliment — it's a warning label nobody printed, and Laplace worked out the fix two hundred years ago.

2026-06-26·7 min read
The Standup · Part 23

You always knew it would break (you just never said so out loud)

The outage retro has a ritual: someone says 'honestly, I had a bad feeling about that module for weeks.' Fischhoff proved, in 1975, that this is almost never a memory. It's a manufacture — and an unrecorded prediction is worth exactly nothing at the retro.

2026-06-28·7 min read
The Standup · Part 24

Did the commit agree? What 'done' means when a human and a repository disagree

Thursday standup: 'yep, that fix is done.' Everyone nods. Nobody opens the repository, because checking would feel like an accusation. What actually made that sentence true — the code, or the sentence?

2026-06-29·7 min read
The Standup · Part 25

Production is the referee: a claim about 'why' isn't settled by who's most senior

Someone senior says, with total conviction, 'the flakiness is the retry logic, not the queue.' Nobody argues, because arguing with the most senior person in the room about a technical call is a bad career move. Ronny Kohavi has a name for this, and a decade of data on how often it's wrong.

2026-07-01·7 min read
The Standup · Part 26

Unresolvable is a finding: why 'we don't know yet' has to stay on the scoreboard

A claim nobody checked isn't 'probably fine' and it isn't 'probably wrong' either. Medicine had to learn this the hard way in 1995. A standup has the exact same failure mode, and folding it away is a worse kind of dishonest than being wrong.

2026-07-02·7 min read
The Standup · Part 27

The day velocity became a target (and stopped being a measure)

Goodhart wrote about UK monetary policy in 1975. Campbell wrote about social indicators in 1979, from an entirely different tradition. Strathern gave the whole thing its famous one-liner in 1997 — about auditing universities. Almost everyone quoting 'Goodhart's Law' is actually quoting Strathern.

2026-07-04·8 min read
The Standup · Part 28

Blameless, and still scored: where the line actually has to sit

A system that checks what people said against what happened, per person, is one short step from a surveillance system that scores humans. This post doesn't dodge that. It argues, specifically, why it isn't the same thing — and states the bright lines that would make it become one.

2026-07-05·8 min read
The Standup · Part 29

The quiet engineer was right

Four sentences in a half-hour standup, right more often than the person who dominated the room. Research on trait dominance and 'the babble hypothesis' explains why nobody noticed — the room was never measuring what it thought it was measuring.

2026-07-07·7 min read
The Standup · Part 30

What the sprint actually bought

Seventeen tickets closed, a clean burndown, confetti in Slack. Ask the room whether any of it landed on the code the business says it depends on, and watch the silence. The closing part of this arc points thirty parts of argument at the sprint itself.

2026-07-09·8 min read