What to make? A sandwich?
AI makes it really easy to build things until you realize you don't know what to build. You may think you know what you want to build until you start to build it, only to find out that not only have you not defined some of the requirements of your project, but you hadn't even considered that those types of requirements might exist.
Building with AI makes me think back to my time in second grade. One day for homework, our teacher asked us to write instructions for making a peanut butter and jelly sandwich. The next day in class, everyone was tasked with making a peanut butter and jelly sandwich, but they had to follow their instructions exactly.
One can imagine how some second graders wrote their instructions. Precise instructions such as "put the peanut butter on the bread," led to unopened bottles of peanut butter placed precipitously on top of unopened bags of bread and other such silly occurrences. Of course anyone who knows what a peanut butter and jelly sandwich is, knows that you need to first open the loaf of bread, put two slices face down on a plate and spread peanut butter using a knife on one side of the bread. These sort of unspoken assumptions are exactly the things that AI can be trained to figured out on its own. It's the unknown and unspoken assumptions it has trouble with.
Maybe you wanted all natural organic crunchy peanut butter and you've been eating grape jelly every day for the past two weeks and today you really have a craving for toasted sourdough bread and marmalade jam. And you didn't realize this until the peanut butter and jelly sandwich was already made. All the AI training in the world isn't going to figure that out absent a direct connection to your brain (hi neuralink!).
We talk about how agentic software development moves the bottleneck to verification. But because it's never been easier to start building something, it makes it easier to start building before we've even thought clearly about what we want. Sometimes this is a good thing in that the process of building and seeing a result - any result - allows us to refine our requirements or inspires us to move in a new and potentially fruit, until know unknown direction. But sometimes it also just sucks up a lot of time and tokens to just build up a pile of technical debt that sort of does something that it turns out we didn't really want it to do in the first place.