<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Paramanantham Harrison</title>
    <description>The latest articles on DEV Community by Paramanantham Harrison (@learnwithparam).</description>
    <link>https://dev.to/learnwithparam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F88511%2F8d37a0d4-33f0-41b6-b2ee-60256bbd2904.jpeg</url>
      <title>DEV Community: Paramanantham Harrison</title>
      <link>https://dev.to/learnwithparam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/learnwithparam"/>
    <language>en</language>
    <item>
      <title>Workflow or agent: who decides what runs next</title>
      <dc:creator>Paramanantham Harrison</dc:creator>
      <pubDate>Tue, 13 Oct 2026 19:20:46 +0000</pubDate>
      <link>https://dev.to/learnwithparam/workflow-or-agent-who-decides-what-runs-next-10jj</link>
      <guid>https://dev.to/learnwithparam/workflow-or-agent-who-decides-what-runs-next-10jj</guid>
      <description>&lt;p&gt;When a team shows me an AI feature that is slow, expensive or unpredictable, the cause is rarely the model. It is a decision made in the first hour and never revisited: workflow or agent, and if agent, one or several.&lt;/p&gt;

&lt;p&gt;Whoever decides what runs next, your code or the model, sets what the system costs, how it fails and how you debug it. That is the argument of this issue, and the evidence for it comes from the teams who build agents for a living.&lt;/p&gt;

&lt;p&gt;If your code decides, you have a workflow. If the model decides, you have an agent. If one model hands work to other models, you have a multi-agent system. Each one is a different bill, a different kind of failure and a different way to debug.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we know
&lt;/h2&gt;

&lt;p&gt;We read the primary write-ups from teams that build agents for a living, Anthropic, Cognition and Sierra, plus a peer-reviewed study of multi-agent failures, and quote each number in the sentence its source states it in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make the workflow your default and let the agent earn its place
&lt;/h2&gt;

&lt;p&gt;Anthropic draws the line in two sentences. Workflows are systems where models and tools are orchestrated through predefined code paths &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;. Agents are systems where the model directs its own process and tool use &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;. The line is not about how clever the model is; it is about who holds the steering wheel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A support ticket, handled as a workflow&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Classify the ticket&lt;/strong&gt;: One model call labels it billing, bug or account&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Route by the label&lt;/strong&gt;: A plain switch picks the next step, not the model&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Draft the reply&lt;/strong&gt;: One model call writes it from the account's history&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Approve and send&lt;/strong&gt;: A person reads the draft before it goes out&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every arrow in that track is code you wrote. You can unit test it, retry a single step and explain a bad reply to an auditor. The model does real work inside two of the boxes, but it never decides which box comes next.&lt;/p&gt;

&lt;p&gt;Anthropic's advice is to find the simplest solution possible and only increase complexity when needed &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;. Their observation from customer work is that the most successful implementations use simple, composable patterns rather than complex frameworks &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;. A framework that hides the loop makes it easy to hand the model a decision you never meant to give it.&lt;/p&gt;

&lt;p&gt;Most business automation belongs here: triaging an invoice, summarising a ticket, drafting a reply for approval, enriching a lead. The path is known before the request arrives, so there is nothing for a model to decide about the order of steps. Give it the judgement inside a step, and keep the order in code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every decision you hand the model is paid for in tokens
&lt;/h2&gt;

&lt;p&gt;Anthropic measured what its own research feature spends. Agents typically use about 4× more tokens than chat, and multi-agent systems about 15× more &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;. Each extra decision is another call that rereads the context so far.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tokens used, compared with one chat exchange&lt;/strong&gt; &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A chat exchange: baseline&lt;/li&gt;
&lt;li&gt;  A single agent: 4×&lt;/li&gt;
&lt;li&gt;  A multi-agent system: 15×&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That spend buys something. In the same study, token usage by itself explained 80% of the variance in how well the system did &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;. More tokens meant more searching and better answers, on a research task where breadth is the whole point.&lt;/p&gt;

&lt;p&gt;The trade is stated plainly: agentic systems often trade latency and cost for better task performance, and you should consider when this tradeoff makes sense &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;. For a ticket router that runs ten thousand times a day, it rarely does. For a research question an analyst asks once, it often does.&lt;/p&gt;

&lt;p&gt;So price one request before you build. Count the model calls on the happy path, multiply by the context each one carries, and compare that with what the task is worth. If you cannot write that figure down, you are not ready to pick an architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  An agent that succeeds once has not shown it will succeed twice
&lt;/h2&gt;

&lt;p&gt;Sierra built a benchmark of support conversations with simulated customers, real tools and real policies. All 12 agents they tested had difficulty, and even the best one stayed under 50% average success &lt;a href="https://sierra.ai/blog/benchmarking-ai-agents" rel="noopener noreferrer"&gt;[3]&lt;/a&gt;. These were not toy tasks; they were the returns and booking changes a support team handles every day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;60%&lt;/strong&gt; drop in the best agent's score when the same retail task had to succeed in eight tries instead of one. &lt;a href="https://sierra.ai/blog/benchmarking-ai-agents" rel="noopener noreferrer"&gt;[3]&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That drop is the number to worry about. The best agent fell to about 25% when the same retail task had to succeed on all eight tries &lt;a href="https://sierra.ai/blog/benchmarking-ai-agents" rel="noopener noreferrer"&gt;[3]&lt;/a&gt;. A workflow that works on Monday works on Tuesday. An agent that works on Monday has rolled the dice once.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;At Sierra, our experience in enabling real-world user-facing conversational agents has made one thing extremely clear: a robust measurement of agent performance and reliability is critical to their successful deployment.&lt;/p&gt;

&lt;p&gt;Karthik Narasimhan, Head of research, Sierra &lt;a href="https://sierra.ai/blog/benchmarking-ai-agents" rel="noopener noreferrer"&gt;[3]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Errors also compound. Anthropic notes that minor issues for traditional software can derail agents entirely, because each step builds on the state the last one left &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;. One wrong tool result early in a run becomes the premise for everything after it.&lt;/p&gt;

&lt;p&gt;The fix is not a better prompt. It is a habit: log every trace from the first day, read them, and turn real failures into test cases. Hamel Husain, who has helped many teams ship products built on language models, names the cause of failure without hedging &lt;a href="https://hamel.dev/blog/posts/evals/" rel="noopener noreferrer"&gt;[4]&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I’ve found that unsuccessful products almost always share a common root cause: a failure to create robust evaluation systems.&lt;/p&gt;

&lt;p&gt;Hamel Husain, AI consultant and educator, Parlance Labs &lt;a href="https://hamel.dev/blog/posts/evals/" rel="noopener noreferrer"&gt;[4]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A second agent pays for itself only when the work splits cleanly
&lt;/h2&gt;

&lt;p&gt;Multi-agent systems do win under the right conditions. Anthropic's multi-agent setup beat a single agent by 90.2% on its internal research eval &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;. Research splits well: many independent searches, each returning a short summary to a lead agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;90.2%&lt;/strong&gt; better than a single agent on Anthropic's internal research eval, where subagents search in parallel. &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The same team is clear about where it does not hold. Domains that require all agents to share the same context, or involve many dependencies between agents, are not a good fit today &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;. Most coding tasks have fewer truly parallel parts than research &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;[2]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cognition, which builds a coding agent, reached the same conclusion from the other side. Its principle is that actions carry implicit decisions, and conflicting decisions carry bad results &lt;a href="https://cognition.com/blog/dont-build-multi-agents" rel="noopener noreferrer"&gt;[5]&lt;/a&gt;. The simplest way to keep decisions consistent is one single-threaded agent whose context is continuous &lt;a href="https://cognition.com/blog/dont-build-multi-agents" rel="noopener noreferrer"&gt;[5]&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;While I’m optimistic about the long-term possibilities of agents collaborating with one another, it is evident that in 2025, running multiple agents in collaboration only results in fragile systems.&lt;/p&gt;

&lt;p&gt;Walden Yan, Co-founder, Cognition &lt;a href="https://cognition.com/blog/dont-build-multi-agents" rel="noopener noreferrer"&gt;[5]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A Berkeley-led team annotated more than 1600 traces across 7 multi-agent frameworks &lt;a href="https://arxiv.org/abs/2503.13657" rel="noopener noreferrer"&gt;[6]&lt;/a&gt; and found 14 distinct ways they fail &lt;a href="https://arxiv.org/abs/2503.13657" rel="noopener noreferrer"&gt;[6]&lt;/a&gt;. Their summary is blunt: despite the enthusiasm, gains on popular benchmarks are often minimal &lt;a href="https://arxiv.org/abs/2503.13657" rel="noopener noreferrer"&gt;[6]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A useful test before you add an agent: write down what each one owns, what it hands back and what it never sees. If you cannot, you have one agent with extra steps and a larger bill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Control is the design decision, and the model is a detail
&lt;/h2&gt;

&lt;p&gt;Notice what none of these sources argue about: which model to use. They argue about control. Anthropic reserves agents for open-ended problems where it is difficult or impossible to predict the required number of steps, and where you cannot hardcode a fixed path &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That is a test you can run on a whiteboard: list the steps. If you can draw them, write them in code and call the model inside the boxes. If you cannot, hand the model the wheel and pay for traces, evals and a person approving anything that sends, pays or deletes.&lt;/p&gt;

&lt;p&gt;The teams I see struggle usually got this backwards. They started with a team of agents because it looked like good engineering, then spent a month debugging handoffs. Start with the workflow, measure it, and let the evidence promote it to an agent one decision at a time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do on Monday
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Write down who decides&lt;/strong&gt; For your next AI feature, write one line per step saying whether your code, the model or a supervisor model picks what runs next.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Build the workflow first&lt;/strong&gt; Ship the version where code holds the order, and move a decision to the model only when a real case shows the fixed path cannot handle it.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Price one request&lt;/strong&gt; Estimate the model calls and context per run before you build, then measure it on real traffic and compare.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Rerun the same task&lt;/strong&gt; Run each test case several times and count how often it succeeds on every run, not on one.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Keep a person on sends&lt;/strong&gt; Anything that sends, pays or deletes waits for a human approval, whatever decides the steps before it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Build it in the lab&lt;/p&gt;

&lt;p&gt;For the feature you are building now, who decides what runs next: your code or the model?&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;Anthropic, Building effective agents&lt;/a&gt; (2024)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.anthropic.com/engineering/multi-agent-research-system" rel="noopener noreferrer"&gt;Anthropic, How we built our multi-agent research system&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://sierra.ai/blog/benchmarking-ai-agents" rel="noopener noreferrer"&gt;Sierra, τ-Bench: Benchmarking AI agents for the real-world&lt;/a&gt; (2024)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://hamel.dev/blog/posts/evals/" rel="noopener noreferrer"&gt;Hamel Husain, Your AI Product Needs Evals&lt;/a&gt; (2024)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://cognition.com/blog/dont-build-multi-agents" rel="noopener noreferrer"&gt;Cognition, Don’t Build Multi-Agents&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://arxiv.org/abs/2503.13657" rel="noopener noreferrer"&gt;Cemri et al., Why Do Multi-Agent LLM Systems Fail?&lt;/a&gt; (2025)&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.learnwithparam.com/newsletter/p/who-decides-what-runs-next" rel="noopener noreferrer"&gt;learnwithparam.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>AI coding costs land in review, not on the invoice</title>
      <dc:creator>Paramanantham Harrison</dc:creator>
      <pubDate>Tue, 13 Oct 2026 18:36:18 +0000</pubDate>
      <link>https://dev.to/kaasteam/ai-coding-costs-land-in-review-not-on-the-invoice-59nh</link>
      <guid>https://dev.to/kaasteam/ai-coding-costs-land-in-review-not-on-the-invoice-59nh</guid>
      <description>&lt;p&gt;Your AI coding costs keep climbing, and talk of usage pricing makes next year's number harder to guess. Engineering leaders keep asking two things: will this end up costing as much as an engineer, and what are we getting for it?&lt;/p&gt;

&lt;p&gt;Faros AI's 2025 telemetry study found that teams with high AI adoption merged 98% more pull requests, while PR review time rose 91% &lt;a href="https://www.faros.ai/blog/ai-software-engineering" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The AI coding bill is a small share of an engineer's pay; what decides the return is review, and without strong tests and fast feedback, more code turns into instability. To show where the money goes, we follow one change at Acme Inc: an agent writes "retry failed card payments from a queue" in an afternoon.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we know
&lt;/h2&gt;

&lt;p&gt;We read vendor telemetry studies, DORA's survey, three field experiments and practitioner surveys, kept only figures we could quote word for word from the source, and name each vendor that sells measurement or review tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI coding bill is still a small share of an engineer's pay
&lt;/h2&gt;

&lt;p&gt;Per engineer, the AI coding bill is small, though the invoice is where most of the worry sits. Anthropic's figures for enterprise use of its coding agent &lt;a href="https://code.claude.com/docs/en/costs" rel="noopener noreferrer"&gt;[2]&lt;/a&gt; and DX's all-in estimate of seat plus token spend &lt;a href="https://getdx.com/blog/ai-coding-assistant-pricing/" rel="noopener noreferrer"&gt;[3]&lt;/a&gt; both come to a modest monthly sum per engineer.&lt;/p&gt;

&lt;p&gt;Levels.fyi's 2025 report puts a US software engineer's total yearly pay at about 226 thousand dollars &lt;a href="https://www.levels.fyi/2025/" rel="noopener noreferrer"&gt;[4]&lt;/a&gt;. Against that, a year at the top of the vendor's average range is a little over one percent, and a year at the top of DX's range about three percent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A year of AI coding spend per engineer, out of each dollar a US engineer is paid&lt;/strong&gt; &lt;a href="https://www.levels.fyi/2025/" rel="noopener noreferrer"&gt;[4]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Anthropic average, upper end: just over one cent&lt;/li&gt;
&lt;li&gt;  DX all-in estimate, upper end: about three cents&lt;/li&gt;
&lt;li&gt;  The engineer: the whole dollar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is our arithmetic on total pay rather than loaded cost, so the true share is lower still. The vendor figure is an aggregate with no sample size, so treat both shares as rough; even rough, the bill is nowhere near the cost of the person.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Right now, we're not sweating the costs because we're trying to evolve best practices for the tools, but that has resulted in some devs really blowing through budget, so we may start instituting caps on spending.&lt;/p&gt;

&lt;p&gt;Anonymous respondent, CTO, Small US company &lt;a href="https://newsletter.pragmaticengineer.com/p/the-impact-of-ai-on-software-engineers-2026" rel="noopener noreferrer"&gt;[5]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Caps may come, and a few heavy users can surprise you. At Acme, though, the token line for the payment-retry change is a rounding error on the month's invoice. On our arithmetic over a full working year, a whole active day of agent use at the vendor's average &lt;a href="https://code.claude.com/docs/en/costs" rel="noopener noreferrer"&gt;[2]&lt;/a&gt; costs less than one hour of the engineer's pay at Levels.fyi's figure &lt;a href="https://www.levels.fyi/2025/" rel="noopener noreferrer"&gt;[4]&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  More code arrives, but company delivery often does not move
&lt;/h2&gt;

&lt;p&gt;The bill buys more code, but the evidence that it moves company delivery is thinner than the dashboards suggest. In a telemetry study of over ten thousand developers, Faros AI found that gains in team behavior do not scale when aggregated to the company &lt;a href="https://www.faros.ai/blog/ai-software-engineering" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;. Across more than 400 organizations, DX found a median PR throughput gain of 7.76% &lt;a href="https://getdx.com/blog/ai-coding-assistant-pricing/" rel="noopener noreferrer"&gt;[3]&lt;/a&gt;: a real gain, and a modest one.&lt;/p&gt;

&lt;p&gt;LinearB's 2026 benchmarks point to wasted output: AI-generated pull requests are accepted far less often than manual ones &lt;a href="https://linearb.io/blog/engineering-benchmarks-report" rel="noopener noreferrer"&gt;[6]&lt;/a&gt;. Code that never merges costs review time and ships nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;32.7%&lt;/strong&gt; of AI-generated pull requests are accepted, against &lt;strong&gt;84.4%&lt;/strong&gt; of manual pull requests are. &lt;a href="https://linearb.io/blog/engineering-benchmarks-report" rel="noopener noreferrer"&gt;[6]&lt;/a&gt; LinearB benchmarks&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's hard to keep our CFO supportive about investing in these tools because the productivity benefits have proven difficult to conclusively prove.&lt;/p&gt;

&lt;p&gt;Anonymous respondent, CTO, Sports-tech company &lt;a href="https://newsletter.pragmaticengineer.com/p/the-impact-of-ai-on-software-engineers-2026" rel="noopener noreferrer"&gt;[5]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not every study agrees. DORA's 2025 survey finds a positive link between AI adoption and delivery throughput &lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report" rel="noopener noreferrer"&gt;[7]&lt;/a&gt;; the section on tests below covers what DORA says the return depends on.&lt;/p&gt;

&lt;p&gt;Back at Acme, the agent opens the payment-retry PR the same afternoon, and the dashboard counts a pull request, though nothing has shipped yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  The extra output piles up in review, on your senior engineers
&lt;/h2&gt;

&lt;p&gt;The extra output stalls in review. In Faros AI's data, PRs grew 154% larger on average &lt;a href="https://www.faros.ai/blog/ai-software-engineering" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;, and review time rose with them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High-adoption teams against low, Faros AI&lt;/strong&gt; &lt;a href="https://www.faros.ai/blog/ai-software-engineering" rel="noopener noreferrer"&gt;[1]&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Pull requests merged: +98%&lt;/li&gt;
&lt;li&gt;  PR review time: +91%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In LinearB's separate data, AI pull requests wait 4.6x longer before anyone picks them up, though they are reviewed 2x faster once someone does &lt;a href="https://linearb.io/blog/engineering-benchmarks-report" rel="noopener noreferrer"&gt;[6]&lt;/a&gt;. Addy Osmani, who spent over 14 years leading developer experience at Google and became a director at Google Cloud AI &lt;a href="https://addyosmani.com/bio/" rel="noopener noreferrer"&gt;[8]&lt;/a&gt;, named the limit in a January 2026 essay.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When output increases faster than verification capacity, review becomes the rate limiter.&lt;/p&gt;

&lt;p&gt;Addy Osmani, former director, Google Cloud AI &lt;a href="https://addyo.substack.com/p/code-review-in-the-age-of-ai" rel="noopener noreferrer"&gt;[9]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;PR volume rises at companies your size too: Synthesia's 118 engineers went all in on AI coding tools in November 2025 &lt;a href="https://spectrum.ieee.org/ai-code-review-software-engineers" rel="noopener noreferrer"&gt;[10]&lt;/a&gt;. Its CTO, Peter Hill, told IEEE Spectrum that pull requests had risen 120 percent year over year &lt;a href="https://spectrum.ieee.org/ai-code-review-software-engineers" rel="noopener noreferrer"&gt;[10]&lt;/a&gt;. He gave the volume entering review but not the hours it took.&lt;/p&gt;

&lt;p&gt;Faros AI's head of product marketing, Naomi Lurie, argues that senior engineers absorb the review load because they catch what AI gets subtly wrong &lt;a href="https://www.faros.ai/blog/ai-code-quality-senior-engineer-review-burden" rel="noopener noreferrer"&gt;[11]&lt;/a&gt;. Cui and colleagues recorded seniority in the Microsoft experiment. They found the AI assistant significantly raised task completion for recent hires and juniors, but not for senior, long-tenured developers &lt;a href="https://economics.mit.edu/sites/default/files/inline-files/draft_copilot_experiments.pdf" rel="noopener noreferrer"&gt;[12]&lt;/a&gt;. If those PRs go to seniors for review, the juniors' extra output becomes the seniors' extra review; that step is our reading, not something either study measured.&lt;/p&gt;

&lt;p&gt;None of this is on the invoice, and no study we found prices it. Price it yourself: one hour of your staff engineer against the agent's whole token line. At Acme, the payment-retry PR is far larger than the change needed. It waits days, then lands on the one staff engineer who knows the payment flow, the same person whose juniors fill her queue.&lt;/p&gt;

&lt;h2&gt;
  
  
  More code merges unreviewed, and adoption tracks with less stable delivery
&lt;/h2&gt;

&lt;p&gt;Under high AI adoption, more pull requests merge with nobody looking, and DORA links adoption to less stable delivery. Faros AI's 2026 report found 31% more PRs merged with no review at all under high AI adoption &lt;a href="https://www.faros.ai/blog/ai-code-quality-senior-engineer-review-burden" rel="noopener noreferrer"&gt;[11]&lt;/a&gt;. Faros does not say whether that is a count of merges or a share of them. On our reading, each unreviewed merge can move cost from today's reviewer to whoever handles the next incident.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31%&lt;/strong&gt; more pull requests merged with no review at all. &lt;a href="https://www.faros.ai/blog/ai-code-quality-senior-engineer-review-burden" rel="noopener noreferrer"&gt;[11]&lt;/a&gt; Faros AI telemetry, high vs low AI adoption&lt;/p&gt;

&lt;p&gt;DORA's 2025 survey finds AI adoption still has a negative relationship with delivery stability &lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report" rel="noopener noreferrer"&gt;[7]&lt;/a&gt;. DORA reports the link, not its cause.&lt;/p&gt;

&lt;p&gt;GitClear's analysis of changed lines shows a longer trend: refactoring shrank over the years AI tools spread &lt;a href="https://www.gitclear.com/ai_assistant_code_quality_2025_research" rel="noopener noreferrer"&gt;[13]&lt;/a&gt;. The timing matches adoption, but GitClear does not show that AI caused it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;25%&lt;/strong&gt; of changed lines were refactoring in 2021, against &lt;strong&gt;Under 10%&lt;/strong&gt; were by 2024. &lt;a href="https://www.gitclear.com/ai_assistant_code_quality_2025_research" rel="noopener noreferrer"&gt;[13]&lt;/a&gt; GitClear, changed lines across many repos&lt;/p&gt;

&lt;p&gt;The evidence is mixed. Jellyfish, looking at bug tickets and reverts, found no significant relationship with AI adoption &lt;a href="https://jellyfish.co/blog/what-data-from-20-million-pull-requests-reveal-about-ai-transformation/" rel="noopener noreferrer"&gt;[14]&lt;/a&gt;. The studies measure different things in different ways, and we do not know why their results differ.&lt;/p&gt;

&lt;p&gt;At Acme, under deadline, the second review on the payment-retry PR is waved through. A retry loop double-charges a handful of customers on a Friday. The rework and the incident are part of what the change cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Without tests and fast feedback, more code turns into instability
&lt;/h2&gt;

&lt;p&gt;DORA's 2025 report says that without strong automated testing, mature version control and fast feedback loops, more change volume leads to instability &lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report" rel="noopener noreferrer"&gt;[7]&lt;/a&gt;. DORA draws that from its survey, not from a controlled trial.&lt;/p&gt;

&lt;p&gt;DORA adds that the greatest return comes from internal platforms, clear workflows and aligned teams rather than from the tools themselves &lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report" rel="noopener noreferrer"&gt;[7]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Jellyfish's Nicholas Arcolano runs research at a vendor that sells engineering measurement. In a talk on his firm's data, he compared teams by how their code is spread across repos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What’s really interesting is this highly distributed case. There’s essentially no correlation here between AI adoption and PR throughput. And actually the, the weak trend that does exist is actually slightly negative.&lt;/p&gt;

&lt;p&gt;Nicholas Arcolano, Head of Research, Jellyfish &lt;a href="https://jellyfish.co/blog/what-data-from-20-million-pull-requests-reveal-about-ai-transformation/" rel="noopener noreferrer"&gt;[14]&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Treat the size of any gain with care. Pooled field experiments at three companies found a 26.08% rise in completed tasks, with a standard error of 10.3%, so the true gain could be small &lt;a href="https://economics.mit.edu/sites/default/files/inline-files/draft_copilot_experiments.pdf" rel="noopener noreferrer"&gt;[12]&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Acme's payment-retry change, with review grown to fit&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Spec&lt;/strong&gt;: The engineer writes what the change must and must not do.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Agent writes&lt;/strong&gt;: The agent drafts the change and its tests against the spec.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Tests gate&lt;/strong&gt;: Nothing reaches a person until the tests pass.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Size check&lt;/strong&gt;: Oversized changes are split before review.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Review on a target&lt;/strong&gt;: A reviewer picks it up within the agreed pickup target.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Merge&lt;/strong&gt;: The change merges with its review hours logged.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Survives a month&lt;/strong&gt;: Not reverted or rewritten, so it counts as delivered.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So measure the return where it is decided. One vendor defines the unit as total fully loaded AI cost over a period, divided by the PRs that merged and survived. Survived means not reverted or substantially rewritten inside a churn window &lt;a href="https://getunblocked.com/blog/cost-per-merged-pr/" rel="noopener noreferrer"&gt;[15]&lt;/a&gt;. Put review hours inside that cost; our next post takes the metric apart.&lt;/p&gt;

&lt;p&gt;Acme puts a size limit and a test gate in front of review, and sets a pickup target for agent PRs. It starts dividing all AI cost, review hours included, by changes that merged and stayed merged. The payment-retry change now reaches its staff engineer small, tested and on time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code was never the scarce part of your team
&lt;/h2&gt;

&lt;p&gt;In a team of 20 to 150 engineers, the scarce part is the judgment of the few people who can say a change is safe. Our reading of the evidence is that every gain from cheaper code is capped by how fast that judgment can be applied. At Acme, the staff engineer who knows the payment flow was the limit before any agent arrived; the agent made the queue in front of her longer.&lt;/p&gt;

&lt;p&gt;AI made writing cheap and left verifying slow to reach, so the cost moved to the step nobody bills for. DORA's word for it is amplifier: AI magnifies the strengths of high performers and the dysfunctions of struggling teams &lt;a href="https://research.google/pubs/dora-2025-state-of-ai-assisted-software-development-report/" rel="noopener noreferrer"&gt;[16]&lt;/a&gt;. The evidence suggests that a team without good tests and small changes gets busier and less stable, and no faster.&lt;/p&gt;

&lt;p&gt;So the budget question is about how you design review and testing more than about seats and tokens. The invoice is the easiest part to read and the least useful part to manage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do on Monday
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Write down the share&lt;/strong&gt; Put last quarter's AI spend for each engineer beside your loaded pay. It is your baseline, and it is probably small.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Split the review clock&lt;/strong&gt; Pull review pickup time and time in review for the last month, AI-assisted PRs apart from the rest.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Gate before a person&lt;/strong&gt; Set a size limit and a pickup target for agent PRs, and make tests pass before anyone reviews.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Count reviews by name&lt;/strong&gt; Count the reviews each senior engineer did last month. If one name carries the load, spread it.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Start cost per merged change&lt;/strong&gt; All AI cost plus review hours, divided by changes that merged and were not reverted within a month.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What did your last merged change cost, counting the review?&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; &lt;a href="https://www.faros.ai/blog/ai-software-engineering" rel="noopener noreferrer"&gt;Faros AI, The AI Productivity Paradox Report&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://code.claude.com/docs/en/costs" rel="noopener noreferrer"&gt;Anthropic, Claude Code docs: Manage costs effectively&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://getdx.com/blog/ai-coding-assistant-pricing/" rel="noopener noreferrer"&gt;DX, AI coding assistant pricing and ROI guide (2026), Taylor Bruneaux&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.levels.fyi/2025/" rel="noopener noreferrer"&gt;Levels.fyi, 2025 Annual Report&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://newsletter.pragmaticengineer.com/p/the-impact-of-ai-on-software-engineers-2026" rel="noopener noreferrer"&gt;The Pragmatic Engineer, 'The impact of AI on software engineers in 2026' (Gergely Orosz, Elin Nilsson)&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://linearb.io/blog/engineering-benchmarks-report" rel="noopener noreferrer"&gt;LinearB, 2026 Software Engineering Benchmarks Report&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-the-2025-dora-report" rel="noopener noreferrer"&gt;Google Cloud blog: Announcing the 2025 DORA State of AI-assisted Software Development report&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://addyosmani.com/bio/" rel="noopener noreferrer"&gt;Addy Osmani, Biography (addyosmani.com)&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://addyo.substack.com/p/code-review-in-the-age-of-ai" rel="noopener noreferrer"&gt;Addy Osmani, Code Review in the Age of AI (Substack)&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://spectrum.ieee.org/ai-code-review-software-engineers" rel="noopener noreferrer"&gt;IEEE Spectrum, 'AI Slop Is Changing How Engineers Review Code' (Aaron Mok)&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.faros.ai/blog/ai-code-quality-senior-engineer-review-burden" rel="noopener noreferrer"&gt;Faros AI, How AI-Generated Code Is Increasing Code Review Burden&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://economics.mit.edu/sites/default/files/inline-files/draft_copilot_experiments.pdf" rel="noopener noreferrer"&gt;Cui et al.: The Effects of Generative AI on High-Skilled Work (three field experiments)&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.gitclear.com/ai_assistant_code_quality_2025_research" rel="noopener noreferrer"&gt;GitClear, AI Copilot Code Quality: 2025 Research&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://jellyfish.co/blog/what-data-from-20-million-pull-requests-reveal-about-ai-transformation/" rel="noopener noreferrer"&gt;Jellyfish: What Data from 20 Million Pull Requests Reveal About AI Transformation&lt;/a&gt; (2025)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://getunblocked.com/blog/cost-per-merged-pr/" rel="noopener noreferrer"&gt;Unblocked, Cost per Merged PR: The Unit Economics of AI Coding&lt;/a&gt; (2026)&lt;/li&gt;
&lt;li&gt; &lt;a href="https://research.google/pubs/dora-2025-state-of-ai-assisted-software-development-report/" rel="noopener noreferrer"&gt;Google Research: DORA 2025 State of AI-assisted Software Development Report&lt;/a&gt; (2025)&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://kaas.team/newsletter/p/ai-coding-costs" rel="noopener noreferrer"&gt;kaas.team&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>leadership</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
    <item>
      <title>Building a Software Factory Around Coding Agents</title>
      <dc:creator>Paramanantham Harrison</dc:creator>
      <pubDate>Thu, 17 Sep 2026 16:55:31 +0000</pubDate>
      <link>https://dev.to/learnwithparam/building-a-software-factory-around-coding-agents-4hk6</link>
      <guid>https://dev.to/learnwithparam/building-a-software-factory-around-coding-agents-4hk6</guid>
      <description>&lt;p&gt;Coding agents can write a surprising amount of code.&lt;/p&gt;

&lt;p&gt;But getting them to reliably work on a real codebase is a different problem.&lt;/p&gt;

&lt;p&gt;The mistake I see is treating the agent as the whole system.&lt;/p&gt;

&lt;p&gt;A better approach is to design the system around it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 6 layers
&lt;/h2&gt;

&lt;p&gt;I think about a Software Factory as six layers:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Boundary
&lt;/h3&gt;

&lt;p&gt;Define where the agent can work.&lt;/p&gt;

&lt;p&gt;This includes workspace isolation, permissions and sandbox boundaries.&lt;/p&gt;

&lt;p&gt;For example, an ephemeral Git worktree gives an agent its own workspace instead of letting multiple tasks collide in the same working tree.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Context
&lt;/h3&gt;

&lt;p&gt;Give the agent the context it actually needs.&lt;/p&gt;

&lt;p&gt;Instead of continuously growing a mega-prompt, route relevant repository knowledge, engineering rules and task-specific information to the agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Skills
&lt;/h3&gt;

&lt;p&gt;Separate reusable engineering workflows from individual prompts.&lt;/p&gt;

&lt;p&gt;A skill can describe how a particular type of engineering task should be performed and reused across many tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Execution
&lt;/h3&gt;

&lt;p&gt;Give agents a controlled environment for doing the work.&lt;/p&gt;

&lt;p&gt;This is where the execution harness becomes important. It can create the workspace, run the agent, execute commands and manage the task lifecycle.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Verification
&lt;/h3&gt;

&lt;p&gt;Don't rely on the agent to decide whether its own output is correct.&lt;/p&gt;

&lt;p&gt;Use automated checks such as static analysis, tests and holdout tests.&lt;/p&gt;

&lt;p&gt;One useful pattern is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Doer → Tester → Doer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent produces the change, an independent verification step checks it, and failures can feed another iteration.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Delivery
&lt;/h3&gt;

&lt;p&gt;The final output should fit into the engineering workflow.&lt;/p&gt;

&lt;p&gt;For me, that means getting from:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Issue → Agent → Isolated workspace → Verification → Pull Request → Human review&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The goal isn't to remove engineers from the process.&lt;/p&gt;

&lt;p&gt;It's to move engineers toward the parts where their judgment matters most.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this changes how we use coding agents
&lt;/h2&gt;

&lt;p&gt;Once you think in layers, a lot of agent problems become easier to reason about.&lt;/p&gt;

&lt;p&gt;Poor results aren't always a model problem.&lt;/p&gt;

&lt;p&gt;Sometimes the agent has the wrong context.&lt;/p&gt;

&lt;p&gt;Sometimes it has too much access.&lt;/p&gt;

&lt;p&gt;Sometimes there is no verification layer.&lt;/p&gt;

&lt;p&gt;Sometimes the execution environment is the problem.&lt;/p&gt;

&lt;p&gt;And sometimes the missing piece is simply a clear delivery boundary.&lt;/p&gt;

&lt;p&gt;That's what I've been exploring with the Software Factory approach.&lt;/p&gt;

&lt;p&gt;I'm running a &lt;strong&gt;free live series on Maven&lt;/strong&gt; covering the architecture, execution harness, automated verification and background coding agents.&lt;/p&gt;

&lt;p&gt;The first two sessions are already available:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design a Software Factory for Your Coding Agents&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://maven.com/p/d3588f/design-a-software-factory-for-your-coding-agents" rel="noopener noreferrer"&gt;https://maven.com/p/d3588f/design-a-software-factory-for-your-coding-agents&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build Your First Software Factory Execution Harness&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://maven.com/p/aa77d5/build-your-first-software-factory-execution-harness" rel="noopener noreferrer"&gt;https://maven.com/p/aa77d5/build-your-first-software-factory-execution-harness&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're already using coding agents on real projects, I'd love to hear how you're handling isolation, context and verification.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
