According to a definition from Forbes in 2019, Value Stream Management (VSM) is a lean business practice. It helps determine the value of software development and delivery efforts and resources. Additionally, it also helps to improve the flow of value to the organization, while managing and monitoring the software delivery life cycle from end-to-end. Sounds great, right! But, why is value stream management important?
Why Is Value Stream Management Important?
Value Stream Management is important to organizations because software is at the heart of everything. Your leadership knows that software delivery efficiency is the way to win the game. And that’s regardless of whether you’re:
- A large retailer that needs software to manage its supply chain and its “customers” are the internal associates in their retail stores.
- A completely virtual business that provides software to deliver value in a B2C environment.
Value Stream Management focuses on everything from concept to cash. It optimizes the flow from left to right in that concept.
Value Stream Mapping is the art of diagramming all of the pieces in the value stream. Companies can visualize the process to get software products to customers, along with the latency or cycle time for each stage. Below, is an example of a software process for many companies.
Let’s quickly describe what is happening in the diagram above. There are two types of inputs for the software development process:
- Ideas for new features or functions.
- Bug fixes.
Ideas for new features or functions
The ideas for new features and functionality comes from industry research, product comparison, roadmapping and other techniques. In this article, I won’t discuss more of that process. Instead, I’ll focus on the output of those processes. They will have new epics and features added to the backlog.
Similarly, bug fixes end up on the backlog due to a process that normally involves client feedback. Or, support issues that can’t be resolved without development intervention and other methods. The output of those methods again puts something on the product backlog. This needs to be prioritized and executed by the software development team(s).
In the next phase of the process, someone conducts basic business analysis on these requests and prioritizes them.
The priority depends on many different factors including cost, time, risk, and so on. The output of that process is a prioritized list of items for the software development team(s) to work on. In different organizations product managers, business analysts, product owners, or other roles may prioritize this backlog of work.
App Development and QA Testing
Next, the software teams will code and build the product. The work here involves writing and integrating code to the point where it can be tested by quality assurance teams either manually or automatically via automated testing software. Regardless of the testing process, quality is reviewed to a specific standard. Then it can be deployed to production.
Release Management and IT Ops
Once the software has been tested and meets the standards, it is given to a team or system that will deploy the software to production and ensure it operates correctly. Sometimes this is a separate release. Other times, it’s people in the IT department deploying the new software updates. Now, the software is delivered to the production and potentially to the end customer. Sometimes, feature flags are used. Therefore features are not actually deployed to the customer even though the code has been deployed to production. Someone else is responsible for “flipping the switch” and enabling the feature. This could be:
- From the line of business such as product management.
- Product owners.
- Another business leader.
The Forbes article also goes on to say that Value Stream Management offers a unique view of the software delivery life cycle. This view is through the customer experience lens, to better align with business objectives and to scale agile and DevOps transformations.
As we know, software is not delivered to the customer until they can consume the value produced. So value is not recognized by the customer until after software has been deployed. At no time in the process outlined above is the value delivered before that point. Therefore, to increase value stream management, organizations must invest in continuous integration and continuous delivery for their software delivery.
Smaller batches of software work,
deployed more frequently,
with less planning and more adaptability,
by people working better together.
Smaller Batches of Software Work
Let’s explain some of the reasons this definition is easy for organizations to understand.
Smaller batches of work are:
- Easier to roll forward.
- Easier to roll backwards.
Now, your value stream management excels at delivering value quickly to clients. It does this by providing them something new daily, or weekly. In comparison to once per year.
The ability to quickly deploy and roll back is one of the core components of DevOps. (This is achieved by ensuring the deployment process is small but frequent.) If we can isolate the small changes we are making, then we know when systems react negatively to a deployment. Equally, we can easily make those adjustments. If you make 1,000 changes at once and there’s a problem in the deployment, debugging becomes a huge challenge. As someone who has debugged in both types of situations, I’d prefer to know what small changes were made last. Then, I don’t have to test and debug 1,000 changes to find the “needle in the haystack”.
Deployed More Frequently
Nowadays, businesses shouldn’t want to be limited to one or two deployments a year. Instead, we want to do one or two deployments a day, or an hour, or a minute if possible. Very small changes deployed to production more frequently help lower the time on the cycle from development to customer-realized value. This increases customer satisfaction, customer feedback, and improves our ability to learn from the products we are putting into the marketplace. Customers will give us feedback on what they like and don’t like. This allows us to ensure we are working on the most valuable features and parts of our products, not the ones that clients won’t use or don’t see value in.
Value Stream Management Allows For Less Planning and More Adaptability
Nobody can see the future. That’s why we have to have a balance planning and adaptability. We need to keep staff accountable for things they say they are going to do. However, overengineering by project management death march is not a scalable model for success in today’s software delivery practices. Instead, teams need to have autonomy within our teams. A feeling they can make changes to the plan when presented with new information. This is what true agile practices, and the agile mindset, were created for: Enabling the implementation of more iterative and agile practices leverages learning. It does this by incorporating minimal planning at each step. That doesn’t mean “no planning”. Planning and re-planning are incorporated at each step based on new accumulated knowledge.
There is a human component to DevOps. It is the hardest component to master. However, it is the most rewarding component when it works.
When people ask “how can I improve my DevOps culture?”, my answer is:
Improve your DevOps culture by starting with the prioritization of open and transparent communication. Not by adding a new DevOps tool to your stack.
Allowing open and transparent communication is essential to team collaboration and creating a better environment. Sometimes, it needs to be brutally open and transparent to drive results. Historically when developing software, developers would throw software over the wall to IT Ops. Then IT Ops would have to deploy and manage it. This included little to no communication on the deployment and management part. Furthermore, it included a bare minimum (and sometimes non-existent) feedback loop from IT Ops. This was a huge gap for driving value and better outcomes. A shared vision and setting of goals by leadership can only go so far in fostering better communication. Team members need a safe environment where they can:
- Share information.
- Express their ideas without negative consequences.
How To Implement Value Stream Management And Deliver Products Faster?
Instead of focusing on “features and functions”, or software delivery success cycles, focus on identifying and examining value streams. Through value stream management, teams can expend more time and energy on what works. Additionally, they can shift away from what doesn’t. With effective value stream management, teams can:
- Isolate process issues.
- Discuss issues and concerns.
- Solutionize and minimize waste
- Reduce cycle times to deliver client value faster.
Value Stream Management In Action
In the example below, I have added the cycle time for each part of the value stream. The largest cycle times listed are the prioritization of the ideas and bug fixes in the “Business Analysis” stage. Additionally, most time is consumed for the Release Management team to get the updates to production. In the Lean model, this would most likely mean that there is waste in those areas that can be removed to help improve the flow and help deliver value more quickly.
Spending time and effort to optimize your Release Management phase could result in moving from an 8-week phase to a matter of only a few days or hours. Continuous delivery tools like CloudBees CD/RO can provide o huge value to organizations seeking to streamline this phase of the process. I highly recommend the Release Management phase as a great place to start in your value stream mapping
There are other areas that can also be improved too.
Another area that could is the Testing phase. You could focus on whether testers are manually testing code updates. Alternatively, you could explore whether their test cases take up too much manual time. Yes, there could be other reasons. But typically, if this phase of the value stream has a large cycle time, then automated testing could help tremendously.
TDD or Test Driven Development or ATDD Automated Test Driven Development are methods that could help move from manual testing to more automated testing. This reduces cycle times in the QA and testing phase. There are differences between the two methods. For example, TDD requires unit tests whereas ATDD uses acceptance tests. In other words, when you combine TDD and ATDD, you are creating low-level and high-level tests for your application. To develop and release robust, high-quality applications, you need tests at different levels.
Visualising Value Stream Management Is Powerful
Lastly, visualizing this diagram can be powerful for leaders. I’ve seen many companies who see the total amount of 24 weeks (the total of all cycle times) as the time to go from concept to cash. They immediately assume if they throw more bodies into value stream management, it will result in less time. However, as you can see, the actual development application time in this value stream is only 2 weeks. Therefore, in one sprint, the work committed is completed. Adding more development teams could help go through more of the backlog. However, that’s a shorter stage in the value stream. It may not yield the value versus the optimization time.
Now you can see why value stream management is an important step. Particularly for companies developing software. It is critical to harmonize value stream management with DevOps practices. This ensures consistent and effective value delivery.
Our team has plenty of value stream management experience. We’re trusted by global industry-leading manufacturers to drive value delivery changes and improve DevOps practices.
With over 20 years of experience, SPK’s experts are available to answer your questions and architect your desired business outcomes with the right solutions.
Contact our team to get questions answered or a free DevOps or value stream mapping consultation today.