A phrase I have heard thrown around is “You build it, you run it.” Meaning that the team that builds the software, supports the software. I had some thoughts and questions however, like:
- the business asks for the software and features to be built, don’t they take any responsibility?
- how can a team support the software when the business product owner is deciding what to work on each sprint?
- what happens when the team gets pulled apart and re-assigned?
So I did some digging.
The original post is https://queue.acm.org/detail.cfm?id=1142065. It is an interview from June 30, 2006 with Werner Vogels, Amazon CTO.
He talks about:
- how Amazon is a technology company.
- they were building a service-oriented architecture.
- they wanted to scale, and have isolated software components.
- they wanted clear ownership of systems.
- all access is through published service interfaces.
- “Each service has a team associated with it, and that team is completely responsible for the service—from scoping out the functionality, to architecting it, to building it, and operating it.”
- “Giving developers operational responsibilities has greatly enhanced the quality of the services, both from a customer and a technology point of view.”
- if they find an idea they like, they prototype it very quickly, then iterate on it until the business problem is understood. They work out at the start what the success criteria are and how to measure them.
- they can release slowly. They measure how it is going.
- they try and be very close to the customer.
- they have small teams (sometimes described as ‘two pizza’ teams).
- they like their developers to be independent creative thinkers with a strong sense of ownership.
So this is the context around “You build it, you run it.” A small team, who know they will own this service forever, gradually build and measure as they deploy to the customer.
Which means, if you want your software teams to ‘build it and run it’, you need to:
- have small, autonomous teams,
- who own the idea right from the start,
- who know how the success of the service will be measured,
- who won’t be broken up or moved onto other work,
- and who have the tools to monitor their work and get feedback from customers.
If you can’t do that then maybe “you build it, you run it” isn’t right for you.
Links
- https://queue.acm.org/detail.cfm?id=1142065
- https://www.businessinsider.com/behemoth-amazon-rising-agile-teams-jeff-bezos-robin-gaster-2021-4
- https://www.forbes.com/sites/stevedenning/2019/06/02/how-amazon-tames-the-budget/?sh=280df1416c04
- https://academy.nobl.io/10x-thinking-and-cross-functional-goals-what-we-can-learn-from-amazons-planning-process/
- https://diagramindustries.com/2022/01/05/you-build-it-you-run-it/
- https://www.shrm.org/executive/resources/people-strategy-journal/spring2019/pages/galetti-golden.aspx
- https://you-build-it-you-run-it.playbook.ee/
- https://aws.amazon.com/blogs/enterprise-strategy/enterprise-devops-why-you-should-run-what-you-build/
- https://devopsdays.org/events/2022-zurich/program/ramon-lopez-narvaez
- https://insights.sei.cmu.edu/blog/devops-case-study-amazon-aws/