Vibe Coding versus AI Pairing

Posted by: on Category: software

Asking the question ‘can AI build software?’ is the wrong question as there is a simple answer, ‘Yes, absolutely’ but that answer is generally meaningless. Let’s explore this a bit and find a better question with a better answer.

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.

Vibe Coding

Vibe coding is when you tell an AI what you want and you take whatever code your AI gives you. If the output is wrong or just isn’t good enough, one typically just runs the prompt again or perhaps makes an adjustment. If the new one is still not what you want, try again.

Pair Programming

Pair programming involves two developers collaborating to write code with the expectation that the code generated by both developers will be superior to what either developer could achieve alone. This collaborative approach allows each developer to contribute their unique knowledge and skills, resulting in a more comprehensive and efficient software development process.

AI Pair Programming

AI pair programming is when one of the pair programming developers is an AI. This is not done at the standard prompt. This finds its stride with tools like Windsurf and Cursor. A dev can start with an existing codebase and interact with the AI through a variety of ways from a requirements doc to a simple prompt. The AI generates code, but the dev can now review the code one step at a time, which allows the dev to, hopefully, catch any hallucinations quickly, roll those back, and guide the AI in the correct direction. The dev also ensures the quality of the code, which might include a tweak or a rewrite. Together, they can write much higher quality code than the AI could write on its own and do it much faster than the dev could do on her own. The topic of AI pairing will need a post of its own.

Reality

If you are looking to build a demo or a quick project that just needs to work for the moment, vibe coding is for you. If you are building a product, find a great software engineer who has a good AI pair and watch them create beauty.


About Ken Decanio

I am a software engineer by training, a product manager by nature, and a startup guy by insanity.

Categories
Useful Links
-->