Users find that long-running AI agents often go off-tangent or attempt to perform multiple tasks when only one was requested. They need agents to improve focus and adhere strictly to the specified task.
Yesterday I cleaned up about 60% of code generated by an agent that prefers to stay unnamed :). It brought a pile of unnecessary complexity. Again. And I caught myself thinking that we might be losing the battle against endlessly growing complexity with the help of AI. Software development is a continuous fight with complexity. We have been trying to cage it with boundaries: managed services, frameworks, libraries, microservices. We argue about architectures to keep systems maintainable. Layered, hexagonal, clean, domain-driven, event-driven, CQRS, event sourcing, SOA, micro frontends. We do it with a single goal: to minimize the blast radius and introduce clear contracts. AI flips the table. Generation is easy. It ships code with no effort and ignores trade-offs. Maintenance is hard. Coupling, cohesion, run costs, reliability — all your problem. Think of somebody gifted you a dog. Zero purchase price, daily work for decades. Feeding, training, vet bills, walks — all yours. Enjoy! It feels like empowered with AI we’re about to lose this fight against the uncontrollable growth of entropy in source code. When engineers hit the ceiling and pull back: they pay tech debt, they refactor, they extract libs, they even say no to features. They deal with it. AI hits the ceiling and keeps going, generating layer after layer of code. Crap over crap.