with-agents

State of Agentic Coding - Series

Testing, Architecture, and the Limits of Agent Productivity

Armin Ronacher and Ben Vinegar track agentic coding through monthly conversations about models, harnesses, software quality, open source, infrastructure, economics, and the changing role of developers. Episode 11 brings in Geoff Huntley to discuss durable agent execution, modifying running software through an LLM, the difficulty of inspecting ad hoc tool code, and experiments made affordable by subscription pricing.

Armin Ronacher Episode 10 2 of 11
Episodes Browse 11 summaries 2 of 11

Armin Ronacher and Ben Vinegar discuss model economics, coding agents moving into chat and ticket systems, and why generating more code does not necessarily produce better software. Their strongest contrast is practical: Ben describes extensive automated checks for Hunk, while Armin emphasizes the cost of tests, saying no to features, and understanding the code a team ships.

Key points

  • Model access and price shape tool choice alongside capability. 17:49–25:32(opens in a new tab) and 27:44–44:53(opens in a new tab): the hosts discuss provider relationships, default models, and subscription subsidies. An individual with several subscriptions can switch models more freely than an employee whose company has fixed a provider and budget. They explicitly caution that model preferences visible on social media may not represent the wider industry; this is not market-share evidence.
  • Cloud agents change where work starts. 44:53–55:09(opens in a new tab): agents embedded in Slack or a ticket tracker can investigate work without requiring a separate editor session. Ben describes Devin proactively picking up conversational context rather than waiting for an explicit assignment. The hosts see many new products as additional interfaces to coding agents, not necessarily new categories of useful software; proactive work also consumes tokens before a user explicitly requests it.
  • Open-source hosting has an economic dependency beyond Git. 56:14–1:03:18(opens in a new tab): the hosts distinguish paid enterprise hosting from public repositories subsidized by that business. They worry that fragmentation and divergent AI-contribution policies could make free, durable public hosting harder to sustain. This is their concern about the ecosystem, not a verified prediction that repositories will disappear.
  • Coordinate overlapping work before parallelizing it. 1:04:05–1:07:55(opens in a new tab): Ben describes asking an agent which jobs are likely to conflict, using stacked pull requests for dependent changes and separate work for independent ones. He reports less rebasing and more useful output. Armin does not report the same recent productivity gains: maintaining his desired quality bar remains the constraint, especially in team work rather than side projects.
  • Automated checks can protect a part-time project, but they have a cost. 1:07:55–1:13:41(opens in a new tab): Ben describes Hunk's pseudo-terminal integration tests, performance measurements that block releases on material regressions, and scripted installation/update scenarios in Firecracker VMs. His goal is to avoid spending scarce project time repairing regressions. Armin says Pi is removing tests that have become too burdensome to run and resists automatically accepting features just because agents can build them. Neither account establishes that more tests—or fewer tests—is universally better.
  • Passing tests does not settle whether a design is sound. 1:14:46–1:17:27(opens in a new tab) and 1:23:35–1:30:40(opens in a new tab): Ben accepts some incompletely understood changes behind quality gates, then learns through review and refactoring. Armin remains uncomfortable with that boundary. Ben's attempt to turn an editor command into a general extension initially produced a narrowly named hook; Armin describes individually plausible designs joined by a shim that made them function while undermining the intended architecture. Both examples require inspecting the implementation, not trusting the agent's claim that it works.
  • Architectural constraints help, but the larger programming-model problem is unsolved. 1:31:29–1:36:46(opens in a new tab): Ben experiments with cyclomatic-complexity checks and dependency-cruiser rules that prevent imports from breaking intended module boundaries. He imagines composing constrained building blocks. Armin argues that shared state makes this much harder than connecting isolated components: constrain too much and the system becomes useless; allow too much and an agent can violate the design. They offer an open problem, not a finished agent-friendly language.
  • Measure outcomes rather than token spend or lines added. 1:37:49–1:40:52(opens in a new tab): the hosts worry that teams can generate more code and features without comparable gains in the results the organization values. Armin attributes part of this to unnecessary complexity and difficulty using agents well in teams. These are practitioner observations and hypotheses, not a controlled productivity study.

Practical interpretation

Editorial synthesis: separate functional checks from architecture review. Automate checks against regressions you cannot afford, keep their running cost manageable, and inspect whether successful implementations preserve the intended interfaces and dependencies. Judge parallel agent work by useful, maintainable outcomes rather than how many jobs or tokens it consumes.

Full video: State of Agentic Coding #10 with Armin and Ben(opens in a new tab).

Search

Search field guides and resources across the site.

    Keyboard shortcuts

    Press ? to open this guide (usually Shift + /). Close it before using other site shortcuts.

    Show keyboard shortcuts
    ?
    Search site
    Ctrl + K
    Close the current dialog or menu
    Esc

    Site shortcuts are ignored while typing. Browser and extension shortcuts may take priority.