AI is a wooden stick
(Hopefully this is my last post riffing on AI)
tl;dr: AI-stuff shouldn't be used to built projects (solely), but is very good for prototyping.
Buildings take a while to make since most of the time, the building maker wants the building to be structurally sound. Something similar happened with programming -- it took more than a few hours to come up with a product idea, code it, smooth out all its edges, and ship it.
With AI however, that time cost has gone way down. You can 'vibe code' your way to a product without much brain and get away with it as your project does indeed have minimum functionality. However.....you're project is most likely held up by wooden sticks.
Think of it like this: Every time you copy-paste code that is beyond your realm of comprehension into the code, you essentially just generated a random scaffold to keep your building (project) from falling over. And more often than not, the scaffold generated is wooden -- it does hold the building (your project) up, but as soon as the winds blow or maybe some rain comes (requirements change), your little wooden stick scaffold holding up the tower becomes useless. Now perhaps you could iterate on the wooden stick and make it stronger and maybe turn it into steel or something but at that point, instead of turning a wooden scaffold into a steel one, it might just be best to make your own steel scaffold and insert it in for the wooden scaffold.
And I think that's the main argument against using AI in a production-level codebase -- the code generated by whatever intelligent machine holding up some other code/fixing a bug is analogous to a wooden support beam or scaffold holding up part of a building in that its weak and more often than not can't adapt well when requirements change1. And sure, you can always replace that specific wooden support that's broken with more wooden supports; but after a certain point, wooden supports won't be able to hold the weight of a skyscraper.
But there's another thing about wooden scaffolds: they're inexpensive in both time and money, and ultimately, for small projects, they do a good job of supporting it. What I mean here by small projects is essentially small chunks of code that don't do a whole lot. Not a whole product, but maybe a super simple module. Not an application, but maybe just the little rendering piece of it. Not a whole script, but maybe just a little sample script to be iterated on. For those applications, generated/made-up code is super useful -- you don't plan on building a 5-story building, and while it'd be beneficial to invest in steel scaffolds to be used over and over again, it's fine to solely rely on wooden scaffolds2 to build a small 1-story building.
In non-analogy speak, what I'm trying to say is that AI is super helpful for prototyping and developing basic test applications that won't be iterated/expanded on tremendously. For example, let's say you have a product idea, and you need some application coded. Here, I would recommend the use of AI as it's both fast and useful -- in a few hours, you can slap together your application with your LLM friend pump it out and ignore dev hiring altogether. Sure, you may have no clue what the code does and the code is deranged, but that doesn't matter. Your little project was never meant to be an aircraft carrier challenging other established companies and products. It was simply a little boat that you threw in the ocean to see if it'd sink or swim. But the moment you start wanting to iterate on that boat and turn the small test sailboat into a big cruise ship or something, that's the time to hire some cruise-ship makers (developers).
tl;dr 2 (longer): AI is good for making one-off projects where the goal is to get the idea out -- but (obviously?) not good for making bigger projects which need to be expanded upon and continuously improved.
Ex: Your function
get(int uid)
now needs to be turned intoget(int uid, bool flag)
. Welp, all that AI generated code (since most likely no one took the time to understand it) has to be regenerated.↩Maybe OSHA will have some qualms with you on this if you do it irl but in the context of this analogy it's ok↩