[Opinion] A thousand hours of vibe coding
I have a thousand+ hours of experience with vibe coding and one of the more interesting and unexpected things that I regularly encounter is this: "after spending many hours with a swarm building an application with a bewildering infrastructure of services, API calls and complicated front ends, I often reach a point where I realise the problem can be described in a form that can be solved far more quickly in a spreadsheet."
It then takes me a short amount of time to build the thing by hand. What's interesting is the journey of vibe coding from co-creating the specification, the tests, reviewing the designed architecture and general wrangling of the system in the problem space. This process helps me discover the question that I'm really trying to answer. It's almost never obvious from the start. Once I have that question, a spreadsheet is surprisingly good enough for many jobs.
It might seem wasteful to go from 37,759 lines of code to a simple spreadsheet (my most recent example) but then I didn't write any of those lines of code, I didn't understand them, and I didn't need to. The amount of effort that I put into writing was minimal. I only needed to find the questions that I really had to ask. This amuses me as I often hear people talk about how they are going to use LLM/GPTs to clean up the mess of spreadsheets in their organisations. Well, maybe there's a reason why they exist in such large numbers?
I've had related experiences with Glamorous Toolkit but then it's an environment designed for building tools, exploring the problem, and finding the right question to ask. It does so through a structured pathway i.e. you start with a question, build a tool to find the answer, which leads you onto more questions. You continue until you find the right question to ask and ... with GT the final tool gives you the answers you need.
I should have expected this with vibe coding because what we're actually doing is building a tool. All applications are tools, the term 'application' is a social construct rather than meaningful. The hardest part is finding the right questions to ask, it's rarely about writing the code itself.
Finding those questions is a pathway that involves answering earlier questions and in this, I find that vibe coding is fairly messy and unstructured, often leading to broken pathways where the chain of comprehension is lost. I often find myself rolling back to a 'safe state' as I watch hours of 'work' disappear in a dead end. The inevitable doom loop where race conditions of one error or another appear and the system can't move beyond it. Everyone who has built anything significant with vibe coding has experienced that or ... they've been extremely lucky.
This pathway of questions and answers is one of the reasons why I like the use of LLMs in GT in both helping to develop tools and via the use of example driven development. Tudor Girba and I will talk more about this in the next chapter.
In the meantime, have some slop.
Originally published on LinkedIn.
