You are doing vibe coding wrong

Two underwhelming approaches of using AI for software engineering

Large Language Models (LLM) has forever disrupted the software industry. “Vibe coding” is now the default way of writing code and building software with the help of GenAI coding assistants.

The Coding Assistant Shopping Spree Link to heading

When the web version of ChatGPT first came out, I was eager to try using GenAI to expedite my software development workflows. But as you would remember, it was awkward and clunky - I was amazed with the break through with GenAI but not impressed with what it could do for my development processes.

We have come a long way now. Models now have a bigger context window, coding assistants are agentic and natively integrated into IDEs. However, it’s not uncommon for software engineers to go on a shopping spree and try out every major coding assistant today. Because it’s still hard to find ***the one* that works perfectly.**

The reason for that is the technology is only half the solution - the coding assistants, LLMs, MCP servers, prompting techniques. Even today, many software engineers and organizations are still evaluating these technologies and tools in isolation, doing feature by feature comparison, hoping that the next release would unlock the promise of hyper productivity.

The other critical aspect is the *effective process*** of building software systems leveraging AI - *how* you are using the AI tools**. There are two major approaches to using AI for software development today: AI-Managed and AI-Assisted.

None

AI-Managed Link to heading

This is the promise of generative AI - how it is supposed to make anyone an expert software engineer. If you has an idea for a new app, you just need to describe the high level business objectives and your AI coding companion will take care of the rest, without you lifting a finger. From business goals to full fledge, production grade software systems - front end, database schema, event driven distributed application. This is what we think vibe coding is supposed to be.

  • High autonomy to the AI

  • Low/No human guidance

Analogy - This is similar to the vision we have for a fully automated self driving car. The AI-Managed way is equivalent to entering a self driving car, keying in the destination address, going to the backseat to take a nap and waking up at the destination safe and sound. We are not quite there yet across the board, but it certainly is the correct aspiration.

AI-Assisted Link to heading

But it doesn’t take long for a skilled software engineer to realize that the AI-Managed way doesn’t work well beyond naïve, simple demo apps. We will get into the details of why next time.

Then, software engineers continue with the heavy lifting - backlog grooming, systems design, collaborating with different stakeholders - and only delegate narrow tasks such as source code writing to the AI.

Implement a function that does …

This has been working great but it fails to deliver the quantum leap that was promised. We are still manually tackling complexity and dealing with integration issues, so this approach is only an incremental improvement.

  • Limited autonomy with well defined, narrow tasks for the AI

  • Extensive human guidance for task breakdown and integration

Analogy - In this case, comparing to auto mobile technology again, AI-Assisted is more similar to the parking assistance feature in many cars that makes certain narrow aspects of driving easier. But it is hard to argue that these assistance features have revolutionized the experience of driving as a whole.

Now here’s the obvious next question - so what works consistently while delivery unprecedented leap in how we deliver complex software systems? In the next few posts, I will share a software development method I have co-created in AWS that completely reimagines how we approach delivering software.

** and stay tuned!**

About the Author - Derick Chen

I'm a Developer Specialist Solutions Architect at AWS Singapore, where I lead the AI-Driven Development Lifecycle (AI-DLC) programme across multiple key countries in ASEAN and the wider APJ region. As an early contributor to the AI-DLC methodology and its foundational white paper, I help engineering organizations build complex software faster and better, unlocking 10X delivery velocity through reimagined processes and team structures.

Previously, I worked at Meta on platform engineering solutions and at DBS Bank on full-stack development for business transformation initiatives. I graduated Magna Cum Laude from New York University with a BA in Computer Science.

Follow me on LinkedIn for more insights on AI-driven development and software engineering.

The views expressed in this article are my own and do not represent the views of my employer.