team is working on a project and needs some information. They want to ask questions of an analyst but find they have to wait to get them answered. This happens because the analyst, wanting to stay productive, has started working with another team. The developers just sigh, go back and decide, well, in order for them to be productive (busy), they’ll have to work on something else too. Since they can’t continue with their original project they start working on a new feature. Before long, everybody is doing several things at once, each waiting for the other. It gets so bad that people stop trying to talk to each other and instead start using emails to communicate. And so it goes, worse and worse.
It is a horrible situation and all too common. We have all been there. We are incredibly busy but do not achieve real value compared with our efforts. We fall into this trap because the goal of productivity does not provide us insights into achieving it. Poor decisions are made because we take actions that increase local productivity – keeping each person working – but ignore the big picture – getting value delivered to our customers.
The Software Development Value Stream – A Necessary Component of Increasing True Productivity
This value stream is the flow of work from its conception to its consumption. Figure 3 illustrates this, showing the roles of the customer, business, management and development team.
Figure 3: A conceptual view of the software Development Value stream
Also illustrated in Figure 3 is we must go to our customers (internal or external) to see what they need. Business sponsors need to select, size, and prioritize those features that are going to be created. By creating the smallest features that are still useful from a customer’s perspective and viable for the business to deploy, product managers can provide work assignments that teams can quickly build and deploy. Teams, for their part, must learn how to develop in smaller steps than they may have been used to. Management’s job is to facilitate how teams’ interpret the business/customer need, provide visibility to the business of what is being accomplished and to improve the organization so that impediments to the value stream are removed. This combination of business, management and teams is required for agility at the enterprise level.
Cycle time: The key metric
The value stream provides us with a better metric to guide our decisions than productivity levels which may actually work against us. One way to lower induced work is to remove the delays that cause it. Reducing delays will reduce the time it takes for our work to flow from conception to consumption. We call this the value stream’s cycle time. Shortening our cycle time will necessarily shorten the delays between the work being done. This makes cycle time the key metric to focus on to see how efficient our process is. The value stream highlights where induced work is occurring by making the delays between our work visible. These delays show up as bottlenecks and delays. Looking at cycle time helps you understand when features are too big or when there are too many in the pipeline. Properly managing the size and number in your portfolio will have a significant impact on your cycle time.
Starting an Agile transition without considering Product Portfolio Management
The common mantra in the Agile world today is to start a pilot project – focused on creating team agility. The intention is to scale this process throughout the entire organization after one or two teams