

BY Marcus Tewksbury
Your Code Is Only as Good as Your Context
Marcus Tewksbury· Part 1 of 3: Context Pipeline
The next phase of engineering productivity won't be won by the team with the cleverest prompts, the newest coding agent, or the biggest AI tooling budget. It will be won by the team with the best context feeding the system.
That sounds unglamorous. Documentation has spent twenty years earning a bad reputation: too heavy, too stale, too far from the actual work. Most engineering leaders have lived through a "documentation initiative" that produced a graveyard of pages nobody trusted.
That is not what I'm talking about.
In the agentic age, documentation stops being administrative overhead and becomes part of the engineering execution system itself. Good documentation produces better code. Bad documentation produces rework, review churn, architectural drift, and confident wrong answers from agents working with incomplete context.
The uncomfortable truth for CTOs: your agents probably aren't limited by their ability to code. They're limited by your organization's ability to describe, with precision, what should be built.
The Bottleneck Has Moved
For most of software history, coding was the obvious bottleneck. Requirements could be vague because development took long enough for ambiguity to resolve itself along the way. A product manager wrote a loose story. An engineer started building. The team filled in the details through Slack threads, standups, and a few "quick clarifications."
That model was inefficient, but it worked—because human engineers absorbed ambiguity. A senior engineer could infer what the PM meant. They remembered the edge case from last quarter's escalation. They knew the ticket said "archive" but the system's real pattern was "soft delete with retention." They compensated for gaps in the written record because they carried the context in their heads.
Agents don't work that way. They execute against the context they're given. They don't know what was decided in a hallway, that yesterday's meeting changed scope, or that a Slack thread quietly reversed the PRD. They don't know that "archive" means one thing to Product, another to Engineering, and a third to Customer Success.
When documentation is thin, stale, or contradictory, agents rarely pause to ask the perfect clarifying question. More often, they fill the gap with a plausible assumption—and that assumption becomes code. Code that compiles, passes superficial tests, and looks reasonable in review, but is wrong in ways that matter.
In a human-centered SDLC, weak documentation created meetings. In an agentic SDLC, weak documentation creates crappy code. That is the shift.
Speed Makes Ambiguity More Expensive
AI has compressed the Build step, and that compression is the catalyst behind everything else.
When code generation took days or weeks, teams discovered ambiguity slowly. A developer hit an unclear requirement, asked a question, adjusted, and kept going. The friction of coding created a natural feedback loop. Agentic development removes that buffer. A vague ticket becomes a working implementation in minutes—generated UI, API changes, tests, and docs, all downstream of an assumption nobody meant to make.
The common mistake is assuming that because agents code faster, teams can afford to be looser upstream. The opposite is true. The faster the system executes, the more precise the input has to be. Fast execution doesn't forgive ambiguity; it amplifies it. A wrong requirement becomes the wrong thing, built faster. Incomplete acceptance criteria become incomplete tests, faster. Missing architecture constraints become locally reasonable code that violates system-level principles, faster.
This is the new failure mode of software delivery: fast teams generating technically competent implementations of poorly specified intent. For CTOs, the leverage point has moved. The question is no longer "How do we help engineers write code faster?" It's "How do we improve the quality of the context that code is produced from?"
Documentation Is Now Execution Context
The word "documentation" may be part of the problem. For most engineers it means something adjacent to the work—a PRD, a Confluence page, a decision record, a diagram. Useful, maybe. Required, often. But separate from the act of building.
That mental model is breaking. In an agentic process, documents aren't passive references; they're inputs into execution. The PRD, the Specification, the Architecture Plan, the Epic, the User Story, and the Ticket form a chain that turns business intent into working software. Call it the Context Pipeline.
When the pipeline is healthy, each layer strengthens the next. The PRD frames the problem and outcome. The Specification turns intent into precise expected behavior. The Architecture Plan defines how the system should change. Epics and Stories organize the work into meaningful increments. Tickets give humans and agents bounded, executable tasks.
When it's broken, each layer adds distortion. A vague PRD forces the Spec to guess. An incomplete Spec sends the Architecture Plan optimizing for the wrong behavior. The Epic becomes a bucket of loosely related work, the Stories become placeholders, and the Tickets become thin commands that lean on tribal knowledge.
That tribal knowledge used to live in people's heads. Now we're asking agents to participate in the work, so the knowledge has to move into the system. That doesn't mean a 20-page document for every decision, and it doesn't mean a return to waterfall. Good documentation isn't big documentation. It's high-signal context: accurate, specific, current, and usable.
Better Context Produces Better Code
Imagine asking an agent to add "bulk archive" to an admin table.
A thin ticket says: Add bulk archive action. A human who knows the system would ask the right questions. Is archive reversible? Does it remove records from search? Does it preserve reporting? Audit logs? What happens to locked records—partial success? Permission differences by role? Soft delete or new status? An agent might ask some of those. Or it might just build a checkbox, a button, and an endpoint that flips a status field. That's not an agent problem. It's a context problem.
A better ticket, fed by a better Specification, would say:
Add bulk archive for admin users on active records only. Archived records remain available for reporting but are excluded from default operational workflows and search. The action must write an audit event per record, support partial success, skip locked records with row-level error messaging, and preserve child records unless explicitly selected. Limit to 500 records per action. Restore is out of scope. Follow the existing soft-delete pattern. Include tests for success, partial failure, permission denial, and already-archived records.
That's not bureaucracy. It's leverage. The agent produces better code because the organization did the thinking before asking for implementation.
Humans Still Own the System
This isn't an argument for replacing engineering judgment with documentation. It's the opposite.
Humans still own the problem, the tradeoffs, the architecture, the quality bar, the guardrails, the release decision, and the accountability when software touches customers, revenue, or trust. Agents generate code, tests, plans, and remediation suggestions—but humans coach, edit, validate, and govern the work.
What changes is where judgment lives. In the old model, a senior engineer expressed judgment while writing code, making hundreds of decisions during implementation: naming, boundaries, error handling, data modeling, performance, security. In the agentic model, those decisions have to be expressed before generation begins—in the Specification, the Architecture Plan, the decomposition of work, the acceptance criteria, the ticket.
The engineer is still central. The medium just expands. A great engineer in an agentic organization isn't only someone who writes excellent code. It's someone who can shape the context that produces excellent code—system design, product interpretation, and risk management translated into artifacts that both humans and agents can execute against.
The Best Context Wins
The future of software won't be the simplistic story where agents replace developers. It's one where agents generate more of the implementation while humans spend more time shaping the intent, constraints, and validation around it. In that world, context quality becomes a first-order determinant of engineering performance—not because documents matter more than code, but because better documents produce better code.
Teams that understand this move faster, because their agents spend less time guessing and being corrected. Teams that ignore it get a different version of acceleration: faster confusion, faster rework, faster debt.
That's the CTO-level decision. Treat documentation as overhead, and agents will amplify every ambiguity in your process. Treat context as core engineering infrastructure—designed, owned, measured, and improved—and they compound your best thinking instead.
The best engineering teams in the agentic age won't be the ones that generate the most code. They'll be the ones that provide the clearest context. Your code is only as good as the context that produced it.