DevOps
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market. (source)
The Four Pillars¶
Culture | Adopting a DevOps way of working is first about a cultural shift for how work is managed and prioritized. Teams should understand their work in the context of larger organizational goals, and silos should be removed wherever they appear - inside and outside the delivery team. |
Automation | Individuals should be empowered to build things that only they can build, and let machines and computers perform mundande, repetitive tasks. By including automation, mental overhead and exhaustive toil is replaced with margin and energy to solve complex problems. |
Flow | The process of producing and deliverying code should be simple, automated, and sustainable. Work should be tracked and traced, code changes should be seamless, and deployments should be repeatable. |
Fast Feedback | Implement ways of working and delivery pipelines to produce feedback loops. At every stage of work, from idea to development to delivery, utilize tools and processes to provide feedback on the quality and accuracy of the work, allowing for continuous improvement. |
The Three Ways¶
Gene Kim has been a primary thought-leader in the DevOps space, pioneering the annual DevOps Enterprise Summit, operating IT Revolution, a leading resource provider in DevOps thought and practice, and authoring many books around enterprise and IT. Explored in his landmark book The Phoenix Project, a novel exploring enterprise challenges and DevOps solutions, he describes the core principals of DevOps with the "Three Ways of DevOps," which is captured in this blog, described below.
"The focus is on all business value streams that are enabled by IT." - Gene Kim
The First Way emphasizes the performance of the entire system, as opposed to the performance of a specific silo of work or department — this as can be as large a division (e.g., Development or IT Operations) or as small as an individual contributor (e.g., a developer, system administrator).
The outcomes of putting the First Way into practice include never passing a known defect to downstream work centers, never allowing local optimization to create global degradation, always seeking to increase flow, and always seeking to achieve profound understanding of the system.
The Second Way is about creating the right to left feedback loops. The goal of almost any process improvement initiative is to shorten and amplify feedback loops so necessary corrections can be continually made.
"If it hurts, do it more frequently." - Jez Humble
The outcomes of the Second Way include understanding and responding to all customers, internal and external, shortening and amplifying all feedback loops, and embedding knowledge where we need it.
The Third Way is about creating a culture that fosters two things: continual experimentation, taking risks and learning from failure; and understanding that repetition and practice is the prerequisite to mastery.
"In today’s fast-moving and competitive world, the best thing you can do for your products, your company, and your people is institute a culture of experimentation and learning, and invest in the technical and management capabilities that enable it." - Dr. Nicole Forsgren
The outcomes of the Third Way include allocating time for the improvement of daily work, creating rituals that reward the team for taking risks, and introducing faults into the system to increase resilience.