Tag: trends

  • The AI Code Generation Technical Debt Crisis Nobody Sees Coming

    photo of minified JavaScript code

    slams coffee mug on desk

    Oh PERFECT. You know what’s going to be absolutely chef’s kiss hilarious in about 18 months? When we’re all drowning in an ocean of plausible-looking garbage code that nobody understands because it was generated by someone who thought “well the AI wrote it so it must be good!”

    You know what I saw yesterday? YESTERDAY? A simple change in dependencies (e.g., removing one) turned into a 1000+ line refactor of tests, probably because the linter complained about syntax and someone asked Claude to “fix the style problem.”

    Why are AI PRs so big???

    And here’s the thing that makes me want to scream into the void: the Dunning-Kruger effect is about to go NUCLEAR. The people who are most blown away by AI code are the exact same people who can’t evaluate whether it’s actually any good. They don’t know what “good” even looks like! They just know it compiles and maybe passes the happy path test they wrote. This isn’t a judgment… it’s self-awareness: I’ve noticed myself amazed at Claude’s ability to write languages that I’m not great in, and I find myself in awe at how well it works. Ok, except if it’s PowerShell. I don’t know PowerShell all that well and I can tell that most LLMs don’t either, mainly because I watch it getting basic syntax wrong and spending multiple iterations trying to fix it.

    Meanwhile, (back in the language I know well) I’m sitting here thinking “I could write this function in 10 minutes” but instead I’m watching someone spend 45 minutes arguing with ChatGPT, getting five different implementations that each solve slightly different problems, copying bits from each one, and ending up with some Frankenstein monster that technically works but has the architectural elegance of a highway pile-up.

    The expert devs? We’re MAYBE getting a 20% speedup on boilerplate, if that. Because guess what – for anything actually complex, the time isn’t in typing, it’s in thinking! It’s in understanding the problem! And the LLM doesn’t understand ANYTHING. So you end up explaining the problem to the AI, then fixing what it gives you, and congratulations, you’ve just added a slow, mediocre middleman to your development process.

    But the devs who don’t really understand the domain? Oh, they’re FLYING now. They’re 10x faster! They’re shipping features! Never mind that every single one is a ticking time bomb of technical debt that nobody can maintain because the code doesn’t follow any of our patterns, uses deprecated APIs the LLM learned from 2019 StackOverflow posts, and has this absolutely DELIGHTFUL habit of working fine until you hit an edge case, at which point it fails in ways that make no sense because the underlying logic is fundamentally flawed. (Also, why did you use create-react-app? Even *I* know that that’s been deprecated. Its own says that much.)

    And you can’t even review it properly because there’s SO MUCH of it! “Please review my 500-line PR” – oh cool, did you write this or did a robot? Do YOU even understand what it does? Can you explain why it’s using a WeakHashMap here? No? GREAT. AWESOME. LOVE THAT FOR US.

    The worst part? MANAGEMENT LOVES IT. “Look how much faster we’re shipping!” Yeah, we’re shipping, all right. Shipping technical debt at unprecedented velocity. We’re going to be maintaining this garbage for YEARS. Every bug fix is going to be an archaeological expedition trying to figure out what the original generated code was even attempting to do.

    And when something breaks in production – and OH IT WILL – nobody’s going to understand it well enough to fix it quickly. We’ll just… generate more code to patch around it. Code on top of code on top of code, like geological layers of sedimentary garbage accumulating over time.

    Five years from now, we’re all going to be sitting in a “legacy code cleanup” initiative wondering how everything got so incomprehensible so fast.

    But sure, yeah, AI is making us all 10x developers. Can’t wait.

    returns to actually reading the codebase like some kind of dinosaur