I recently published a blog that explained the Theory of Constraints. In his book “The Phoenix Project“, Gene Kim leverages the Theory of Constraints and the knowledge learned in production environments to describe the underlying principles of the DevOps movement in three ways.
The First Way
Workflow! The first way is all about workflow or the flow of work from left to right. Generally referring to that flow of work between the business and the customer. Work that is flowing from development to test and then test to operation teams is really only work in process. Work in process really does not equate to anything until value is realized on the other side. We must identify and remove or free up our constraints. For example, reducing the cycle from time of code commit to the time we are in production will reduce the release cadence. Ensuring the workflow from left to right can radically increase workflow throughout the delivery cycle. Define work and make it visible.
The Second Way
Reciprocal! How do we take all of the knowledge and learnings acquired and create feedback loops to the previous stage and ultimately back to development. If we think of this from a “Lean” perspective, we know that understanding and responding to users is important. As important is the communication and amplification of feedback to the next stage in the delivery stream. We have to respond to the needs of both internal and external customers via feedback. Ensuring that communication loops back to the starting point is critical to meeting dynamic needs. We must create and embed knowledge where needed. The goal in this second way is to shorten and amplify feedback loops.
The Third Way
Culture of Experimentation! Not only experimentation but also to foster a culture where it is OK to FAIL! We need a culture where it is okay to optimize risk but also one that can reach in and grab us when we have gone too far and bring us back to safety. Practice makes perfect. When you are practicing you will have failures. This is a required element to mastery. A pattern that results in this third way is one where we break things as often as possible while in the pipeline to production. In conjunction with this culture of experimentation and innovation is the power of transparency that propagates an environment of trust and ongoing success.
After reading this, some would say “No Way”! Yet, none of us want to feel trapped in a system that is preordained to fail. Best practice and process are required, guidance on measuring and methodologies like Lean and six sigma are invaluable, governance gives us order. For DevOps to become a reality we must embrace the best of these and learn how to engage operations into development early on in the life cycle and move bigger, better, faster. Way!