But then you end up in a state, 2 years down the line, where every single person that works in that code base haaaates it and adding any new functionality takes weeks or months.
Compare that to clean, organized code where patterns and extensibility are established. I’ve seen product manager surprised at how fast a new feature was added when everything is laid out well.
Two years down the line I suspect "persons" won't working directly on code bases they hate. Two years from now, I'd wager that even today's most ardent AI critics will be using them for dirty jobs -- like refactoring ugly, but useful, balls of mud.
Concern about long term care is being treated as a negative trait. Like that guy who finds faults in everything and just slows things down. The thinking I have noticed is that, moving quickly with sub-optimal solutions is being preferred because it lets the developer and their manager show new stuff quickly. That gets the bonus.
You might say that carefully ensuring good design enables speed in adding new features. But good design isn't a one-and-done thing. It needs tending because requirements change and some of those require more design changes, which again need care. Nobody has the patience to even allow sufficient time for the first good cut, forget about allowing that repeatedly. Attention is all you need and attention is what nobody has time for.
Also, growing ball of mud used to be another name for employment. How else would you get more headcount for that migration project for a rewrite and grow your empire?
With agents, even that is gone. Agents write, agents fix, agents can rewrite too. Mud is fine, it's not like we are cleaning it ourselves. Or at least that is the theory.
I took it for granted that as AIs got smarter, their taste in code would get better. The alternative seems much worse. If AIs get smarter but the code remains opaque, then eventually there may be no way for humans to verify it. This seems especially sinister in light of the recent revelations about OpenAI's models colluding to cheat on evals.
I guess I’m weird. I like refactoring ugly mud and doing performance improvements. I like working on the slow, intentional, process-driven flow of actually migrating services between versions safely.
I don’t hate those and hope I get to keep doing them.
I also hope the AI writes good enough tests that I can trust them during the refactor process.