Skip to content

The Quiet Split In Engineering Teams Nobody Is Talking About

#engineering-culture #ai-tools #software-workflows #technical-debt #team-dynamics

The split is already here

Walk into any engineering team right now and you will see it. It is not senior vs junior. It is not remote vs in office. It is not people who use AI vs people who refuse to.

It is people who use AI to understand, and people who use AI to avoid understanding.

That is the divide. It opened quietly over the last 18 months. It is already the most important fault line in software teams. Almost nobody is talking about it.

You can see it in code review. You can see it in incident response. You can see it in who stays late when production breaks, and who opens a new chat window.

This is not an argument against AI tools. This is an observation about what people are actually doing with them.

The debt that doesn't show up in SonarQube

Every line of code you accept without understanding is a small loan. The interest compounds quietly until you need to touch the thing again.

You can generate a working circuit breaker implementation without understanding what a half-open state is or why it exists. It will pass all your tests. It will work fine in staging. It will fail six weeks later under exactly the load pattern you did not know to test for. When it does, you will have nothing to reach for. You got the conclusion without the construction. The what without the why.

The why is the only part that matters.

Reading documentation builds a mental model through contact with the actual material: the tradeoffs the API design is managing, the edge cases in a footnote you almost skipped, the quiet disagreement in a 7 year old GitHub issue thread. The confusion you feel reading a bad RFC is where the learning happens. Friction is where understanding gets built.

AI cannot hold the architecture. It does not see the big picture across your codebase. I have watched an AI-generated caching layer get shipped clean, pass every test, and take down production three weeks later because nothing in the code or in the person who merged it understood what would happen when two requests raced to invalidate the same key.

Return on attention

We got the tool we asked for. We did not get the metric we needed.

Human attention is the scarce resource worth guarding most zealously. Every word you ask someone else to read has to be worth what it costs them to read it. This is Return on Attention, ROA.

AI produces more words than a task needs, for free. The cost of that surplus does not disappear. It just moves to whoever has to read it.

A PR that changes one line of gitignore, ten characters, came with a description running 1430 characters. Terrible ROA for whoever had to review it.

A bot commenting on a PR, another bot replying to it. Confident wrongness from one model becomes input the next one treats as settled fact.

A review comment that sends you elsewhere to get context has negative value, no matter how thorough it reads.

Here is the rule: when posting a review comment, it is attributed to you. The model will not have to follow up. The model will not get pinged at 2am when the thing breaks. You will. So before you hit submit: would you have said this, at this length, in this tone? If the answer is no, edit it.

The delete key is the strictest reviewer

One developer spent an afternoon deleting 200 lines of code she had generated six weeks earlier. She did not go in planning an education. She went in because every time she opened that file she got this low level anxiety, like walking into a room you cleaned by shoving everything into the closet. Technically tidy. Spiritually wrong.

Before she deleted anything, she started asking herself: if I remove this, what do I think breaks?

Some of her predictions were correct. Some were wrong in interesting ways. There was a function she was absolutely certain was doing nothing useful. When she deleted it, a very specific edge case in a flow she had half forgotten about quietly fell apart. That function taught her something she did not know she did not know.

200 lines gone. Some was redundant. Some she rewrote from scratch, not because the original was wrong, but because rewriting it meant she finally owned it. Some she put back exactly as it was, because staring at the empty space made her realize it was doing something she actually needed.

You cannot half delete something. You either remove it or you don't. Making that call requires actually understanding what it does. Reading lets you skim. Deletion forces a verdict.

Predict then diff

There is one working discipline people have actually found that cuts through this. It is stupidly simple. Almost nobody does it voluntarily.

Before you even look at what the AI generated, write down what you expect it to look like. Then you compare your prediction against the actual output. The gap between the two is the lesson.

It is uncomfortable. It feels like being wrong on a pop quiz. That is the point.

On day five of trying this, one developer was reviewing networking code. She predicted the error handling would use a simple do-catch with a generic error message. The actual output silently swallowed a specific network timeout case and returned a cached value instead, with zero comment explaining why.

If she had just read it top to bottom without predicting first, she would have accepted it. It compiled. It looked plausible. It looked exactly like the kind of smart caching fallback pattern she had seen a hundred times before. But because she had already committed to a prediction that did not include silent fallback behavior, the gap actually stopped her.

The catch did not come from being smarter than the AI. It came from having a committed hypothesis on record that the actual output failed to match.

The keys under the table

Alex was the principal architect at a medical technology company when they rolled out a seven figure AI operations monitoring dashboard. The vendor promised full stack coverage. No blind spots.

Alex had seen this pattern before at his last job. The dashboard would set a confidence threshold. Anything below 70% would be filtered out. Not absent. Hidden.

He said nothing. He ran the training sessions. He got 4.7 out of 5 feedback. Management loved him.

While everyone was watching the pretty dashboard, Alex submitted an infrastructure change request for a training environment expansion. It auto approved. That night he set up a raw log mirror. No AI. No confidence filtering. No pretty UI. Just the actual numbers. He told no one.

Three weeks later the AI dashboard pipeline clogged. It kept displaying a six hour old snapshot. No alert fired. The entire ops team was staring at a screen that looked perfectly fine while production was falling over.

Alex waited two seconds. Then he opened his laptop. The backup dashboard was the only thing that worked.

This is not an anti AI story. This is a story about trust. You can use the tool. You can ship the tool. You can present the tool to the board. But you always keep the raw logs. You always keep the keys under the table.

The agent loop bill

Everyone is arguing about token optimization. Everyone is missing the actual cost driver.

For AI agents, cost looks like this:

AgentLoopCost ~= Tasks x Attempts x AgentTurns x ContextSize x ModelPrice x Parallelism

Trimming 5000 tokens from a prompt can feel responsible and still miss the thing that burned the budget. The model is probabilistic. The environment is stateful. The harness encourages tool use. The task may not terminate cleanly. The agent can read too much, test too much, call another agent, or carry forward stale context because it thinks that is safer.

TermWhat makes it grow
TasksMore work gets routed through AI
AttemptsFailed runs, retries, re-prompts, bad branches
AgentTurnsThe agent searches, edits, tests, self-corrects
ContextSizeIDEs and agents read more before writing
ModelPriceFrontier models, high effort modes
ParallelismSubagents, background agents, multiple runs

Context cleanup reduces ContextSize. That can matter. It still does almost nothing when Attempts, AgentTurns, and Parallelism are the terms exploding.

The plum and the peach

Lena built an AI evaluation platform for her consulting firm. She pitched it to the board. She got the budget. She pulled all nighters building it.

Twelve months later she ran the numbers.

LineQuarterly RevenueQuarterly Cost
AI Evaluation Platform$22K$200K
Standard Technical DD$310K$28K
Strategic Consulting$460K$32K
Delivery Methodology$0$9K

The methodology system had no UI. No demo. No sales pitch. Nobody on the board even knew it existed. It had been limping along on $9K a quarter, maintained by a semi retired consultant two half days a week. And it was carrying the entire $770K a quarter delivery business.

Lena recommended shutting down her own AI platform. She redirected the entire budget into the methodology system. She embedded the AI models into the delivery workflow where nobody would ever see them.

Ninety days later renewal rates ticked up 1.2 points. Nobody knew where it came from.

This is the quiet lesson almost nobody has learned yet. The best AI will never be a product you sell. It will be an invisible thing embedded inside the work people were already doing. It will never get a press release. It will never have a launch party. It will just work.

What comes next

This is not a moral argument. Nobody gets a medal for typing code by hand. Nobody gets extra points for suffering through bad documentation.

But there is a line.

The line is not whether you use AI. The line is whether you are using it to understand or to avoid understanding.

The developers who compound over time aren't moving fastest. They are the ones who still read. The actual changelog. The actual query planning documentation. The actual source when something doesn't make sense. They are building a compounding mental model that prompting cannot replicate.

The ones who stopped reading are building something too. API surface knowledge and output patterns, without structural understanding underneath. It doesn't show until the system needs to change.

When you skip the reading, you skip the thinking. And you won't know you skipped it until you are in production with nothing to reach for.


All observations and stories in this piece are synthesized from the public developer accounts linked in the front matter. None of these are hypothetical. Every one of these things already happened, at real teams, in the last twelve months.

If you have seen this split on your own team, you are not imagining it. It is not just you.