ecabigting
← Back to Blog

Why Your Years of Software Development Experience is the Secret Weapon for AI

by Eric Thomas D. Cabigting
Why Your Years of Software Development Experience is the Secret Weapon for AI
[ai generated]

I have spent fifteen years in this industry. I started building desktop applications on Windows, then moved to the chaos of early web apps, and finally settled into the complex world of cloud enterprise systems. I have seen many trends come into the mainstream such as microservices, serverless, containers, and now artificial intelligence.

When AI coding assistants first appeared, I felt excitement. I saw the potential to move faster. But I also felt a warning signal. The hype suggested that we could stop thinking about code and just write prompts. Some people said the era of the software engineer was ending. They said "code is cheap" now.

I tried to believe them. I tried the new ways. I failed.

I experienced the three biggest failures that many of us face today. First, I tried the "specs to code" method. I wrote a high-level requirement and told the AI to build it. I did not look at the code. When it broke, I just changed the spec and ran it again. The result was worse every time. The code became a tangled mess of complexity. It was garbage.

Second, I felt the exhaustion. The AI generated thousands of lines of code in minutes. My brain could not keep up. I was tired in a way I have never been before. I had to read every line to understand what was happening. The speed of the machine was faster than the speed of my understanding.

Third, the AI did not speak my language. It used generic terms while my domain required specific precision. It talked about "users" when I meant "authenticated tenants." It talked about "data" when I meant "encrypted payloads." The communication gap was huge.

I almost gave up. I thought maybe the old rules were dead. Maybe I needed to learn a new way to work.

Then I remembered the books I read twenty years ago. I remembered the principles of software design. I realized that the problem was not the AI. The problem was that I stopped applying the fundamentals.

The truth is simple. Code is not cheap. Bad code is the most expensive thing we have. If your codebase is hard to change, you cannot use AI. AI only works well in a clean environment. It amplifies what is already there. If you have a messy house, AI will just clean it faster into a bigger mess.

As a leader of a team, I changed my strategy. I stopped asking the AI to plan. Instead, I used a technique I call "grill the AI." Before writing a single line of code, I forced the AI to interview me. I asked it to challenge my assumptions. I asked it to find the gaps in my logic. We argued until we had a shared design concept. This took time, but it saved us weeks of debugging later.

I also fixed our vocabulary. I created a "ubiquitous language" document. I scanned our codebase and extracted the exact terms we use. I gave this list to the AI. Suddenly, the verbose explanations stopped. The AI started thinking in our domain. The code it produced matched our architecture perfectly.

But the biggest change was in our architecture. I saw that the AI loves to create shallow modules. It makes many small files with complex interfaces. This is bad. It makes testing hard and understanding impossible. I taught my team to build deep modules. We hide the complexity behind simple interfaces. We let the AI handle the implementation inside the module, but we strictly control the interface.

We also enforced Test-Driven Development. The AI tries to write too much at once. It outruns its headlights. By forcing it to write a test first, we slow it down. We make it take small steps. The feedback loop becomes the speed limit. If the test fails, we stop. We do not move forward until it passes.

Now, my team works differently. We do not fear the AI. We use it as a tactical sergeant. It writes the code, but we are the generals. We design the strategy. We design the interfaces. We verify the boundaries. We treat the modules as gray boxes. We do not need to read every line of implementation if the interface is solid and the tests pass.

I knew these ideas already. They are not new. They are from the classics. John Ousterhout, Kent Beck, Frederick Brooks. They wrote about this decades ago. The technology changed, but the engineering did not.

If you are an experienced engineer, you have a superpower. You have the judgment that the AI lacks. You know what good design looks like. You know when the code is getting complex. You know when to say "stop" and "refactor."

Do not let the hype make you forget your roots. Do not try to bypass the code. Embrace the fundamentals. Build deep modules. Define your language. Test your code. Grill your AI.

The future belongs to the engineers who understand that AI is a tool, not a replacement. The best capabilities of AI come out when they work together with human expertise. We are not obsolete. We are more important than ever.

Let us build software that lasts.

Continue Reading.