[Me & X] Vibe coding in production?
X: Do you think we should be using vibe coding in production?
Me: By vibe coding, I assume you mean modern practices with swarms of agents writing and reviewing code?
X: Yes.
Me: Ok, I'm all for using LLMs for vibe coding (or what I used to call conversational programming back in 2018). However, we should be mindful of the myths we tell ourselves.
I'd pay close attention to:
1) Software engineering is about building functionality
2) Refactoring is not a business problem
3) Software engineering is an engineering practice
4) LLMs will replace software engineers
5) Architects make decisions
See https://lnkd.in/ejAMk7V7 (by Tudor Girba and I).
Vibe coding is fine when building a prototype or when we're talking about a startup operating in non-critical spaces because, frankly, who cares if a startup does a Knight Capital - the blast radius is too small. Hence, if I was running such a startup then I would tend to vibe code as much as possible and take the gamble. I'd also make sure I have good lawyers. Expect a future with a lot more startups, instability, volatility and lawsuits.
As for anything critical, we are still learning the practices (and this may take several years). Hence, I would be more cautious there - see myth 5 and in particular the map on where do we value humans in the decision making process (attached).
X: Should we be using vibe coding though?
Me: It's not a one size fits all (see map). At the minimum you should be experimenting, learning and building prototypes. For anything more, you should be considering where do you value humans in the decision making process and how comfortable you are with a loss of understanding i.e. what your risk factor is. Hence, don't ignore it but think before you use.
X: But specifications are just a higher level language, which is what vibe coding is.
Me: You need to read "But I could use a specification and get swarms of agents to build that?" in myth 5. The observable semantics are not preserved in the translation. You have to enforce them, which is why I talk about wrangling the system i.e. you have to guide it to a destination. I'm all for using specification driven development as a learning tool, but again, think about what your are doing.
Originally published on LinkedIn.
