DEV Community

Lars Faye | Confident Coding
Lars Faye | Confident Coding

Posted on

My AI workflow seems to be the opposite of what the industry is encouraging, and I don't care.

The general consensus is that you should spec out your project, requirements, generate a bullet-proof plan, and then implement it via some kind of agent workflow. I've attempted this numerous times, and yes, it works...sort of. It can produce an application to the spec, but the main issue I continuously run into is that it's really hard to think about all the nuances and caveats ahead of time, and its not until I see something start to come together where I realize I need to think about things differently. Any ambiguity and the LLMs fills in with assumptions (or hallucinations).

I can just keep iterating with the agents, but its just more token usage, more code churn, more disconnection from the codebase, and more potential complexity as I am needing to trust the agent to refactor appropriately. It can be done, but I personally find it exhausting and rather annoying.

Lately, I've started to do the opposite, which I'm sure the AI bros would balk at: I use the LLM to generate the plan, and I do the implementation. Especially starting from scratch, deciding how to architect and plan an app out can be challenging, and I often like to see examples of other architectures to help me decide how I want to structure things. In the past, I'd often look for starter repos as inspiration and then begin putting things together after getting some initial direction.

With these AI tools, I can work with them to tailor an architecture and structure that suits my exact needs, plan the entire app, and then...build it myself.

Sure, I use these AI tools alongside to delegate tasks to and implement features on an as-needed basis, but its highly incremental and I'm still "manually" coding a good 50% of the project.

This flies in the face of how I think the industry is hyping things and seemingly the opposite of the "let AI do the coding, you only do the planning & review" workflow, but I really don't care. Anytime I've done that, I could feel the atrophy of my critical thinking setting in within a few days, and feeling like I inherited a codebase rather than helped create one.

Thinking in and working through the project in code isn't just drudgery; it forces you to think about things on a technical level that involves everything from security to performance to user experience to maintainability. Trying to do that while staying in the "natural language" mindset doesn't get specific enough, and specificity is absolutely essential to doing this work successfully.

I'm sure some others out here feel the same...

Top comments (0)