DevOps is everything you do to overcome the friction between silos. All the rest is plain engineering.
— Patrick Debois, a.k.a. “Godfather of DevOps”
- The Five Focusing Steps: a methodology for identifying and eliminating constraints
- The Thinking Processes: tools for analyzing and resolving problems
- Throughput Accounting: a method for measuring performance and guiding management decisions
- Deployment Frequency—How often an organization successfully releases to production
- Lead Time for Changes—The amount of time it takes a commit to get into production
- Change Failure Rate—The percentage of deployments causing a failure in production
- Time to Restore Service—How long it takes an organization to recover from a failure in production
DORA metrics explained
Lead Time for Changes
Time to Restore Service
Change Failure Rate
- Faster deployment and release cycles: Organizations with a low Change Failure Rate can deploy changes more confidently and frequently.
- Efficient resource utilization: Reducing the Change Failure Rate allows teams to spend less time troubleshooting and fixing issues.
- Improved software quality: A lower Change Failure Rate indicates that the organization is effectively identifying and addressing defects before deployment.
Required Cultural Changes
- Embrace a DevOps Mindset: Cultivate a DevOps culture where everyone is responsible for the entire software development lifecycle, from planning to deployment and monitoring.
- Prioritize Agile and Lean Principles: Adopt agile and lean principles, such as iterative development, frequent feedback, and focusing on customer value.
- Value Automation: Encourage automation in all aspects of the development lifecycle, from testing to deployment.
- Encourage Continuous Improvement: Foster a culture that values continuous learning and improvement.
- Emphasize Quality and Security: Ensure that quality and security are priorities at every stage of the software development process.
- Collaboration and Communication: Encourage open communication and collaboration between development, operations, and other teams. Break down silos and foster a shared understanding of goals, responsibilities, and expectations.