10- Are Agile and DevOps friends or foes?

DevOps in a narrow sense

First of all, to echo the title, Agile and DevOps should be friends. In a narrow sense, Agile and DevOps do not have a competitive relationship. They are both management improvements and process optimizations to improve delivery efficiency. Before DevOps appeared, agile development focused on solving It is an efficiency issue in the R&D process. The expectation is to improve team performance through agile development and agile management, and to quickly deliver product increments through iterative and incremental methods;

image

But when the R&D efficiency was improved, when we wanted to release product increments enthusiastically, we found that we needed to go through a clear inter-departmental handover, strict approval process and inefficient manual operations to complete the function release, so from the entire delivery pipeline. That said, operation and maintenance began to become a bottleneck in the value stream. At this time, the narrowly defined DevOps was born. Of course, this was also the focus of the rise of DevOps, that is, through the continuous delivery pipeline to standardize and automate the release process to solve the final release One kilometer of efficiency issues, but there is no end to the improvement of delivery efficiency. It is not a problem that can be solved with agile and DevOps. It should be a continuous improvement process. Similar to the barrel principle, there will always be a bottleneck in the value stream. Only by constantly finding bottlenecks and optimizing can help the continuous improvement of performance.

Broad DevOps

With the popularity and enthusiasm of DevOps in recent years, there is the so-called generalized DevOps. Simply put, the generalized DevOps should be built on the theoretical basis of lean, agile, and continuous delivery. It is not a new thing or a new method. It is a combination of various practices. In the final analysis, it is still a question of how to use various methods to improve efficiency.

Broad DevOps should include the following parts:

  • The first is lean. It is derived from the Toyota Management System (TPS) in the 1980s. The key practices include value flow, Kanban and waste elimination concepts. The goal is to shorten the lead time through small batch or even single-piece delivery. The principle of lean focuses on how to create value for users through systematic thinking.

  •  Many previous articles on Agile talk about Agile, so I won’t repeat them here. In short, 17 industry experts put forward the "Agile Manifesto" in 2001. Agile emphasizes lightweight software development, small batch, incremental release, and establishment. Small cross-functional teams improve organizational efficiency.

  • Continuous delivery Continuous delivery was jointly proposed by Jez Humble and David Farley in 2009. It is a logical extension of continuous integration to form a new method of continuous delivery. The core concept of continuous delivery is the deployment pipeline.

  • Toyota Routine (Continuous Improvement) When it comes to continuous improvement, there will be an interesting story. As the Toyota Production System and Lean Production became more familiar, a large number of experts and scholars came to Toyota to learn lean management, but Toyota insiders The evaluation of a large number of people is that they have only learned practices and methods such as waste elimination, Kanban management, self-reliance, and JIT, but they have ignored our core thing, the culture of continuous improvement.

Therefore, one view is that DevOps is a combination of a variety of methods and theories for efficiency improvement ideas. Sometimes it is more like a blind person touching the elephant. Everyone has their own understanding, but the key is whether they can help companies solve problems through DevOps that they understand.

image

DevOps three-step method

The so-called three-step DevOps working method is to guide enterprises to realize DevOps reform through the three-step process of flow, feedback and continuous improvement: 

image

  • Establishing flow Establishing flow is more about the organization's delivery of value flow, from visualization, visualization management, limitation of work in progress, small batch delivery to value flow mapping, step by step establishment of an efficient flow mechanism to ensure continuous value delivery;


  • The establishment of feedback feedback can be accelerated by authorizing the team, learning from the concept of manufacturing Andon drawstrings, advocating the concept of ensuring product quality through quality built-in, combining ABTest, grayscale release, blue-green deployment and other testing concepts to accelerate feedback, and Combine feedback to achieve continuous improvement;


  • Continuous improvement Continuous improvement is actually the most difficult part. It is not simple practice, but more cultural change, such as how to build a learning organization and how to create a safety culture. The safety here is more of a kind of safety. To ensure that employees have the courage to try and innovate, have space to play their own value, stimulate internal drive, of course, continuous improvement must also pay attention to how to achieve overall improvement and systematic thinking. In short, it is not achieved by restriction and management. Continuous cultural construction and conceptual recognition.

CALMR

Finally, draw lessons from SAI's interpretation of DevOps to make a conclusion. The first thing in DevOps theory is cultural construction. In addition, attention should be paid to automation, lean flow, measurement, and resilience. How to measure will be a difficult problem in the DevOps movement. , Recovery ability is easy to be underestimated. Therefore, it does not matter whether Agile or DevOps is important. It may not be long before a new term will be born. The point is whether it can help the organization evolve and help the enterprise go further.

image

DevOps is a mindset, a culture, and a set of technical practices. It provides communication, integration, automation, and close cooperation among all the people needed to plan, develop, test, deploy, release, and maintain a Solution. --© SAI.

aa.png

Guess you like

Origin blog.51cto.com/13676635/2589449