Code & Cardboard by Karl Daniel

Bad vibes

A recent video from Y Combinator introduced the concept of "vibe coding", a term that has come to mean embracing a more fluid, AI-driven way of building software. The premise is simple enough; let go of the tedium of writing and maintaining code yourself and let an agentic AI handle it instead, quirks and all.

At first glance this sounds like a dream. For any seasoned engineer with the capacity for critical thinking though, this so-called "reality" should be enough to bring on a sense of existential dread.

Software engineering has always been a discipline that asks for, and rewards, both precision and a proper understanding of what you've built. Getting a program to run is only part of it, you also need to know how and why it runs the way it does, because that understanding is what sits behind the architectural decisions we end up making.

Vibe coding flips this on its head. With the AI in the driver's seat, engineers are asked to hand over responsibility for the logic behind their code. Got a bug? No problem - ask the AI to fix it, or just roll again. Need a new feature? Let the AI generate it from scratch. There's no need to understand how the solution works (if indeed it ever gets to one), only what it produces.

On the surface that looks efficient, and in a narrow sense it is, but without a foundational grasp of the underlying code it becomes far easier for security vulnerabilities, inefficiencies and architectural flaws to slip past unnoticed. Worse still, it nudges us towards a culture where engineers are incentivised to prioritise short-term speed over long-term quality and maintainability.

If this is giving you a dreaded feeling of déjà vu, that's because it should. Copy-paste enabled much the same thing. "Script kiddies", the amateur coders who lifted chunks of source code without understanding any of it, were the pioneer "vibers", and they were often able to produce functional, if flawed, software with minimal knowledge of how it worked.

And yet, for all the script kiddies out there, skilled engineers were never really threatened. Building software that's scalable, secure and reliable takes more than cobbling together pre-written snippets, it takes thoughtful architecture, attention to detail and domain expertise. I'd say the same holds true today. AI-assisted development can certainly speed things up, but it isn't yet capable of replacing the judgement of a seasoned engineer.

Fully embracing AI-based vibe coding at an enterprise level right now, is to my mind a bit like getting a toddler to run a marathon. It might get off the starting line - but it's not going to finish the race on its own.

Vibing

The "vibes" seem pretty off here.

I should say none of this is a rejection of AI in development, it's a caution against leaning on it blindly. It's a useful tool, the key being that it enhances what we do rather than replaces it. Whether that line holds as the tools get better is another question, but for now I'd keep the keyboard within reach.

#development #thoughts