In 2006, AWS CTO Dr. Werner Vogels famously coined the phrase: “You build it, you run it.”
The philosophy was simple: software development teams should own the entire lifecycle of their applications—from design and build, to deployment, monitoring, and 24/7 operational support. By tying developers directly to the operational outcome of their software, teams are naturally incentivized to write more reliable, well-tested, and maintainable code.
I appreciate the spirit of the endeavor, but in practice, it doesn’t work for every organization.
The effectiveness of this model hinges entirely on team composition. Running an application autonomously requires more than just product feature developers. A team needs a Site Reliability Engineer (SRE) who understands monitoring, auto-scaling, and chaos engineering. They need expertise in Infrastructure as Code (IaC), cloud provider services, and zero-downtime deployment strategies. Without these specialized skills embedded directly within the team, true autonomy becomes an impossible expectation.
Why It Fails
When organizations attempt “you build it, you run it” and fail, it usually comes down to excessive cognitive load.
Expecting software engineers to be experts in app logic, Kubernetes, Terraform pipelines, IAM policies, and on-call incident response burns people out. While tech giants like Amazon, Netflix, and Google have the budget and talent density to staff fully cross-functional teams for every microservice, most companies do not. Forcing developers to manage complex cloud infrastructure leads to misconfigurations, security oversights, and less time actually building business features.
The Alternatives
If forcing every dev team to manage their own cloud infrastructure isn’t scalable, what works instead?
Platform Engineering (Paved Roads): Instead of making every team reinvent the deployment pipeline, a dedicated Platform Engineering team builds Internal Developer Platforms (IDPs). They create self-service primitives and automated guardrails. Developers still “run” their apps, but they interact with clean abstractions rather than raw infrastructure code.
Embedded SRE Rotations: Rather than trying to hire an SRE for every single feature team, organizations can embed senior SREs into application teams on a rotating basis. The embedded SRE works alongside developers to establish monitoring, automate toil, and build resilience before rotating to the next critical service.
