At some point, your favorite app was an idea in someone's head. That idea grew into a design and a plan to implement. Then they built the app, tested it, and released it. Finally, you downloaded it.
The app prompts you to provide feedback based on your experience using it, so you share what you liked and didn't like about the app. You can suggest features that you wish the app had, which the app makers can use to iterate.
This cycle of idea, build, release, and user feedback is called the value flow. The value flow describes the steps required to move through this cycle to create value for the user. Value flow is all about aligning the work a team does with the desired business outcomes.
In this post, we're going to look at how to measure five key value flow metrics for software development. But first, let's understand value flow a bit better to understand what we're measuring.
Table of Contents
What Is Value Flow?
The concept of value flow (also known as "value stream") comes from the field of lean manufacturing. The core idea is simple. By understanding each stage in how customer value is created, an organization can identify sources of inefficiency and waste.
In practice, project managers and scrum coordinators leverage the principles of value flow by creating a value flow map. This is like a timeline that lays out each step of how a product gets built and delivered. By summarizing this information visually, it becomes easy to understand the entire production process, improve it, and ultimately achieve the desired business results.
Value flow map is a tool that enables teams to improve what Charity Majors, CTO at Honeycomb, calls the "socio-technical" systems that determine an engineer's productivity level:
Cycle Time & Value Flow
Cycle time is the core metric of modern software development teams working in a continuous merge/continuous integration/continuous delivery (CM/CI/CD) paradigm. But I'll let you in on a secret: Cycle time and value flow are almost the same thing!
Just like value flow mapping, cycle time is how you capture how long you're spending on each stage of the development process so that you can identify areas for improvement.
A big reason cycle time has become a core tool for CM/CI/CD is that CM/CI/CD standardizes the steps in the SDLC; teams don't have to create a value flow mapping for their processes from scratch. In addition, because software development leverages tools like Git and Jira, the data needed to construct accurate value flow mappings already exists.
The final piece is leveraging the data to create the actual mapping. With LinearB, we make this as easy as it can be. We seamlessly integrate with all your development tools to generate a mapping that is clear and always up to date:
This cycle time breakdown chart is so intuitive that I probably don't even need to explain it, but just to be safe: You can see the average amount of time your team is spending on each part of your development cycle. We then tell you whether each of those numbers is good (green), fair (orange), or red (poor).
Taking the example above, you can clearly see where action is needed. Review time is poor and pickup could also be improved as well. Just like that, you can take targeted action that will reduce your lead times and enable your team to ship more customer value. By the way, slow review and pickup times are particularly problematic because they cause high wait times for developers which results in low flow efficiency. We'll talk more about flow efficiency later.
And you can go even more granular with LinearB. In just one click, you can zoom in on the cycle times of individual issues to find the specific issues causing long cycle times.
What Are the Flow Metrics?
Flow metrics help you to determine how well your development pipeline is shipping user value. They help you to spot areas of improvement in your development cycles.
They five flow metrics are:
- Velocity: How much work is your team accomplishing in a set period of time?
- Distribution: What kind of work is your team accomplishing?
- Time: How long does it take to ship a new product increment from start to finish?
- Efficiency: How much time is your team spending on creating user value as a portion of total flow time?
- Load: How much work is currently in progress?
Let's look at how you can leverage LinearB to track each of these metrics in your team.
How much work is your team accomplishing in a set period of time?
In scrum system, flow velocity is your sprint velocity. The most common way to calculate it is by adding up the total number of story points completed during a sprint.
With LinearB's Project Delivery Tracker, you can easily see how much work you completed during each sprint.
What kind of work is your team accomplishing?
Is your team spending time shipping new user-facing features? Or are they having to spend a lot of time fixing bugs and paying off technical debt? These are questions of flow distribution.
LinearB's Investment Profile metric shows what kind of issues your team is accomplishing:
How long does it take to ship a new product increment from start to finish?
In a scrum framework, this is your cycle time. As we discussed at above, breaking down your cycle time into the sub-phases, as well as looking at the cycle times of individual issues, can give you the insight you need to start driving meaningful improvement.
How much time is your team spending on creating user value as a portion of total flow time?
In a software setting, flow efficiency is hard to precisely measure because software engineers don't have to punch in and punch out or spend their working time at a station in an assembly line such that it's easy to measure their work time. Plus, during the day your engineers likely have to spend time on other projects or on non-coding things like meetings.
But what you can track is how much of your team's work was planned versus unplanned, which you can see in LinearB's Investment Profile. Lots of unplanned work suggests that your team is having to fix bugs and put out other fires. While this does create value for the user, it likely isn't net new value, rather just work to ensure that already-created value is still working as expected. Reducing the amount of unplanned work will boost your flow efficiency.
How much work is currently in progress?
Flow load is the number of flow items your time is working on at one time. In other words, it is your work in progress (WIP). Increasing load is an obvious way to get your team delivering more value. But you have to be careful. Simply asking your team to take on a greater number of work items may work in the short term, but in the longer term it can lead to unending stress and employee unhappiness.
LinearB's Team Health metrics guard against overworking your team. We'll even alert you when an employee has maybe taken on too much work and is at risk of burning out.
Value flow metrics are all about helping teams ship the maximum amount of user value in the most efficient way. Although the concepts originated in manufacturing, they've become a core part of software development, particularly in the CI/CD framework.
With LinearB, you can start harnessing the power of flow metrics in minutes and empower your teams to ship more impactful code more quickly.
Flow metrics are one just way you can leverage LinearB. To find out about all the ways our platform can improve your engineering process at every level, reach out to set up a demo.