stresses small, multidisciplinary teams, who work autonomously and take collective accountability for how actual users experience their software. For a DevOps team, there’s no place like production. Everything they do is about making customers’ live experience better.
DevOps teams apply agile practices and include operations in the team responsibility. Teams work in small batches, focus on improving the end-to-end delivery of customer value, and strive to eliminate waste and impediments along the way. There are no silos and no blame game, because the team is mutually accountable.
DevOps teams apply a growth mindset. They make beliefs explicit, hypothesize impact to create better results, and implement the hypotheses as experiments. DevOps teams use monitoring and telemetry to gather evidence in production and observe results in real time. When evidence diminishes hypotheses, the experiences become opportunities to fail fast or gather validated learning quickly from the experiment. When evidence supports hypotheses, the team uses the opportunity to persevere, or double down, on the actions that lead to improvement.
In transitioning to DevOps, teams shift their priority from optimizing mean time between failure (MTBF) to mean time to mitigate (MTTM) and mean time to remediate (MTTR). Unlike in the past, when lengthy processes were designed to prevent changes that might lead to problems in the field, DevOps teams stress being able to move fast, understand the impact and react quickly.
DevOps teams think in terms of competencies, not roles. While they include both developmental and operational skills and awareness, they share responsibility for running the live site. That means that developers on the team accept responsibility for the health of the running services and will rotate time on-call. The principle is, if you build it, you run it.