Whispering to the Machine

I had a conversation with another developer recently that left me feeling energized. We were kicking off a new project, and as we started talking about process, it became clear we were both arriving at similar conclusions about how to actually work with AI in software development. It was one of those moments that validates the path you’ve been on.
The ground moves daily. This year alone I’ve worked with two major new series of models from Anthropic , and the difference between them is obvious in the work. What works today might be obsolete tomorrow. That’s why I write these down. Consider this a snapshot, a journal entry of what my process for collaborating with agentic AI looked like in the summer of 2025.
My thinking was crystallized by a side project: a pretty big app I’d built years ago, running on an old version of Rails with a Bootstrap 3 front-end. It was the kind of technical debt you just learn to live with. But as AI tools grew more powerful, I started to think, “I could actually tackle this now.” That project, migrating the app to a modern stack with Tailwind CSS and daisyUI , is where the workflow came from.
The process I landed on boils down to five core ideas:
1. Plan Meticulously
Before writing a single line of code, or asking an AI to, I spend real time on a plan. A detailed document with the objective, the approach, where the AI comes in, and what kind of prompting it needs. You can’t just tell the AI to “go migrate the app.” You have to give it a deliberate, audited plan to execute against. It’s the difference between a helpful assistant and a chaotic mess.
2. Work Iteratively
With a plan in hand, break it down into the smallest possible chunks. The goal is small, atomic git commits that are easy to review and, more importantly, easy to understand. This iterative approach acts as a series of checkpoints. It keeps the project from spiraling out of control and allows for course correction without unraveling a massive, tangled set of changes.
3. Use the Right Tool for the Job
Models are not interchangeable. During my migration project, I was stuck on a particularly tricky asset pipeline issue for hours. I was using a powerful, capable model, but it was caught in the same loops I was. On a whim, I switched to Claude Opus , which people had said was exceptional at complex problem-solving. It figured out the issue in about thirty minutes. The lesson: develop an intuition for which model to bring in for which kind of problem.
4. Embrace Collaboration
I’ve started to feel like a “model whisperer.” It’s more than giving commands. You learn the quirks of your new collaborator. Some models get stuck in apologetic loops. Others are confidently wrong. You’re in a partnership with a brilliant but sometimes fickle collaborator. You have to guide it, supervise its work, and be ready to jump in. The agentic features in tools like Cursor are powerful, but they work best when you’re right there with them, not when you set it and forget it.
5. Don’t Be Afraid to Start Fresh
This was my biggest breakthrough. My initial approach was to have the AI refactor views in-place. It was a disaster. A rat’s nest of legacy styles, broken JavaScript, and endless bugs. Then we switched tactics: the AI would study the old file, then generate a brand new file from scratch. That worked. Sure, it would sometimes forget functionality, and I’d have to add things back piecemeal, but that was infinitely easier than debugging hundreds of errors from in-place refactoring.
Where This Leaves Us
This is a workflow built on planning and patience. The tools are not replacements. With the right guidance they let you take on work you would have written off as impossible.
I’m sure in six months this process will look different again. That’s why it’s a snapshot and not advice.
This post was originally written in June 2025. A follow-up reflecting on how much the landscape has changed since then is in the works.