DevOps has evolved over a long period of time. Knowledge acquired in different sectors such as manufacturing have laid the foundation for modern DevOps practices. For example the lean and theory of constraints concepts used by Toyota are important elements of DevOps. Other philosophies that have been incorporated into DevOps include change management, Agile software and servant leadership.
The lean concept was founded on the belief that the time required to convert raw materials into final goods was the key predictor of the level of satisfaction among customers and employees. Shorter durations and smaller work batches led to higher employee and customer satisfaction. A key philosophy of agile that has been incorporated into DevOps is frequent and incremental delivery of software. This is in contrast to a batch delivery.
The foundation of the lean concept is a value stream. In a manufacturing setting a value stream shows the different activities that are needed to deliver a service or product to a customer. It is easy to visualize a value stream in a manufacturing environment. This is because there is a visible flow from order placement, processing of raw materials and delivery to the customer. Techniques used to reduce lead time are using small batches, minimizing work in progress and minimizing defects. The value stream concept in a manufacturing environment is similar to the value stream concept in a technology environment. A DevOps value stream can be defined as the steps that are required to convert a customer need to a service that delivers value. The development process involves writing and testing code to meet a customer need. The development process needs to be fast and the deployment process should not inconvenience the client or fail to meet their needs.
An element of the value stream that is of high importance is the lead time. The lead time begins when a request is made and it ends when the request is completed. The process time begins when a request is made. However any time a request is not being worked on is excluded. In business lead times can run into months. This happens when a large application is being developed introducing huge roadblocks. Devops emphasizes the importance of short lead times that can be minutes. This enables developers to quickly receive feedback, integrate it into their code and deploy solutions. Work begins with design and development which is a stage fraught with uncertainty. This uncertainty arises from the high level of creativity required and because the work at this stage is the foundation of the project. The second stage involves testing and operations. A sequential approach of moving large work batches from design and development to testing and operations is inefficient. A more efficient approach is simultaneously having design/development and testing/operations. This leads to fast flow and high quality work. The body of DevOps practices has been collapsed into three ways and each will be discussed in subsequent sections.
The key concept of the first way is work needs to move from left to right in the quickest way possible. Work needs to flow fast through business team to development team to operations team and final delivery to the customer. Achieving a fast flow comes from incorporating several practices. They have a good visibility of work and small batches. Another practice is incorporating quality for minimum defects and a sharp focus on goals. A quickly flowing value stream has multiple advantages. First it reduces the time required to fulfill customer requests. A second benefit is improved quality and throughput which are competitive advantages. A third advantage is eliminating local optimization that is likely to degrade the global environment. There are several practices that are critical in achieving fast flow. These practices are continuous build and having on demand environments. Another practice is keeping work in progress to a minimum and having systems that are open to change.
The focus of the second way is having quick and continuous feedback that moves from right to left along the stream. The feedback is used to prevent defects from happening and to enable quick problem identification and resolution. By incorporating feedback into value stream quality is embedded into the process. This has a benefit of work safety and identification of problems before they cause extensive damage. By immediately responding to feedback the feedback loop is shortened thus providing learning and improvement opportunities. Another benefit of the third way is having an excellent understanding of customers within the organization and external customers.
The focus of the third approach is utilizing scientific tools of experimentation to support learning from successful and failed efforts. Another important element of the third way is achieving mastery through practicing and repeating. Risk taking that can result in improvement is encouraged coupled with risk mitigation. The third way results in three benefits. The first benefit is time, set aside to improve small batches of work. The second benefit is teams that take risks are rewarded. The third benefit is experimentation helps the system to develop coping mechanisms.
This article introduced a brief history of the evolution of DevOps philosophies. Concepts developed in the manufacturing sector were discussed and their relevance in a technology sector were discussed. Value streams and important metrics were discussed along with its benefits.