Software development projects turn more complicated as they scale. Increased collaboration between multiple teams (often geographically-dispersed) can lead to a greater degree of confusion, and subsequently — loss in productivity due to information asymmetry and knowledge gaps. If you’re looking for ways to tune up your development process, value stream mapping (VSM) is a tool that can help.
What Is Value Stream Mapping?
Atlassian provides the following value stream mapping definition:
Let’s break down this definition a bit further by looking at its key components.
- Value: both an objective and subjective assessment of an output that the customers receive from your software product.
- Waste: anything that doesn’t add value to the final product.
- A value stream is a series of steps towards delivering value to the end customer. In software development, that’s the cumulative path from idea to the final product.
Although initially developed for manufacturing, VSM can be easily adapted to the product flow in software development. In case with the latter, VSM you can use VSM to optimize the process of delivering the final product to the customer. It structures the development process life cycle starting with information input (ideas from customers, support, competitor analysis) and moving to product output (end customer). At that, the customer’s value needs are the motivation that guides the process.
Adhering to this life cycle, the central idea of VSM is to optimize the whole development process. So that it utilizes the least amount of resources (cost, time, and human) to satisfy the customer’s value needs. The goal is to deliver a high-quality product to the customer. VSM enables the company to reach this goal as fast as possible. Jayne Groll, CEO of DevOps Institute for Deloitte, says that VSM is an excellent tool for determining how long will it take to deliver value and what the quality, associated with value creation would be.
How to Optimize Software Development Using VSM
As we mentioned earlier, VSM is a great means for identifying bottlenecks and locating improvement opportunities within the software development life cycle. Also, it helps improve cross-team communications by reducing the levels of confusion, happening when the task passes through different development stages.
So how do you make all of the above happen? By following the next 5 steps of value stream mapping.
Step 1. Learn First
When creating a value stream map, the first task is to understand the value stream mapping symbols. Just like iconography in web design, they condense complex information into easy-to-understand pictograms.
VSM symbols are standart. But you don’t need to use every symbol available, but rather repurpose them for your specific objectives.
Step 2. Create a Current State Map
Your next step is to create a current state map, which will define how the work is being done at the moment. The current state map visualizes each step and identifies the time necessary to complete it, as well as the time between the steps. This way, you can determine which steps add value, plus locate and eliminate those resulting in waste.
Here is a quick value stream mapping template. There are three major areas that provide the most important information:
- The upper third of the map is dedicated to Information Flow. It explains the communication and transmission of the information from the supplier (i.e. project stakeholder that provides information input) to your team and, by the end of the development life cycle, to the customer (product output).
- The middle part showcases Product Flow, which recreates the step-by-step software development life cycle from generating an idea of releasing it to the end customer.
- Finally, the Time Ladder provides a visual representation of production (added value) vs waiting (added waste) time.
Value stream mapping helps you optimize and save time, which is your most valuable asset. The following software metrics will help:
- Cycle time (C/T) represents the amount of time needed to complete a task.
- Setup Time (S/T) is the necessary preparation time for an operation or process.
- Uptime (%) is the percentage of time a process or system is active.
- Lead Time sets the completion time for the entire operation/process.
The current state value stream map is a great visualization tool to see which steps add value to the final product – timewise. For a software enterprise, development is usually the most value-adding step of the process. QA/QC also adds value even though indirectly: it increases the final product’s quality. On the other hand, funding approval is sometimes considered wasteful and can be shortened to improve the time flow of the entire process.
Step 3. Make Room for Kaizen Bursts
Managers often use VSM to resolve bottleneck issues. When there is an unresolved challenge, Kaizen Bursts are implemented to find a realistic solution. Kaizen Bursts are one-time team-focused activities, planned as a part of the improvement strategy. Their goal is to deal with a single pressing task. While building a current stream map is about planning, the idea behind Kaizen Bursts is to let the team focus on finding a solution during a short period of time (usually 3-5 days).
A typical Kaizen Burst includes a series of standard activities. You should start with the current state, clearly identify the problem area, brainstorm for opportunities to improve, then implement and refine them, and, finally, train all the employees who will be affected by the changes.
Step 4. Identify and Eliminate Waste Areas
Once your current stream map is ready, you can start looking into the waste areas. The goal is to make your software development more effective by reducing or completely eliminating the steps that add waste to the process.
There are seven major waste areas that lean value stream mapping can help optimize:
- Partially completed work happens due to insufficient specification or automated testing, resulting in the need to complete updates and fill in gaps.
- Extra features that the customers did not ask for and will not see or use are a common result of speculation.
- Relearning is the result of lacking documentation on previously resolved issues. Unfamiliar, unnecessary tech for the established workflow is another case of wasting time on relearning.
- Handoffs happen when roles change. For example, when the project owners change, a new team member appears without the proper context knowledge, etc. Most miscommunication happens among the team due to poor management or changing priorities.
- Delays are longer wait times due to project dependencies when upstream decision-making restrains downstream execution.
- Task switching can disrupt efficient workflow through emails and meetings that do not add value to the final product.
- Defects in software are usually found by customers after the release, resulting in updates.
Every step of the development process is prone to losing time and productivity due to poor or insufficient automation. Focus on improving that first!
Step 5. Design a Future Value Stream Map
In contrast to creating a current state map, the future stream value map visualizes how the software development process should look. You design the ideal development process that uses the available resources optimally and prevents waste. A future value stream map is your reference guide to further action. It’s an ever-evolving document that should be regularly revised as your priorities change.
Value stream mapping is aimed at optimizing the entire development process, not just a single step. It visualizes the development life cycle in the form of a map that helps you find the areas of waste and understand how to reduce them. VSM also reduces miscommunication between distributed teams, where a lot of resources are wasted on waiting, delays, handoffs, task switching, etc. So that you can ensure high team performance and gain faster time-to-market for new software products.
Looking for more ways to ramp-up your software delivery capacity and pace? Contact Edvantis to learn more about our managed team model.