DevOps — The Missing Link in Lean Organisations
What is DevOps?
Everyone has a different definition of what DevOps is: a job title, the use of of modern tools by operation teams, collaboration, values, practices, etc. For Ernest Mueller (https://theagileadmin.com/what-is-devops/):
DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from >design through the development process to production support.
A bit of background
In 2001, a group of experienced software engineers, who saw many projects fails and were not happy with the state of current software project management (commonly called waterfall) came up with the Agile Manifesto (http://agilemanifesto.org/) defined values and principles for agile software development. Scrum and XP are the most famous methodologies, developed in the late 1990s.
At the same time, Lean Thinking has been applied to software development by Mary and Tom Poppendieck in 2003. Lean Thinking came from the Lean Toyota production system into management and then in software development. The idea is increase efficiency by reducing waste and continuously improve. Key principles in Lean Software Development are:
- Eliminate waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in
- See the whole
These principles can relate to many of the principles of Agile.
Agile transformation has been difficult and still not achieved in most organisations, but the key issue of agile and lean methods such as Scrum, XP, Kanban has been the focus on the development team, while the rest of the organisation continued to operate in “project” mode. In particular, product innovation has remained out of the agile feedback loop. Eric Ries has popularised the idea of Lean Startup. The idea is to use Lean in product and business development, by building build-measure-learn loops for continuous learning and improvement.
The Lean Startup ProcessLong story short, lean and agile principles had to extended across the organisation both in product and operations level. A throw over the wall practice for software delivery was an impediment. Product people need quick feedback loops and the ability to experiment, and engineering team need to be able to delivery quickly, stable software. This is how the need for Dev — Ops collaboration as well as infrastructure automation emerged.
Models for DevOps
The CAMS Model created by DevOps pioneers John Willis and and Damon Edwards It stands for Culture, Automation, Measurement, and Sharing. CAMS has become the model set of values used by many DevOps practitioners. Patrick DuBois, He’s often referred to as the godfather of DevOps, since he coined the term, but he likes to say that DevOps is a human problem. While DevOps is often thought of as a technology problem, in reality, it’s a cultural and business problem.
Another model is called The Three Ways, developed by Gene Kim, author of “Visible Ops” and “The Phoenix Project,” and Mike Orzen, author of “Lean IT.” The three ways they propose are:
- systems thinking
- amplifying feedback loops
- culture of continuous experimentation and learning.
DevOps Implementation
These are a few principles for implementing DevOps:
People > Process > Tools (Alex Honor)
Continuous Delivery (amplifies feedback, increases quality and velocity)
Apply Lean/Agile management for planning work
Infrastructure as Code
This is a list of 9 best practices for DevOps:
- Incident management
- Developers on call (responsible for their code end to end)
- Public Service status pages and user notification
- Blameless post-mortems
- Mixed ops/dev teams
- Use of cloud technologies
- Dependency injection (on application level)
- Blue/Green deployment
- Chaos Engine (Random Failure should be considered normal)
A non exhaustive list of tools for DevOps practice
I have written a short list of tools for DevOps implementation: https://medium.com/@chrpopov/devops-tools-7ad516676a61#.my7peqfxg
References
What is DevOps? https://theagileadmin.com/what-is-devops/
Yasuhiro Monden (1998), Toyota Production System, An Integrated Approach to Just-In-Time, Third edition, Norcross, GA: Engineering & Management Press
Mary Poppendieck; Tom Poppendieck (2003). Lean Software Development: An Agile Toolkit. Addison-Wesley Professional.
Ries, Eric (September 2011). The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses. Crown Business.
Gene Kim, “Visible Ops”
Mike Orzen, “Lean IT.”
i like it and plzzz follow us im new..
I am a supply chain guy working in procurement and hate every concept of waste. It is everywhere though and any process can be lean through its design, great link for those in software development.
Congratulations @chrpopov! You have received a personal award!
Happy Birthday - 1 Year
Click on the badge to view your own Board of Honor on SteemitBoard.
For more information about this award, click here