Plutora Blog - Agile Release Management, Business Intelligence, Release Management, Value Stream Management
Value Streams in Software: A Definition and Detailed GuideReading time 11 minutes
Projects used to be the coin of the realm for software. Companies used projects to collect new features, organize teams, and manage investments.
Over the years, though, projects have fallen out of favor. In their place is the richer and more powerful concept of viewing features as being a continuous flow from an idea to the customer’s hands—the concept we call value streams. Technology makes projects easier, but it’s ultimately value streams and the associated mindset that are key for modern technology delivery.
In this post, we’ll explore value streams in detail, so you’ll understand what they are, how they work, and what are the next steps for you to take so you can move forward in applying them at your company.
Systematically improve your digital transformation journey while scaling Agile and DevOps across the enterprise.Learn More
Imagine you own a restaurant. From a customer’s perspective, he or she comes in and orders a meal, a waiter brings it out, and the customer pays and leaves. Do those steps capture the full set of activities needed? From your perspective, definitely not. As restaurant owner, you do so much more to deliver that meal to the customer.
First, you source ingredients from suppliers. Next, your chefs prep the raw ingredients to be made into dishes. At the same time, your staff clean and set the dining room for guests. At last, your restaurant opens, and guests arrive to be seated. Your chefs cook the meals and ensure it’s all delivered correctly and at the same time.
These (and many other activities, or if you prefer, processes) make up the value stream for your restaurant: those activities that are necessary to deliver a good or service to a customer.
What Is Value?
The central concept to a value stream is value, so let’s explore it in some detail first.
Value is any good, service, or product that you deliver to a customer. Or said another way, things that customers pay you money for are the value you deliver. In the restaurant example, customers choose your restaurant because you deliver a greater value than other options do. That’s because your meals are more delicious, or your ingredients are better, or you charge less than others for similar overall perceived quality. Any business in any industry faces the same challenge to determine the value it offers customers and to deliver that value profitably and consistently.
In our working example, a number of processes drive the ultimate delivery of a meal to the customer. For example, sourcing ingredients is one or more processes, depending on the number of suppliers. Similarly, prepping ingredients requires a variety of processes to chop vegetables, make stock, or perform similar activities. At last we arrive at a value stream—a set of processes that produce value for a customer.
All the processes for making a meal for a customer are necessary, but any one on its own offers little to no value. Think about it: Does a customer care about having prepped vegetables? Not particularly. A somewhat abstract way to think about it: Would customers demand that you prep vegetables if they could enjoy the same meal (the value) without it? In most cases, no, customers don’t care about you prepping or not prepping vegetables if their resulting experience is the same.
Similarly for software, customers don’t care whether you use the latest hot language, how you test your software, or what you’re using for source control. Instead, if customers get the value they expect (and pay for), then as far as they’re concerned, how you do that for them is irrelevant.
With that point in mind, minimize the number of processes or activities you need to create value for customers. This isn’t license to ignore important processes (such as testing). Instead, it’s a mandate to find creative ways to identify the processes you really need and to do them efficiently.
A Value Stream Is All the Activities
It’s important to note that a value stream is all the activities or processes you use to deliver value. Later in this post, when you learn about value stream mapping, remember this. It’s too easy to miss (or skip) activities that are part of the value chain. Doing so gives you a skewed view of the efforts and costs of delivering value. In the event your goal is to improve your value stream (which it should be), you’ll improve your efforts if you have a comprehensive picture of all parts—even the unexciting or messy ones.
The Parts of a Value Stream
Have you ever thought about why companies exist or how they grow? How do they stay in business in spite of competition?
It comes down to a simple proposition: Companies make money when they offer something of value to customers, attract enough customers to make it worthwhile to do so, and make enough profit to continue doing so.
Let’s briefly consider the parts of a value stream.
Creation, Delivery, and Capture
A useful way to subdivide a value stream is into three parts: creation, delivery, and capture.
- First, value creations are the key activities required to convert raw materials into a final, valuable offering. This can be a restaurant meal, a packaged item, or even an intangible, such as a software feature.
- Second, value delivery refers to those activities that get your offering in front of a customer. It’s a bit misnamed, since value delivery implies it could be a waiter bringing your meal out or software being deployed. Instead, delivery in this case means marketing to attract customers or sales to sign on new clients.
- Last, value capture is how you price your product or service, and thus what your profitability level is.
We’ll concern ourselves mostly with value creation (and to a lesser extent, delivery).
A Software Example
Let’s close this section by looking at a typical software development process through the value stream lens.
The flow begins with a value stream owner who has an idea. Next, the owner works with a dedicated development team to describe the problem and goal. Then, the development team breaks that problem and goal into items. (These items go by many names, including work items, user stories, and tickets. Regardless of the term and the debate around them, the key is that each item represents a deliverable unit of value.) Last, the development team completes its development and testing and deploys the changes, putting them into the customers’ hands.
Below is how this process looks when laid out as a value stream. First, the value stream from idea to deployment:
Next, the value stream of just the Design and Spec processes:
As discussed previously, it’s important to represent all steps in a value stream. This means both the right depth in each process as well as sufficient breadth from end to end. It’s also more important to build a comprehensive understanding of the value stream and all the processes than to worry about the design aesthetic or format.
The Software Development Challenge
The biggest challenge in developing software in a value stream approach is staying focused on customer value. Technologists are great optimizers. Given a process or two, we look for the best way to tweak and tune them for efficiency—and that’s the opposite of what we want for a value stream.
In a project-based world, this focus on efficiency makes sense. A project has a fixed budget (and usually tight deadlines), so it’s critical to have no wasted movements. As such, if there’s an opportunity to make changes “more efficiently” by organizing through technology, why wouldn’t you?
Here’s the thing, though. In a project world, the cost and schedule are the parameters to maximize. However, for a value stream, the goal is maximizing value over time. That’s a completely different equation.
It’s a hard habit to learn to focus on value first, but it’s absolutely necessary for a modern software development operation.
Now, don’t get me wrong. This isn’t an argument for being sloppy and inefficient at doing one’s work. Far from it!
In fact, it’s more critical than ever that software developers, testers, and everyone involved do their best work. That said, it makes sense to compose your processes to maximize your focus on value and to learn (or unlearn) habits that get in your way.
Improving Your Value Stream
The business world isn’t static. As a result, companies must continually improve their processes to maintain their profitability. Even the best processes lose efficiency over time.
For one thing, any company making good profits invites competitors, which means efficiency is necessary to keep profits at the same level. Second, new technologies and so-called disrupters threaten entire business models and force you to evolve even more dramatically.
You can improve your value stream in one of two ways: as a whole or at the process level.
Improving the Whole Value Stream
The whole value stream includes all the activities from marketing and sales through customer service and ongoing operations. There’s a constant need to add and remove activities from the stream to stay efficient. For example, you may decide to transition to a new customer relationship management system to better integrate marketing, sales, and customer support. Doing so will affect a number of processes. Also, this transition may cause you to realize that other processes aren’t adding enough value, and you can drop them.
It’s popular nowadays to call this transformation, but to me that’s a dangerous way to view it. Transformation implies a one-time event: We’ll transform for a quarter or two (or more), and then we’ll be in a new, static end state. In reality, companies and value streams need to constantly transform and evolve. As such, you should view transformation as being continuous. Unsurprisingly, then, a value stream is also continuous. That harmony isn’t accidental.
Last, keep in mind that so-called transformations—in other words, widespread changes to your value streams—are risky. They require significant investment and cause maximum discomfort to staff while they’re happening. In most cases, you temporarily introduce inefficiencies for the in-progress state, with the hopes of a payoff at the end. The danger there is getting staff’s continued support and buy-in while you’re making their lives harder. For those reasons, many transformations fail to pay off, and you should consider approaching their improvement more incrementally.
Improving the Individual Processes
The second way to improve your value stream is to improve specific processes. For example, let’s go back to the restaurant scenario. Your vegetable prep is taking too long, so you delay parts of it to service time. This cascades to higher staffing requirements and more time pressure during service. You can improve just the vegetable prep by buying a new tool to make that one process more efficient, or you can source pre-prepped vegetables. You’ll need to consider adapting other processes around it, but on a much smaller and more targeted scale.
How do you know what processes to improve? By using value stream mapping to find your bottlenecks, as described below.
Visualizing Your Value Stream
There’s an old saying in management: You can’t improve what you can’t measure. A similar saying I’d apply to value streams is: You can’t improve what you can’t visualize.
When agile and scrum became popular, they changed the software industry. Previously, projects ruled the day, and waterfall was the norm. As a result, Gantt charts with detailed project schedules and dependencies were popular.
Over the years, companies adopted agile and scrum, and both have become the norm. Top-performing companies continued to move forward, however, and have now embraced lean and kanban. Both of these methods align naturally with value streams, specifically software development as your means of value creation. Rather than reinventing the wheel, check out Plutora’s Value Stream Management platform. It’ll help you visualize your value stream end to end and find those opportunities to improve either holistically or at the process level.
In this article, we’ve discussed that value streams are the set of activities you need in order to deliver a good or service or product to a customer. The next step is to map your value stream so you can understand and manage it end to end for maximum value. Even better, check out the Value Management Platform from Plutora and let it save you time and effort. For details on changing your software development processes for better value-focused delivery, check out Why You Should Be Building Product-Oriented Teams.