My first attempt at vibe coding face-planted.
I shook my head and stared at the screen. Well, this is obviously not for me. I became convinced the problem was the AI.
I had uploaded the working Excel spreadsheet that already contained the business logic, workflows, and calculations I wanted the AI to replicate. How hard could this possibly be for “artificial intelligence” to translate into an application? The result was a mess. I closed the browser and didn’t come back to it for almost a month.
Then one night, almost reluctantly, I decided to try again. Twenty minutes later, I wasn’t frustrated anymore. I was unsettled.
On this second attempt, I changed only one thing: instead of asking the AI to infer my intent, I explained the outcome I wanted. I described the user journey, assessment flow, registration process, scoring logic, and expected behavior. Somewhere around the fifth or sixth prompt I realized I had stopped thinking like a programmer and started thinking like a product leader with enough technical depth to direct the machine.
An hour later, I had the foundations of a production-ready application: a polished React interface, a SQL back end, user registration, and working assessment workflows. The remarkable part wasn’t the speed. It was the dawning realization that software development itself had quietly changed and I hadn’t noticed until I was standing in the middle of it.
Lesson 1: Exploration leads to unexpected places
Working as an agile coach, team agility assessments, usually spreadsheet-based, were simply part of the job. You administered them, reviewed the findings, and guided teams toward improvement. Easy, right?
Nope. In practice, I came to distrust these massive maturity assessments. They promised precision but often delivered exhaustion. My latest working assessment tool had over 120 questions. One hundred and twenty questions. There had to be a better way.
I found myself reaching for a medical analogy. Most teams don’t need an advanced MRI diagnostic. Most of the time they just need an X-ray to find what’s broken. A comprehensive MRI may have its place, but it’s rarely the best place to start.
So I decided to deconstruct the spreadsheet-based assessment process and turn heavyweight assessments into a lightweight application, a Team Agility Quick Scan a team could take in 10 minutes with just 12 questions. The concept worked and I had a nice spreadsheet tool.
Soon I realized I didn’t want to spend my time distributing spreadsheets or asking organizations to manage yet another Excel file. I wanted teams to experience the assessment, not inherit another document to maintain. So I thought, vibe coding?
Lesson 2: AI changed my role before it changed my software
I had a use case. After some research, I settled on the Replit platform.
When my first attempt failed, I blamed the AI. Walked away. My failure happened because I expected AI to behave like a programmer. When I came back a month later, I changed how I treated the AI, less as a contractor and more as a collaborator.
Instead of showing it what I wanted, I described the outcome I was trying to achieve. I stopped specifying implementation and started specifying intent. I explained the user journey, the assessment flow, the registration process, and how scores should be aggregated and displayed. I stopped thinking in terms of code and started thinking in terms of behavior.
After a few rounds of editing and wordsmithing the first prompt, I submitted it.
Three minutes later, the AI responded not with a few snippets of code, but with what amounted to a design proposal. It outlined the application, described how it intended to build it, and then quietly announced that the first version was ready to test.
“Go ahead,” the AI suggested. “Create your first assessment.”
I clicked the Register Account button. The registration flow worked. The interface looked polished.
I clicked the Create Assessment button. It worked. I could create a quick scan assessment, navigate through the application, and begin exercising functionality that, only moments before, had existed solely in my imagination.
The questions snapped into view. Easy to read, easy to answer. Then I clicked the View Results button. My jaw hit the floor.
It wasn’t perfect. But it was far better than I expected. The important thing was that the foundation existed.
From that point on, our interaction became less like programming. It was collaboration. After a while, it felt less like programming and more like directing.
I suggested changes; the AI implemented them. I refined the user experience; it generated another iteration. I pointed out missing functionality; it filled in the gaps. I made color and design graphic suggestions; it agreed with some, improved on others. Each conversational exchange nudged the product closer to what I had envisioned.
Watching the application evolve in real time
[…]
Content was trimmed to protect the source. Please visit the original article for the full text.
Read the original article:
