Four modes of developing with AI: A / B / B+ / C
The front door to the harness series: four development modes — Classic (A), AI-Assisted (B), Agent-Driven (B+), Agent-First (C). It's not a ladder but four distinct bets: one mode is optimal for one team and catastrophic for another on the same project. This recipe helps you pick a mode and answers the meta-question of how much AI a project even needs. For B+/C a harness is mandatory (it leads on to the Harness Engineering recipe); for A/B it's barely needed.
Not a ladder — four bets
| Mode | Who writes the code | Object of attention | Throughput |
|---|---|---|---|
| A — Classic | Human | Lines of code | Linear in headcount |
| B — AI-Assisted | Human, AI speeds it up | Lines + AI suggestions | 1.5–2× over linear |
| B+ — Agent-Driven | Agent | Task and solution | 2–3× · 2–3 threads |
| C — Agent-First | Agent | Agent's environment | Non-linear · 5–10 tasks |
Play with the modes: win / lose / break and the matrix
Four modes of developing with AI — A / B / B+ / C
It is not a ladder a team "moves forward" along. It is four different bets: four ways to win and four ways to break. One mode can be optimal for one team and catastrophic for another — on the very same project. Pick a mode, compare win / lose / break, then play with the summary matrix.
A transitional spot between B and C, but distinct enough to call its own mode. The agent writes the code; the human steers: unpacks the task, frames it, runs another task in another worktree in parallel, reviews at the MR level — not line by line, but not "checks passed → I merge" either.
"I don’t write code. I direct the agent." — it’s not about tools. It’s about shifting the object of attention: from lines of code to framing the task and checking the solution.
Three theses for the team
- 01Your value isn’t lines of code, it’s a well-framed task
The more effective person isn’t the faster typist but the one who frames more precisely and spots "that’s not it" faster. Those are different skills, and they’re trainable.
- 02The reflex "I’ll write it myself, it’s faster" is a trap
This particular function you’ll write in 5 minutes, the agent in 8. But while the agent works, you move a second task. By end of day the gap is 2–3×, not 1.5×. Each action is slower; total output is higher.
- 03Review is "was the task solved", not "does the code run"
The main mistake is reading the diff line by line and thinking "looks fine." The right question is "was what I asked done, at the right scale." Often the agent solves 1.5× more than needed, or 0.7×.
What it wins
Parallel worktrees give throughput unreachable in B. Yet the code is still legible — a newcomer reads it without a special agent-onboarding procedure.
In B a developer decides every 2 minutes. In B+ — once every 30–60 minutes, weightier ones. Less brain fatigue by end of day.
The critical difference from B: structural drift is caught mechanically by your stack’s barriers — import boundaries (dependency-cruiser / import-linter), strict types (strict TS / mypy), architecture rules (eslint-plugin-boundaries, FSD and analogues). The machine holds the architecture, not discipline.
Because the code stays human-readable, you can run B+ with any client — even NDA-strict, even regulated. No "90% of the code was written by AI" conversations with the client.
The capability collapse that threatens Mode C doesn’t happen in B+. Developers keep reading code, reviewing, understanding.
Skills written as a project description are portable. Swap the agent — most of the infrastructure keeps working.
What it loses
One person runs 2–3 parallel threads, not 7–10. The bottleneck is review bandwidth. The B+ vs C difference: "review every MR" vs "review at the ExecPlan level."
3.5 MRs a day from the agent — you can review properly. 10 a day — you can’t. Then you either decay to "glance-and-merge" or hit the ceiling.
A 7–25 hour autonomous ExecPlan is impossible in B+ — you can’t review intermediate steps at that volume.
In C, tests are written as a system-health signal, and a test-integrity barrier stops the agent from weakening or deleting them just to get a green run. In B+ tests are still written for a human to read; high coverage is a side effect, not a target (chasing the number is Goodhart).
A skill written for a human describes ideas. A skill for an agent describes operations. 70% of the potential value.
With 10+ client projects, the lack of a systematic health signal is a blind spot that keeps growing.
Where it can break
- 01Invisible drift to Mode C under load
As volume grows you’re naturally pulled to simplify review. "Linters green → merge without looking." That’s Mode C, but without the harness that makes Mode C safe. The most dangerous trajectory.
- 02One person’s ceiling
B+ works in the hands of a strong architect with repo-first discipline. That’s a personal skill, not a team mode. Rolling it out to other leads runs into the absence of their taste.
- 03The team stratifies
Those who master the agent-driven flow at your level grow. Those stuck in Mode B fall behind. Over 6–12 months a big gap opens inside the team.
- 04Mid-level capability rot
Mid-levels in B+ don’t write code — they also direct the agent, but never built the intuition for what well-structured code looks like. In 2 years they can direct and can’t write a function unaided.
- 05MRs get bigger
As agents get smarter their MRs grow. Soon you’ll look at an 800-line MR written in 2 hours and realize 5 minutes of review is a fiction.
Mode B+ is an underrated market position. Most teams are in B, or in a badly-built early C. B+ as a deliberate mode is rare. You can sell it to clients: AI-driven speed + human-readable code + architectural discipline.
Summary matrix: filter by category
| AClassic | BAI-Assisted | B+Agent-Driven | CAgent-First | |
|---|---|---|---|---|
| People & focus | ||||
| Who writes the code | A human | A human, AI speeds it up | The agent | The agent |
| Engineer’s object of attention | Lines of code | Lines + AI | Task and solution | The agent’s environment |
| Who makes architectural decisions | A human | A human | A human | Via ExecPlans, partly delegated |
| What counts as "good work" | Clean code | Fast delivery of clean code | Precise task framing, review | Designing the environment, long tasks |
| Speed & scale | ||||
| Team throughput | linear | 1.5–2× | 2–3× | non-linear |
| Parallel tasks per engineer | 1 | 1 | 2–3 | 5–10 |
| PRs/day per engineer | 0.5–1 | 1–2 | 2–3 | 3–5+ |
| Long-horizon tasks (>7h autonomous) | no | no | fragmented | yes |
| Replication across projects | no | no | partial | full |
| Cost | ||||
| Entry cost | zero | low | medium | high |
| Maintenance cost | high | medium | medium | medium on people, high on infra |
| Token spend per unit of work | 0× | ~0.5× | 3–5× | 8–15× |
| Vendor lock-in | none | medium | medium | deep |
| Quality & risk | ||||
| Code legibility for humans | maximal | high | high | medium/low |
| Guard against architectural drift | on discipline | on discipline | mechanical | mechanical + janitors |
| Role of tests | a human check | a human check | written for humans to read | health signal, never weakened (test-integrity) |
| Main risk | Seniors leave, falling behind | AI slop accumulates | Drift to C, capability rot | Vendor outage, capability collapse |
| Fit | ||||
| New-hire onboarding speed | Weeks–months | Weeks | Weeks | Days (if a harness exists) |
| NDA-strict clients | ideal | good | good | hard |
| Competitiveness 2026–2027 | falling | stable | rising | rising faster |
| Competitiveness 2030+ | low | in question | if it holds as a mode | depends on the LLM market |
| Typical team size | Any | Any | 5–20, the lead’s role matters | 3–50+ given a harness |
| Who it fits | NDA, regulated industries, small teams with no speed pressure | Teams early in the AI transition, projects with unpredictable architecture | Mature teams with a strong lead, outsourcing with diverse clients | Teams ready to restructure, with high volume of similar tasks |
Key takeaways
You don’t "move from A to B to B+ to C." Each mode is a standalone strategy with its own bets and failure modes. One mode can be optimal for one team and catastrophic for another.
Different projects in one company can run different modes at once. Internal pet projects — C. New open clients — B+. NDA-strict — A or B on local models. The point: segmentation is an explicit decision, not drift.
Most teams are in B (simple) or a badly-built early C (fast). B+ as a deliberate mode is rare. It sells better to NDA-strict and regulated clients than "90% of our code is AI."
You can’t live there long: either a step toward B+/C, or a soft decay into A under the weight of its own AI slop. You can’t stay in B without picking a side.
As the team grows, it’s naturally pulled to simplify review and trust the linters. That is Mode C, but without the infrastructure that makes Mode C safe. The most dangerous trajectory.
Not just you — everyone in B+ and C. There’s no universal answer. The point is to name the problem explicitly and have a deliberate program: reading-first, by-hand sandbox tasks, new roles, pair-programming with the agent and a senior.
Between "fully manual B+" and "fully automatic C" lies a working space where scripts gather data and drafts, and a human decides. It yields 80% of C’s benefits at 5% of the cost.
How much AI a project needs: the decision rule
| Mode | Harness needed? | What to set up |
|---|---|---|
| A — Classic | Barely | ADRs, ordinary linters |
| B — AI-Assisted | Barely | ADRs, Definition of Done, linters |
| B+ — Agent-Driven | Mandatory | Boundary barriers, strict types, pre-commit + CI |
| C — Agent-First | Mandatory (full) | Full harness: structural tests, skills, janitors |
B+ deeper: how not to fall into a bad C
Program against capability rot
'B+ Enhanced': what to take from C piecemeal
B+ Enhanced: ~30% of C at ~10% of cost
Per-project segmentation + where to go next
| Project type | Mode | Why |
|---|---|---|
| Internal pet projects | C — Agent-First | Risk is fine, capability collapse not critical |
| New open clients | B+ — Agent-Driven | Speed + human-readable code for the client |
| NDA-strict / regulated | A or B (local models) | Code never leaves for a third-party LLM |
Result
You understand that A / B / B+ / C is not a ladder but four bets with different failure modes, and you can pick a mode for your team and project. The key rule: who writes the code decides everything — for B+/C a harness is mandatory, for A/B ADRs + a Definition of Done + linters suffice. B+ is an undervalued position held together by a program against capability rot and the targeted 'B+ Enhanced' elements. Per-project segmentation is an explicit decision, not drift. If you're in B+/C, the next step is the 'Harness Engineering' recipe, where the mode choice unfolds into a concrete environment and a phased rollout.