Tools

How AI Reshapes the Software Lifecycle: Agents, Harnesses and Context Engineering

A new Google whitepaper, coauthored by Addy Osmani, reframes an agent as a model plus a harness and argues that most real-world improvements come from harness and context engineering rather than swapping models.

How AI Reshapes the Software Lifecycle: Agents, Harnesses and Context Engineering

Google recently published a Day 1 whitepaper titled "The New SDLC With Vibe Coding," coauthored by Addy Osmani, Shubham Saboo and Sokratis Kartakis. The paper reframes an agent as a model plus a harness — the surrounding instructions, tools, orchestration, sandboxes, hooks and observability — and argues that harness and context engineering drive most practical gains. It also examines verification, life-cycle shifts, and the economics of context and routing.

An agent is a model plus a harness

The paper’s central framing is concise: “An agent is a model plus a harness.” The model is one input; the harness includes instructions and rule files, tools and MCP servers, sandboxes, orchestration logic that spawns subagents and routes between models, deterministic hooks, and observability that detects drift. The authors give a rough split of about 10% model and 90% harness.

Concrete examples illustrate the point: on Terminal Bench 2.0 one team moved a coding agent from outside the top 30 into the top 5 by changing only the harness while keeping the same model. In a LangChain experiment, changing the system prompt, tools and middleware around a fixed model added 13.7 points on the same benchmark. The takeaway: when an agent misbehaves, debug the harness first; most failures are configuration issues.

Context engineering decides your bill

Within the harness, context engineering is the most important knob. The paper divides agent context into six types: instructions, knowledge, memory, examples, tools and guardrails. The critical architectural decision is what belongs to static versus dynamic context.

  • Static context (system instructions, rule files, global memory, core guardrails) is loaded every turn: reliable but expensive because it incurs cost on every call.
  • Dynamic context (skills that trigger on task match, tool results, documents pulled via RAG) is loaded on demand and only charges you for what a given task touches.

Getting this boundary wrong wastes tokens or loses safety rules. The recommended practice is to treat the boundary as an architectural decision: review it in a pull request and version it like code. The scalability trick is progressive disclosure: the agent sees minimal metadata at startup, loads full instructions on a match, and only fetches heavy reference material when needed. That allows one agent to carry dozens of skills while paying only for the active one.

Verification: the line between vibe coding and engineering

You can operate anywhere from vibe coding to agentic engineering with the same agent; what decides where you land is verification. Tests handle deterministic parts (given input → expected output). Evals measure non-deterministic behavior and split into output evaluation (is the final result correct?) and trajectory evaluation (was the path, tool calls and reasoning sound?). Both matter: a plausible-looking answer that skipped checks is more dangerous than an obviously wrong one.

A guiding line for leaders from the paper: set the bar at the eval, not the demo. A demo shows an agent can work once; an eval suite with a real rubric shows it works reliably.

How each phase changes

AI compresses the lifecycle unevenly. Implementation time can fall from weeks to hours; requirements, architecture and verification remain slower because they require judgment. That makes specification quality the bottleneck and moves verification into the middle of the workflow.

Phase-by-phase:

  • Requirements become interactive conversations that produce specs and first prototypes simultaneously: the agent drafts user stories, surfaces edge cases and turns descriptions into runnable artifacts quickly.
  • Architecture stays human-centric: trade-offs like consistency versus availability depend on business context the model cannot fully see; developers must make and document structural decisions.
  • Implementation brings both gains and costs: surveys report productivity improvements of 25–39%; a METR study found experienced developers going 19% slower on some tasks once checking and fixing time is included. The honest summary: AI turns implementation from writing into reviewing.
  • Testing and QA invert roles: tests and evals become the main way to tell the agent what “correct” means, forming a loop of benchmarking, clustering failures, fixing prompts or tools, regression checks and production monitoring.
  • Maintenance is underrated: agents can read, refactor and modernize code that was previously "too risky to touch," enabling migrations and cleanup that were once deferred.

The ceiling remains the "80% problem": agents quickly deliver the first roughly 80% of a feature, while the last 20% — edge cases and system seams — still needs human context.

Economics: context and routing are financial levers

For leaders, the key metric is total cost of ownership, not raw velocity. Past a certain crossover, vibe coding becomes 3×–10× more expensive per feature to run; agentic engineering costs more upfront (schemas, tests, structured context) but less per feature afterwards. The 3×–10× figure is illustrative, not a fixed constant.

The practical lesson: context engineering and model routing are levers you can use to control costs. You cannot shove a 100,000-token repo into every prompt and expect to scale. Route heavy reasoning tasks to large models and routine work (test generation, code review, CI checks) to smaller, cheaper models to keep quality while lowering bills. The author calls the overhead "orchestration tax."

The prototype becomes the production agent

A consequential shift is that the same terminal workflow that produced throwaway scripts can now produce production agents. Building, evaluating and deploying an agent with persistent memory, scoped permissions, eval coverage and observability used to require a separate stack; now it can fold into the same loop. Google’s Agents CLI is an example: after one-time setup, a coding agent can pick up skills for the whole lifecycle and be driven in natural language to scaffold projects, write code, generate evals, run them, deploy to managed runtimes and report results.

The paper mentions an experiment where an Anthropic team had a group of agents build a working C compiler in Rust over two weeks, with humans setting direction and reviewing rather than writing the code. This illustrates the direction the space may take.

Day-to-day work oscillates between two modes the paper names: the "conductor" (real-time, IDE-integrated, exploratory) and the "orchestrator" (async: hand a goal to agents and review results). The transition is primarily a skills shift, then a tooling one.

Adoption numbers and where to start

The paper includes an adoption figure intended for stakeholders: as of early 2026, 85% of professional developers use AI coding agents regularly, 51% use them daily, and roughly 41% of new code is AI-generated.

The closing recommendation is that AI amplifies the existing engineering culture — both its strengths and its weaknesses. Generation is largely solved; the remaining work is specification and verification, and building the systems that hold those processes together.

Conclusion

The whitepaper’s main conclusion is that an agent’s effectiveness and cost profile depend far more on the harness and context engineering than on swapping models alone. Verification practices, especially robust eval suites and trajectory checks, are what distinguish transient demos from reliable, production-grade engineering.