Genairus logoGenAI-R-Us
Genairus logoGenAI-R-Us
The 'No-Code' Dream and the Manual Reality
AILLMSoftware DevelopmentAutomation
Part 1 of 6 in My Software Factory

The 'No-Code' Dream and the Manual Reality

Scott

The Skepticism of a Seasoned Engineer

It started, as it often does, with a YouTube video. A fresh-faced developer, barely out of college, was confidently proclaiming, "I wrote a replacement for Dropbox in an afternoon with no code!" As an experienced engineer with decades spent in the trenches of complex software systems, my first reaction was a deep, instinctual skepticism. I've seen the intricate dance of state management, concurrency, and distributed storage. I know the graveyard of projects that buckled under the weight of their own complexity. The claim felt absurd.

I didn't believe them then, and to be honest, I still don't. The promise of replacing a billion-dollar corporation's core product with a few clever prompts felt like a fantasy. Yet, I couldn't ignore the underlying shift. The tools were undeniably powerful. I saw colleagues and other developers using off-the-shelf coding agents with surprising success, and I had even started creating my own specialized agents for small, repetitive tasks. There was a fire here, even if it was buried under a mountain of hype.

My First Foray: The Human-in-the-Loop

My curiosity led me to try the popular workflow I was seeing everywhere. The process seemed logical enough:

  1. Use an LLM to generate Agile user stories for a new feature. The output was impressive—well-structured, clear, and comprehensive.
  2. Feed those stories directly into another LLM as prompts to generate the application code.
  3. Review the output and start testing.

It was this third step where the "no-code" dream evaporated and the manual reality set in. The generated code looked right. It had the correct function names, the right structure, and it even ran. But it was filled with subtle flaws, logical inconsistencies, and naive assumptions.

My days transformed into a new kind of tedious labor. I wasn't just writing code anymore; I was a professional code-reviewer for a very fast, very confident, and very fallible junior developer. My workflow became a slow, painstaking loop:

  • Run the code. See it fail.
  • Go back to the LLM. Tweak the prompt. "No, you need to handle the case where the user is null."
  • Regenerate. Get slightly different, but still flawed, code.
  • Correct it manually. "It's faster if I just fix this myself."
  • Repeat. For every function, for every feature.

This wasn't automation; it was a different kind of manual work. It was a grind. The process was slow, deeply frustrating, and worst of all, it didn't scale. For every hour of "AI-generated" code, I was spending two hours debugging and hand-patching it. I had proven my initial skepticism right, but I was no closer to a better way of building.

In the next article, I'll describe my attempt to automate my way out of this problem by creating an army of "LLM Checkers," and the two new, even more painful problems that this created.