Value Stream Management - Modern Software Development
Tags: valuestreammanagement, devops, performance, valuestreammapping
Published: 2021-11-09 13:48:12

*“Organizations whose businesses rely on software must learn how to balance the relationship between necessary investments in software delivery and the business value these investments bring to the organization.”* - Alan Brown, Enterprise software delivery bringing efficiency

##What is Value Stream Management?
[Value stream management](https://www.leanix.net/en/wiki/vsm/value-stream-management) encompasses monitoring, controlling, and improving the value software delivers to your company throughout its entire lifecycle. Value stream includes every activity required to deliver software to your internal or external customers.

Actively measuring current software delivery performance and taking into account the time, cost, or customer experience perspectives helps value stream managers, DevOps teams, and Engineering leaders to better understand:

1. The context in which they write code
2. The impact of malfunctions

For example, buggy software that is customer-facing does not only require Dev teams to put in additional efforts to fix it but can also prevent the business to sell its products, inducing churn, or leaving customers with a negative experience.

##Why does it matter?
Value stream alignment creates visibility throughout all processes and makes it easier to spot bottlenecks and other pain points that create unnecessary waste. By taking a step back and looking at the entire value stream, you get to uncover opportunities for improvement and automation. Furthermore, it’s much easier to trace back processes and make sound, data-driven decisions.

##History of Value Stream Management
Value stream management is not a new approach that emerged with the rise of software adoption – in fact, its principles go back to early manufacturing. Taiichi Ohno, the father of the Toyota Production System, developed “Material and Information Flow Mapping” back in 1988 to visually depict all workflows within the production process. Thus, he created a common language for identifying areas of improvement and for eliminating waste.

What was used as a basic tool for a specific industry relying on assembly lines is now utilized by companies around the world who are looking for lean management and transformation of their software delivery.

##VSM in the context of DevOps
DevOps – the combined practices of software development and IT operations – has fostered a collaborative work environment between those once siloed departments. It has transformed software development and release cycles in a way that highlights efficiency and quick problem-solving.

However, DevOps alone is not enough to manage and maximize the value software can generate as it only covers a part of the value stream.

In DevOps, the focus lies on deployment lead time. This results in an only partially optimized process as it often remains unclear what exact value is derived from major IT investments. And this is where value stream management comes in – it focuses on the end-to-end lead time or “time to value”.

*"Implementing DevOps methods, configurations, and tools on an enterprise scale is not trivial or inexpensive. On the other hand, VSM tools provide the data you need to get the most out of your IT investments.”* - Cecil 'Gary' Rupp, Driving DevOps with Value Stream Management

With customer-centric value stream management, companies actually know what happens between a customer's need or request and production.

##What is value in software engineering?
In software engineering, this value stream exists either per product, service, or software application. Flow items are the different units of value that are part of the stream – this could be a new software feature or a bug fix. The goal is to increase the rate these items flow through the stream, so more value can be created in a shorter amount of time.

###1. Gemba walk

Compared to assembly-line manufacturing, software development has a lot more abstract, intangible processes that are invisible to those who are on the outside, like managers who are not involved in the day-to-day work.
That’s where the Gemba Walk can help. “Gemba” means “actual place” in Japanese and refers to the actual place where the value is actively created. In a Gemba walk, this particular work environment is closely examined to understand how products are built and what the exact challenges are.

Observing various processes in software development can be obscure and confusing to non-IT employees and management, which is why Flow Metrics are used to provide a full real-time insight instead of just a snapshot of what is actually happening during value creation.

###2. Making work tangible

When comparing software engineering value streams to automotive value streams, it is also clear why: In the latter case, the number of produced cars serves a clear measure, but how would we define productivity in the world of software?

In order to answer this question, there needs to be a clear definition of what is part of the software value stream. Dr. Mik Kersten who pioneered the integration of development tools with Agile and DevOps determines four flow items that are an integral part of the software development value stream: Feature, Defect, Risk and Debt.

##How to create value?
Once you have walked Gemba and determined the flow items in their value stream, companies have to ask themselves what delivering value to customers and thus creating more business value looks like in practice.

###1. Articulating the product

Before the actual development stage of a product comes the “plan and design” stage where a sales team is capturing the customer needs that are then analyzed and translated into new features. After assessing cost and other resources, UX designers sketch out and test ideas, and managers and owners break down the product into epics and stories.

###2. Understanding the code

Using a knowledge-sharing network that omits archaic forms of communication like email threads, spreadsheets, and multiple clunky tools, allows for much smoother product development.

Developers should create sensible code while keeping in mind what the initial request was and what happened in the plan design stage. It’s self-explanatory that understanding the “why” behind a code yields better products that fulfill their intended purpose.

###3. Teaming up with customers

As the customer is at the center of it all, direct communication lines from sales departments to development are key to fostering a deep understanding of why a particular product is being built. That is why an integrated VSM tool is essential for creating the most value.

Knowing what the customer is looking for, developers can get more invested in the idea of creating the right value. This shift from project to the customer and the product in itself is increasing engagement across the entire value stream process, boosting customer satisfaction and revenues.

##How to measure value streams?
In software development, it’s difficult to measure and track processes that are usually decentralized and spread across various departments. However, you need to know how to measure each value stream in order to find out how it’s performing and how it affects overall business outcomes. That’s why many software companies use DevOps/DORA Metrics and Flow Metrics.

###DevOps/DORA Metrics
1. Deployment frequency (DF): Every DevOps team defines success a little differently. In general, top performers aim for continuous or daily deployment.

2. Mean lead time for changes (MLT): Similar to DF, MLT exposes the pace of software delivery at a company. It captures the time between a code change commit and its deployable state.

3. Mean time to recover (MTTR): This metric measures the time between an interruption due to deployment or system failure and full recovery.

4. Change failure rate (CFR): This metric indicates how often a team’s changes or hotfixes lead to failures after the code has been deployed.

###Flow Metrics
After adopting DORA Metrics, many teams then integrate flow metrics that are centered around the flow items that were mentioned earlier: Feature, Defect, Risk and Debt. Below are the standard flow metrics that help you get a better insight into what is actually occurring in the value stream.

1. Flow Velocity: Refers to the number of flow items completed in a certain amount of time. It measures if the value delivery is picking up speed or whether it’s slowing down.

2. Flow Time: Find out whether the cycle time of an item is getting shorter or longer as it measures the time it takes for a flow item from start to completion.

3. Flow Efficiency: Uncover waste as it measures the ratio of active time vs. wait time in regards to the entire flow process.

4. Flow Load: Reveals the number of flow items that are part of the process and in progress and can show if a value is under-utilized.

5. Flow Distribution: Ratio between the four flow items in a defined window of time and helps with the prioritization of particular work processes.

Visit [Value Stream Management explanation](https://www.leanix.net/en/wiki/vsm/value-stream-management) for more detailed and insightful points.