Your team wrote more code this year and can reason about less of it.
211 million lines of code, and the faster year was the worse one.
- The track
- Leads a team
- The rep
- About thirty seconds
- Published
- September 2, 2026
The Exhibit
GitClear analyzed 211 million lines of code from 2020 through 2024. As AI assistance spread, the amount of code written per developer rose sharply, the rate of refactoring fell, and duplicated blocks rose roughly 8x against the 2020 baseline. More code, copied more, cleaned up less. The report.
It is an industry repo-mining report, not a peer-reviewed study, though the methodology and raw data are public. Read the exact multiple with that caveat. The direction is the part that should hold your attention, because it is the opposite of what a velocity chart shows.
The study
Comprehension Debt
Comprehension debt: the gap between what gets shipped and what the team can still reason about.
Duplicated code is comprehension debt with interest. The same rule now lives in four places, so a change means finding all four, and the one you miss is the incident. Your delivery metrics will look fine the whole time, because lines-shipped and pull-request-count both reward exactly the behavior that is hurting you. And a dedup linter only finds the copies it can see; it cannot tell you which of the four the next change actually has to touch. That judgment is the team's to hold, and it is precisely the thing getting thinner.
The idea
The Rep
One for your next review:
The same "is this user allowed to do X" check appears in three handlers, copied and lightly tweaked. A PR fixes a permission bug in one of them.
There is one question to wait for before the approval: what about the other two copies? The diff in front of you is correct, which is exactly why it is easy to wave through. But a permission fix that lands in one of three handlers leaves the codebase holding three opinions about who is allowed in, and two of them are now wrong. If nobody pulls the rule into one place, the approval did not close the bug, it forked it.
About thirty seconds
