My friend recently demonstrated to me an AI agent which could develop a full-stack application using a variety of frameworks to achieve a separation of concerns. It had an elegantly detached API using Laravel with terraform scripts for building the Kubernetes environment as well as plenty of architecture diagrams for internal event driven systems as well as larger ecosystem details for scaling etc. We dug through the code and bit and noticed numerous "not-optimal" details. After about five minutes of this "browsing" it became clear that in order to fully understand what this system generated we'd have to comb the app line by line so to speak. It would likely take far longer to understand what it generated versus actually writing the bulk of the code. What struck me most about this AI generated system is how overly complex its entire architecture was. But then again, that is the environment we've been promoting in the industry for the last decade. This overly complex system which requires numerous specialists in order to operate but hey it's "robust" and "future proof". In my personal opinion most modern applications are built wrong and all too often are built as if money is infinite and who cares how long it takes.
All LLM systems are built using existing datasets which exist in the world, which means that this AI agent built accordingly what it "believed" to be optimal based on blog articles and open source code. Most large scale enterprises do not open source their core code so that means that many junior and senior developers are promoting this overly complicated architecture on their personal blogs and repositories. Perhaps its a desire to show off their skills or they wrote this stuff as a learning process but all too often I find that developers are promoting systems without any real consideration for what those systems are or where they actually fit. The small business that asked for a website from the junior freelancer would be perfectly content with a Wordpress blog running on a CPanel server running on a DigitalOcean droplet. They do not need a static generated edge computed website which loads in under 40ms. They do not care about the cutting edge technology. They care about security, budget, and long term maintenance. Yet developers be it freelancers or agencies are often shoving these architectures at them for future proofing their "ideas". I would be hard pressed to find an agency or freelancer that would simply say to a potential client that a basic ass Laravel web application would be all they needed. It could be hosted on any cloud platform with basic backups, basic security principles, and voila they would have a long lasting digital solution. However, what most businesses are offered these days is this bastardized version of a full-stack app. Some SPA architecture which requires 10x the maintenance in order to keep operational not to mention secure and performant. The code is "mobile-app-ready" so I guess after they finish this project the small business client can just drop another 100K into a mobile app build which is really just a different SPA engine which duplicates the business logic that got shoved into the SPA for the web interface as well.
I am not surprised the world is overjoyed to find ways to get developers out of the way, though I'm highly skeptical AI will ever be agentic enough to produce well structured and operational code, based off non technical prompts. So because of my skepticism I am asking all my fellow developers out there in the large World Wide Web, please stop acting like all clients are going to be large scale enterprises and keep it simple. Life is far too short to write overly complicated code that you won't remember or be able to read five years from now. Write solutions to problems that require as little maintenance as possible, be as kind as possible to the next developer who looks at the code, and above all, stop flip flopping around architectures because a new "cool" way comes along. Write as little code as possible to solve the business problem, then get to work on the next problem.