Martin Fowler
Follow
Why are good developers so wary of agentic development?
Experienced developers are hesitant to fully embrace agentic development, not due to a fear of coding or job displacement, but because of their hard-won understanding of the gap between code being built and code functioning reliably in production. They prioritize building the right thing correctly, ensuring software is useful, maintainable, and stable. Early coding agents made it easy to generate code, but lacked the maturity to guarantee production readiness, leading to ongoing questions about confidence, behavior, and long-term evolution. The fundamental concern is the lack of experience with systems built entirely via agents, unlike traditional, human-built systems. These seasoned developers leverage their experience to ask critical questions that AI currently struggles with, protecting against unforeseen issues. They are not against coding assistants, but against relinquishing full control without sufficient confidence in the agents' guardrails. An experiment involving agents building an entire application highlighted that human effort shifted to crucial design, planning, and feedback mechanisms rather than direct coding. Despite the application running, the build process was unstable, revealing challenges in integrating agent-generated code with established CI/CD practices. This instability echoes DORA research linking AI adoption to increased throughput but decreased stability, underscoring the need for a re-evaluation of continuous delivery principles. The experiment prompted discussions on the role of TDD, testing strategies, and batch size in an agentic development landscape. The caution of experienced developers mirrors learning to ski as an adult, acknowledging consequences and the need for control, contrasting with a beginner's uninhibited approach. Unlike familiar ski slopes, agentic development offers uncharted territory where human judgment and mapping are essential. Leaders must facilitate experimentation with permission to fail, while developers need to apply their experience critically and adapt their assumptions. The critical judgment of experienced developers is vital for navigating this new frontier, and their caution should be embraced, not dismissed.