We have seen a lot of whitewash about what the DevOps buzzword means. Some of it was our own and after a year or two of hype cycle messaging, it is time to refactor. Consequently, we at IBM undertook an effort to create a more meaningful vision.
Most teams and organizations waste 40% or more of their resources. In larger enterprises and in organizations with compliance requirements, the ratio of productive activities to waste is even more pronounced. Waste comes in several forms: unnecessary overhead, unnecessary rework, unnecessary features, and building the wrong thing.
DevOps capabilities can deliver better business outcomes through two key advances:
- More effective steering through earlier and continuous feedback.
- More efficient execution through lean transformation.
Effective steering requires more frequent and objective feedback cycles. This is a well-established theme of agile methods and lean startup practices. The process measures of the past have proven to be easily gamed and too subjective to measure execution progress accurately. Objective instrumentation of the product pipeline (instead of activity pipeline) leads to more honest progress and quality feedback. Measuring the bottlenecks, throughput, volumes and wait times of testable product increments enables more objective steering toward building the right value and more predictable outcomes.
Efficient execution requires lean thinking. Let’s loosely define value-added and non-value-added work by looking at the essential product (what users buy) and the non-essential supporting artifacts (what we need to build the product).
- The deliverable product is code, data, test cases, build/deploy scripts. Productive activities like designing, coding and testing directly transform the product.
- Supporting artifacts include the secondary process-oriented information that keeps teams unified – Plans, requirements, models, progress reports, quality assessments, traceability, procedures, and compliance data. Producing and changing these supporting artifacts is largely overhead and non-value-added. Some of it is necessary, but much of it can be streamlined or automated.
With this stark and simplified definition of what is value-added and what is non-value-added, we can then reason better about where we can improve efficiency. Minimize rework and goldplating in the product, and minimize the resources expended in supporting artifacts. This is the essence of lean thinking: maximize time in value added work and minimize time in non-value overhead work and unnecessary rework.
IBMs crisper definition of DevOps:
A DevOps capability applies lean and agile principles across the software lifecycle and across the enterprise with richer feedback cycles everywhere. Lean transformation enables more efficient delivery and continuous feedback enables more effective steering. DevOps adoption can balance delivery speed with trusted outcomes.