AI Intelligence // signal over noise
← back to feed
Simon Willison 7/10 signal

Quoting Armin Ronacher

agenticindustry
Summary
Armin Ronacher argues that the 'friction' of human collaboration in software engineering—code reviews, discussions, and coordination—is not just waste but a vital process for synchronizing shared understanding of a system's concepts, boundaries, and invariants. He warns that AI coding agents, by removing this friction to increase speed, risk destroying the conceptual integrity that holds complex software together.
Context
As the software industry moves from AI-assisted programming (like GitHub Copilot) towards fully autonomous coding agents, the focus is often on accelerating code generation and reducing development time. The prevailing narrative frames human communication and coordination as bottlenecks to be automated away. Ronacher's argument provides a critical counterpoint to this trend. It suggests that the 'slowness' inherent in human collaboration serves a crucial, non-obvious purpose: maintaining the conceptual alignment and shared context of a development team. This perspective challenges the assumption that maximizing code output is the primary goal, forcing a re-evaluation of what is lost when human-to-human friction is eliminated from the development process.
Details
  • The “Shared Language” of Software: Ronacher defines a project's true language not as Python or English, but as the team's common understanding of its core concepts. This includes where boundaries lie, which invariants are critical, who owns which components, and the rationale behind the system's architecture.
  • Where This Language Lives: This shared understanding is not codified in a single document. It is distributed across formal artifacts like documentation and code, but also lives dynamically in code reviews, conversations, arguments, and the experience of explaining a change to a colleague.
  • The Role of “Friction”: Before agents, making a significant change (e.g., to another team's storage layer) required a developer to engage in high-friction activities. These included reading existing code, asking questions, and coordinating with dependent teams.
  • Friction as a Synchronization Mechanism: While much of this friction is inefficient, Ronacher argues a critical part of it is productive. It's the very process by which one developer's understanding is transferred to another, and where disagreements or misunderstandings about how the system works are surfaced and resolved. This friction synchronizes people's mental models of the software.
  • The Risk of Agentic Automation: The primary value proposition of coding agents is the removal of this friction to accelerate development. The core risk is that in doing so, they eliminate the essential process that maintains and updates the team's shared understanding, leading to a decay in the codebase's conceptual integrity over time.
What's new
The idea that communication overhead is crucial to software quality is not new (see Conway's Law). What is novel is the application of this principle as a direct critique of the emerging paradigm of autonomous AI coding agents. It reframes the 'slowness' and 'friction' of human collaboration not as a bug to be optimized away, but as a critical feature for maintaining system coherence, which agents are currently designed to bypass.
Limitations
This is a conceptual argument and a high-level warning, not an empirical study. It identifies a potential failure mode for agentic engineering but does not provide data on its occurrence or specific, tested architectural patterns to mitigate it.
The take

This is a profound and necessary warning for anyone building or deploying coding agents. The industry's obsession with velocity and eliminating 'friction' risks creating a new, more insidious form of technical debt: conceptual decay. If agents can silently and rapidly alter code across boundaries without forcing human discussion, the shared map of the system in developers' heads will become outdated, leading to chaos. The challenge isn't just to make agents write code faster, but to design agentic workflows that preserve or simulate this 'synchronizing friction'—perhaps by forcing agents to articulate design rationales, flag cross-boundary changes for mandatory human review, or update documentation as a primary task.

Don't read this site daily. Get it in your inbox.

The daily brief and Sunday deep dive — distilled, scored, and opinionated. For builders only.