From Copilot to Fully Agentic SDLC

Most engineering teams have been adding AI tools at the edges of their workflow — a coding assistant here, a code review bot there. Uber’s engineering team has been building something structurally different: an end-to-end “Managed Software Factory” in which agents participate at every stage of software delivery, from a feature idea in Slack through to automated post-release maintenance.

The results are striking. More than 70 percent of pull requests are now authored by agents. Lines of code per engineer doubled year-over-year. Over 250 automated migrations moved nine million lines of code with minimal human involvement.

What made this possible is a six-layer infrastructure stack built over time.

The Six Layers

A model gateway sits at the center: one endpoint, compatible with any major provider, that handles authentication, PII (personally identifiable information) anonymization, safety checks, and full cost attribution (per team). Engineers set a project identifier and the gateway handles the rest. This matters because without centralized attribution and safety controls, agentic workflows tend to produce ungoverned, opaque AI spend.

An MCP gateway aggregates internal APIs and SaaS tools through a single entry point. Agents generate short Python scripts for heavy tool interactions — avoiding the problem of API responses consuming large amounts of the model’s available context.

Agent-ready development environments (DevPods) —  pre-provisioned Kubernetes environments (isolated compute containers) with repository snapshots and search indexes already built in. Agents can start working in seconds. A “Mega DevPod” aggregates all repositories for the cross-repo work that most real features require.

A managed skills marketplace holds 2,500 reusable agent skills, from generic utilities to domain-specific operations. Skills go through automated quality reviews before publication, and execution traces feed back to authors for continuous improvement. This is a curated library, not a free-for-all of one-off scripts.

A context graph — 40 million entries covering services, ownership, architecture, incidents, and project tickets — replaces 20 to 30 previously scattered systems. When an agent needs to understand how a service fits into the broader system, which team owns it, or what patterns exist nearby, this graph is the single answer. The measurable difference in token efficiency and accuracy when such graph is available is one of the clearest payoffs in the whole stack.

An internal assistant called Cortana ties these layers together in Slack, CLI, and web surfaces, with support for team-level personalization.

The End-to-End Agentic Workflow

Uber’s practical demo starts with a eature idea surfaced in Slack; the assistant queries the context graph to assess business opportunity — venues, market sizing, comparable rollouts. It helps draft a product requirements document and generates design mock-up variants for an A/B test. A cloud coding agent then builds the backend and frontend changes across repositories, stopping at a draft pull request rather than pushing straight to CI.

Before CI even runs, an inner validation loop fires: visual comparisons against design specs, backend integration tests in a staging environment, and automatic fixes for any static analysis issues. On CI, self-healing agents address errors as they appear. The pull request arrives for human review with a table of every automated check that ran — including screenshots — giving reviewers a clear picture of what the agent verified before asking for a human sign-off.

After the feature ships, maintenance is also managed: cleanup tasks — like removing a feature flag after an A/B experiment concludes — run on a defined schedule, with controls on timing and diff volume to avoid overwhelming CI or flooding Monday morning review queues. Outcomes from these maintenance diffs become labeled training data to improve the underlying skills.

The Constraint Is Continuous Integration

The bottleneck Uber identifies going forward is not engineering capacity but CI capacity. Experiment slot limits, the question of prioritization itself. When agents can build most things faster than before, the scarce resource becomes sound judgment about what to build. The question shifts from “can we build it?” to “should we build it?”

That is a genuinely different problem. And it suggests that the teams most likely to benefit from this kind of infrastructure are the ones that have already developed strong product discipline — not the ones hoping the infrastructure will substitute for it.

Text summarized and optimized using Anthropic’s models and reviewed by a human.