DevOps Principles and Practices
Improving Business Outcomes and Solution Delivery
DevOps is an end-to-end approach to software delivery that brings together development, quality advocacy and IT operations into a collaborative team environment. It borrows principles and practices from Lean manufacturing and Agile development, transforming traditional IT processes to better suit business needs and objectives. By equipping teams with cross-functional capabilities, DevOps enables teams to deliver stable solutions with increased efficiency.
DevOps emerged from the conflicting interests between software developers and IT operations within an organization. In practice, DevOps aligns technology capabilities with a common goal of business value and outcomes. As business goals change the organization’s technical resources are enabled to adapt efficiently and effectively when needed.
DevOps Core Values
DevOps can be characterized by a number of core principles, which serve as a foundation for process improvement:
Culture – DevOps practices are supported by a culture of high trust and shared responsibility. By placing a high value on collaboration and cross-functional teams, DevOps brings roles spanning development, QA, security and operations together to continually increase learning.
Lean – A systematic approach to identifying valuable aspects of a process while attempting to eliminate aspects which may be unneeded or wasteful. Implementing a lean system in your processes means discarding wasteful activity and focusing on effectively achieving your end result.
Automation – Prioritizing automation allows teams to decrease the time spent doing error-prone, manual tasks and focus on continuously improving the team. Creating automated, repeatable processes helps teams continuously execute on technical resources in an efficient and predictable manner.
Measurement – If you don’t measure, you can’t improve. A successful DevOps implementation will measure everything it can as often as it can. This includes performance, process and even culture metrics.
Sharing – In order to make the other four principles successful, teams must be committed to sharing: sharing ideas, sharing frustrations, sharing failures and sharing success. The more open an organization is when it comes to sharing the better it will perform.
Following these principles enables teams to be more agile and reliable, with teams reporting lower change failure rates and much faster recovery times when things go wrong. In short, DevOps principles help teams build better, more stable software, faster.
DevOps aligns technology capabilities with a common goal of business value and outcomes
DevOps Principles and Practice
DevOps in Action
When fully adopted and implemented by a team, the DevOps approach includes a number of technical and cultural practices that help teams bring the principles of DevOps into action.
DevOps integrates elements from Agile methodologies, IT operations and information security best practices. This means teams use version control for code and infrastructure, automated tests and automated deployments to continuously monitor, secure, integrate and deliver value.
DevOps teams increase flow by making work visible, reducing batch size and intervals of work and implementing lightweight change approval processes to build quality into every part of the value stream. By incorporating continual feedback into team processes, DevOps teams always have visibility into what’s currently happening and what’s coming next.
Whole Team Culture
Sharing, collaboration and constant improvement foster a culture of learning. By working together in cross-functional teams, individuals are constantly stimulated and encouraged to learn outside their traditional “role.” Highly communicative and cooperative teams full of motivated, engaged people create high-performing teams.