blog main page

Coding Agents, Structural Conservatism, and Why Domain Changes Need Refactoring

Coding agents are getting remarkably good at making software work, but making a correct change is not always the same as making the right architectural change. When new requirements arrive, agents often extend the structures that already exist, adding behavior to familiar classes, services, and modules rather than asking whether those structures still reflect the domain. Over time, that tendency can leave a codebase technically correct but conceptually outdated. This article explores why coding agents are often structurally conservative, how that can quietly degrade architecture, and why the next generation of agents will need to do more than generate successful patches. They will need to recognize when the software model itself should change.

Read more →

The Missing Team Expectations in Agentic Software Development

AI agents are quickly becoming part of everyday software development, but the biggest challenge may not be how well they write code. It is how teams decide what good agent-assisted engineering actually looks like. As engineers develop different habits around delegation, review, validation, model choice, cost, and risk, those individual workflow decisions begin to affect performance expectations, accountability, onboarding, and engineering culture. This article explores why agentic development needs to become a shared team practice, not just a collection of personal experiments, and what organizations can do to establish clearer expectations without slowing down the benefits AI can provide.

Read more →

Fault Containment in the Age of AI-Generated Code: Why Vertical Slices Matter More Than Ever

As coding agents make software faster to produce, a new challenge is emerging: if developers no longer read every generated line, how do we make failures easy to find, understand, and fix? Robert C. Martin’s recent comments about relying on automated constraints rather than continuous code inspection point toward an important architectural consequence. In this article, I explore why fault containment becomes increasingly important in agentic development, how vertical-slice architecture can create clear boundaries for generated code, and what teams need to enforce so that when the code is wrong, engineers still know exactly where to look.

Read more →

Understanding AI Agents Through Microservices Concepts: Using familiar microservices concepts to understand agent systems without confusing the two

For software engineers familiar with microservices, AI agents can seem like an entirely new architectural world, filled with unfamiliar concepts such as tools, context, memory, planning, grounding, and behavioral evaluation. Yet many of the engineering concerns behind agent systems, including clear responsibilities, well-defined interfaces, coordination, state management, permissions, resilience, and observability, have familiar counterparts in distributed software architecture. The key is knowing where those comparisons are useful and where they break down, since agents interpret goals and choose actions in ways traditional services do not. This article uses microservices as a learning bridge to explain the core concepts of agent development, helping experienced engineers build on what they already know while understanding what must be learned on its own.

Read more →