Complexity exists on a spectrum, ranging from simple, static websites to sophisticated platforms like Shopify. Another dimension is quality, which distinguishes between demos, projects, and products. Demos provide a glimpse into a product’s potential, while projects focus on the Happy Path, providing functionality according to narrow, predefined guidelines. Products prioritize ensuring that, regardless of user actions or potential errors, the product remains functional or, in the event of failure, fails gracefully.
The code for a demo is disposable. The quality is of no consequence as long as the demo works. A project is often the same. On the other hand, the code for a product on which you can build and scale a company must be of quality. The more robust, reliable, foolproof, the better the product.
Additional factors to consider include fixability, scalability, and extensibility. The ease of fixing bugs and the ability to scale the product to accommodate increasing user bases are crucial. Adding new features should also be seamless, without compromising the fixability, scalability, and extensibility of the codebase.
Remember, the question of coding speed is not how fast one can write any code but how fast one can write the needed code. If it is for a demo and the code is disposable, if the code shows what you want, it’s probably the right code. If it is for a product on top of which you want to build and scale your company, quality is important.
Again, ‘can AI build software?’ is the wrong question. With what we have established, a better question is, ‘for a given complexity and quality, can AI write that code?” If you are looking for the code to run most websites, the answer is almost certainly yes. If you are building a demo and the code is disposable, probably. If you are building a web application, one where one must log in and each person has a different experience, the answer becomes hazy. If it is simplistic and you don’t expect new features to be needed, there’s a good chance. The more complex, the more fixability, scaleability, and extensibility are important, the quicker we get to, ‘sorry, no’. But, this is only for that vibe coding thing.
Lots of people are talking about vibe coding. It is the new hip thing. You give an AI a prompt and the AI spits out code. That sounds amazing . . if it works. Where AI really starts to shine today is as an AI pair. When you have an existing quality codebase on which a skilled software engineer is working, an AI pair is a powerful helper. When one knows how to ask for a very specific addition, then can review and accept code written by the AI, it does supercharge what that engineer can do.