Value stream mapping (VSM) is a powerful visual planning tool. It helps you visualize the current and the ideal workflow for an item from a not-started state to a complete state. In addition, it allows you to include external departments, teams, and processes in a single diagram and see the full picture easily. This helps businesses identify waste across the entire value stream and work towards more efficient operations.
Although value stream mapping was initially developed for use in manufacturing facilities, it is useful in any industry or business where items must pass through multiple departments and phases before they reach the customer.
Regardless of your task, value stream mapping can help you and your teams perform more efficiently to achieve it.
Using VSM in Software Development
VSM is a great tool to identify bottlenecks and locate improvement opportunities within the software development life cycle. In addition, it improves cross-team communications and reduces confusion among team members when the task passes through different development stages. A picture is worth a thousand words; visualizing your process is sometimes the best thing we can do to expose issues.
A VSM can be created easily by following the steps below.
Step 1. Learn VSM
The first task in creating a VSM is to understand the symbols used in the process.VSM uses a set of icons to denote processes, customers, etc., which you can customize to match your needs.
Apart from these symbols, VSM consists of 3 major areas. Information Flow, Material/Product Flow, and Time Flow.
- Information Flow - shows 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 (output).
- Material/Product Flow - shows the step-by-step software development life cycle from generating an idea to releasing it to the customer as a feature.
- Time Flow - shows a visual representation of production (added value) vs. waiting (added waste) time.
Following software metrics are also used to analyze the productivity in VSM.
- Cycle time (C/T) - the amount of time needed to complete a task.
- Setup Time (S/T) - the amount of time needed to prepare for an operation or process.
- Uptime (%) - the percentage of time a process or system is active.
- Lead Time - the completion time for the entire operation/process.
- Takt Time - the rate at which you need to produce your products to meet customer demand (Click here to learn how to calculate Takt time)
Step 2. Create a Current State Map
The next step is to create a current state map. It describes how the team works. It will show the current steps and the time required to complete them. It will help you clearly identify the areas under-allocated or over-allocated with resources. It also enables you to determine the steps that actually add value to your final product.
In software development, the most value-adding step of the process is the development process. Though Quality Control / Quality Testing adds value, many consider it an indirect value addition as it only increases the final product’s quality.
Step 3. Prepare for Kaizen Bursts
Kaizen Bursts are one-time team-focused activities. They are implemented to find a realistic solution to resolve bottleneck issues, and they are planned as a part of the improvement strategy. Their goal is to work on a single pressing task.
For example, if there is a feature that needs to be completed and other parties are waiting for it, managers would often request the team to focus on that particular feature for a short period of time (usually 3-5 days) to complete it and resolve the bottleneck and quickly remove the barrier, waste or implement a solution.
A typical Kaizen Burst consists of a series of standard activities. First, you should start with the current state. Then try to identify the problem area and brainstorm for opportunities to improve. Then implement and refine them. Finally, identify the employees affected by the changes and train them.
Step 4. Identify and Eliminate Waste Areas
Once you create the VSM for your current state, you can easily spot and remove the wasteful steps. The goal is to make the most out of your production line by eliminating wasteful steps.
A normal VSM helps you identify the eight wastes of lean in the value stream. Here we have customized it to match with the software development process and have identified a couple of such areas as below:
Partially Completed Work - Partially completed work can occur due to multiple reasons, such as unclear acceptance criteria, which may block both the developer and the tester. It could also be due to other tasks such as uncompleted automation and unit testing.
Extra Features - Sometimes, the client may request extra/nice to have features. We might still create stories/tasks for these features, which have less priority. These tasks can sometimes eat up the bandwidth.
Lack of Documentation - Having to relearn something is a waste of time and money. Lack of documentation on the architecture of different applications and previously resolved issues usually results in this kind of waste.
Miscommunication & Incomplete Knowledge Transfer - When new team members join the team, or when the project is handed off to someone new, they should be given adequate information about the project to continue with the work. Otherwise, they will make poor decisions without proper knowledge on the subject, leading to waste.
Project Dependencies - Dependencies among projects usually cause delays when one team has to wait till the others finish their part of the app. Reevaluating each team’s project timeline can help reduce other teams’ waiting periods.
Task Switching - One of the major problems most developers face is the inability to focus on one task due to task switching. This delays their work, and sometimes the tasks they do or meetings they attend do not add any value to the product they work on.
Production Issues - Another thing that distracts team members is the production issues identified by customers after a release. These require abandoning all the current work to find a fix and release an update.
Step 5. Create a Future Value Stream Map
Now that you have identified the wasteful areas in your current value stream map. You can create a future one by eliminating those wasteful steps. The future stream value map visualizes how the software development process in your company should look.
The future value stream map is a guide. It should be regularly revised to match the changing priorities.
Conclusion
Value stream mapping is used to optimize the entire software development process. 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.
The goal of all this is to develop a workflow that gets the most out of the development team and results in the best possible product that meets or exceeds customer expectations. This is done by making continual improvements to the value stream.
Lance Dacy is a Certified Scrum Trainer® who’s passionate about applying Scrum beyond technology to all areas of business and life. If you’d like more education or certifications related to this topic, check out the upcoming class schedule.