Skip to content
OTFotf
All posts

AI coding boosts writing but shipping is still the bottleneck

D
DaveAuthor
7 min read
AI coding boosts writing but shipping is still the bottleneck

Generative AI is writing a staggering share of the world's software — yet total software output, measured in code shipped and real products delivered, has barely budged. The paradox is not academic: as AI coding tools race ahead, the aggregate productivity effects have become a top concern for engineering leaders and hands-on developers. Large-scale studies of GitHub activity now let us see where the gains land — and where they stall. The takeaway is promising and sobering at once: AI makes individual coding tasks much faster, but bottlenecks in review, integration, and release mean the leap from raw code written to working software remains stubbornly human.

Code writing is up; code shipped is not

AI coding tools enable dramatic gains in code-writing activity, but the translation to end-to-end productivity is smaller than press releases suggest. Experimental studies report double-digit speed-ups on software development tasks — an engineer with the right tool can finish a coding assignment in hours, not days. Tool-level adoption data shows every generation of AI tool boosting coding activity on a measurable scale: push frequency, lines changed, and pull requests opened all climb where AI is used. (Quantitative findings in this article are reported from secondary coverage of a 2024 CEPR study of GitHub activity; I could not reach the primary paper, so treat exact figures as the study's claims, not independently verified data.)

But the data makes a painful distinction clear: writing code is only the first mile. Aggregate productivity gains look much more muted when measured by code reviewed, merged, or shipped to production. Most of the acceleration is isolated at the code-writing stage. Final output — the code that ships, the features that reach users — increases only modestly. The jump in code written outpaces the jump in code shipped. Real, but no panacea for throughput.

Each tool generation writes more — shipping still gates

Think of AI coding tools in three generations: first, simple inline completions; second, generative snippets and copilot-style agents; third, integrated systems that handle larger chunks, refactors, and code transformations. With every step, code-writing activity surges — more PRs, more lines, faster iteration. The gain from first- to second-generation tools is notably higher than the status quo; the leap to the third is higher still.

But diminishing returns set in hard as you move from writing to integrating, testing, and shipping. The constraint is not just the tool's ability to generate code — it is everything downstream that makes software work at scale. Integration conflicts, human review, test coverage, and deployment delays become proportionally more salient as the raw code-writing bottleneck narrows. Activity gains compound; final output does not follow at the same multiple. Task-level performance shoots up with each generation, but aggregate software productivity does not. Put simply: AI is an accelerant for writing, not for shipping.

11 production screens. Login, database, payments — all wired.

The SaaS Dashboard Kit ships everything already connected. Nothing to set up. Live demo at saas.otf-kit.dev.

See the live demo

Why more code written does not equal more software

Human bottlenecks at critical stages mean more AI-written code does not equal more shipped software. The core obstacle is the bottleneck effect — economist Michael Kremer's 1993 "O-ring" theory holds that production with interdependent stages moves at the pace of its slowest link. Real-world production involves many such stages. If AI speeds up only some, the slowest — usually review, integration, or approval — sets the ceiling.

The reported findings are blunt: code review, testing, integration, and release are still mostly human, with tooling for these stages lagging behind code-writing assistants. Each new AI-written PR creates more review load and more integration complexity. More suggestions mean more human sorting, analysis, and triage. Real gates exist for this: GitHub's push protection, for example, blocks secret-bearing commits before they reach the repo — the kind of downstream automation that has to absorb whatever the generator produces. Our ship-to-production checklist makes the same point as a process: generation without gates is just faster backlog.

Scarce user attention adds a second-order constraint — not every feature or fix, no matter how fast it is coded, is valuable to end users. Output stays bound by human judgment, business strategy, and product-market fit, none of which can be brute-forced by generating more code.

This is the Solow Paradox, version 2.0. Forty years after Robert Solow quipped, "You can see the computer age everywhere but in the productivity statistics," the same ghosting is visible with AI in software. As Wikipedia's summary of the paradox notes, the term was coined by Erik Brynjolfsson in a 1993 paper inspired by that quip — and the debate it started about measurement versus reality is exactly the debate AI coding needs now.

How to get productivity out of AI coding tools today

The winners use AI not just for writing, but for a disciplined flow from pull request to production. Maximal gain requires combining generated code with solid automation and human-in-the-loop practices downstream.

First, treat AI as a co-pilot, not an autopilot. Generate aggressively for rapid prototyping, spikes, and low-risk boilerplate — then pipe every PR through automated linting, static analysis, and test suites. Do not trust; verify. Configure CI to flag integration issues before they reach review, and pair AI assistance with rules-based reviewers or selective human gating so the most complex or risky changes always get flagged. The GitHub docs on blocking secrets pre-merge show what a gate the agent cannot route around looks like.

Second, invest in automated release and deployment pipelines. Let AI take on tedious merge chores like trivial conflict resolution, but keep release decisions closely guarded. Use generative AI to draft or update tests, but require human signoff for final merges.

A practical flow looks like this (illustrative commands, adapt to your toolchain):

# Step 1: Write code with an AI assistant
git add .
git commit -m "AI: implement feature X"

# Step 2: Open PR, auto-run static analysis and tests
gh pr create --title "Add feature X" --body "AI-generated, review needed"

# Step 3: Require all checks to pass before merging
gh pr checks --watch

# Step 4: Merge and auto-deploy approved PRs
gh pr merge --auto --rebase

Treat the review, test, and deploy steps as inviolable. The gains compound only when the bottlenecks are addressed.

What forecasts say — and why they diverge

Forecasts for AI's aggregate impact on software development diverge wildly. Optimists project percentage-point boosts in national productivity, betting compounding software efficiency yields more products, faster. Skeptics find net effects modest and often lost in statistical noise.

The divergence is not just academic. It reflects the bottleneck hypothesis: if AI accelerates only writing while review and deployment stay human-driven, growth is bounded. Forecasts depend critically on which part of the pipeline gets AI-enhanced next. If review, test, and release automation meaningfully catch up, expectations reset sharply higher. Until then, plan for incremental improvement and measure outcomes across the whole lifecycle — not just code written. For the ownership side of the same argument, see own your code or rent a platform.

Shipping is harder than writing — and that will not change soon

AI coding tools have slashed the effort needed to write code and close simple tickets. But shipping software is still a marathon of review, integration, and human judgment. The gains are gated by lasting bottlenecks, not just by model improvements. Until more of the pipeline is automated, expect spectacular demos but incremental throughput. The teams that win will pair AI writing with solid review and deploy automation — and measure themselves by code shipped, not code written.

Start from a codebase built to be shipped, not just written: otf-kit.dev/templates.

Sources

  • Wikipedia. "Productivity paradox." https://en.wikipedia.org/wiki/Productivity_paradox — verified live; Solow's "computer age everywhere but in the productivity statistics" quip and Brynjolfsson's 1993 coinage.
  • GitHub. "About push protection." https://docs.github.com/en/code-security/secret-scanning/introduction/about-push-protection — verified live; blocking secrets before they reach the repo, the downstream-gate model.
  • Kremer, M. "The O-Ring Theory of Economic Development." Quarterly Journal of Economics, 1993 — conceptual reference for the bottleneck framing (no URL cited; textbook result).
  • CEPR (2024) GitHub-activity study — quantitative findings above are reported from secondary coverage; the primary paper was unreachable at retrofit time, so exact figures are the study's claims, not independently verified data. Trimmed to qualitative findings where verification failed.
ai-toolsagentsbackend
OTF SaaS Dashboard Kit

Ship the product, not the setup.

  • 11 production screens — auth, billing, team, analytics, settings
  • Real database, payments, and login — all wired on day 1
  • AI configs pre-tuned so your agent extends instead of regenerates