
LLMs can generate an astonishing amount of code in very little time. Unfortunately, producing more code has never been the difficult part of software development.
Used well, LLMs can help developers understand unfamiliar systems, explore possible solutions, create automated tests, investigate defects, and accelerate difficult modernization work. I've used them extensively while taking legacy codebases with limited or no automated tests toward production releases.
They've been enormously useful. They've also produced regressions, weak names, unnecessary complexity, excessively defensive code, and answers that looked completely plausible right up until they were wrong.
That's why I don't treat AI-assisted development as a replacement for engineering discipline. I help teams combine these tools with small changes, clear constraints, automated testing, rapid feedback, thoughtful code review, and people who understand enough to challenge the output.
The question isn't whether developers should use AI. They already are. The more useful questions are where it helps, where it introduces risk, and what practices need to be in place before you trust what it produces.
LLMs can make a capable development team faster. They can also help a team create a mess faster. The difference is rarely the tool.
Who this is for
Teams already using LLMs in development who want practices in place to ensure what they build is reliable, testable, and maintainable.
What it involves
Combining AI tools with small changes, clear constraints, automated testing, rapid feedback, thoughtful code review, and people who understand enough to challenge the output.