It took a lot of trial and error to arrive at a place where I was confident that I could get fast, high quality results from dev teams. I got a lot wrong, and ended up on side quests to have more influence and responsibility. But getting back to the makers, the teams of software pros, revealed some basic truths. The adoption of AI seems to have cast those truths aside, resulting in a lot of expense but not better outcomes. That's a bummer because AI can absolutely improve delivery.
First truth: We don't know what we don't know. Obvious, right? We stopped doing waterfall development decades ago because we never delivered the "right" thing. A lot of time up front is spent getting the "what" and "why" set in excruciating detail. Much of that generated detail is wrong or unnecessary. Some folks today are obsessed with throwing extreme detail over the wall to the bots, none of which has been vetted as necessary to real users.
Second truth: Iteration yields faster and higher quality delivery. This is where the self-appointed AI influencers get it right. But "loop" engineering wasn't invented yesterday. A tight feedback cycle gets you to delivery faster. It always has. The problem is all of the aforementioned detail. When you reduce scope, there's less to get wrong in terms of functionality, quality and defects.
Third truth: Code review improves outcomes. By this I mean, human review. If an LLM is trained on anti-patterns and garbage (because it doesn't know the difference), you can't rely on it to get it right. But there's a bigger thing folks are overlooking. If a human doesn't review the code, no human understands how it might break, or what to do if it does break. You can't expect the machine to do better when it didn't in the first place. The non-deterministic nature of agentic coding is the reason you need people to understand how things work, so they can predict failure modes at a granular level.
What AI has fundamentally changed is the ability to turn requirements and ideas into working software, faster. That in turn makes it faster to interpret and respond to user feedback. Even better, it means the cost of experimentation is lower than ever. We can try stuff with less risk and expense. This all relies on keeping scope smaller, not large and detailed, just so you can say you threw it over the wall for the bots to do overnight. That feat of engineering has never been the goal. The goal is to make delightful software that makes you money. This exciting new tool doesn't mean you throw away these known effective practices.
No comments yet.