Steps of FLEXProvide Feedback
When looking at challenges, it is important to also look at the intentions they are challenges to. In other words, if you are having a problem, there is always some objective you have that the problem is in the way of. We suggest that an organization’s intent should be to achieve business agility: the fast realization of business value predictably, sustainably, and with high quality. Figure 1 depicts some common challenges to flow.
Figure 1. Common challenges to flow.
Select the value to realize and keep it in a Business backlog
Most companies create a program backlog that is a list of main value-added items to create. This is typically at a high-level and stated in business terms.
Challenge: Product backlog not properly organized. When more than one business stakeholder is involved it is difficult to get agreement on what is truly important. Many of the challenges downstream (conflicting and unclear priorities) stem from this.
Challenge: Chunks of work too big. The size of items on the product backlogs are almost always bigger than they need to be. This is due to the focus on getting things finished as well as it is easier to get things approved at the beginning of a project that later when it likely has to go through some change control board.
Intention we want to manifest: We always have a limited capacity for development, but we must be careful about spending our capacity to those items that will add the greatest value for the cost involved.
Refine the Product Backlog to create a Program Backlog
The business backlog typically contains items that will be built by more than one team. Its backlog items need to be split up into smaller pieces so that they can be distributed to the teams that will work on them. As they are decomposed, more detail will be added. We only need to refine those items that will be worked on in the near term. These smaller chunks of value should be organized into a list sequenced in the approximate order of implementation. These items may require more than one team in order to both implement them and/or to manifest value from them.
Challenge: Unclear requirements. Requirements need to be refined. The common method of providing a high level set of requirements and having the technology group figure out the details does not work very well.
Intention we want to manifest: A business backlog is a list of items to create and realize value in the approximate order of implementation and delivery. In the early stage this backlog likely contains coarse descriptions of what is to be created.
The items from our program backlog must be built by our team. This implementation work is done by one or more teams.
Some people are constraints. It’s not that they try to be, it’s actually that they are needed by many different teams. There’s just not enough of them to go around.
Insufficient collaboration across teams. Teams tend to optimize themselves. This local optimization does not help throughput but works against it. Many a company has had success at the team level only to find that they can’t figure out how the teams should work together.
High Technical Debt. Technical debt is when code has been implemented in a manner that makes it both difficult and risky to change. Many symptoms of this is something that appears to be a simple change creates catastrophic side effects. Even when these side effects are avoided it may take a long time to implement the change. Although developers get a lot of blame for this (and they do have shared responsibility for it), much of this problem is due to the extreme pressure put on them by the other challenges listed above.
Intention we want to manifest: We want to build our software in an efficient manner. This means having the right capacity for the most important work to be done. Having the right capacity means we have all the right amounts of the right skills. When certain individuals’ skills or experience are in higher demand than they can manifest then they will be constraints to other individuals and teams.
We need our teams to work together in such a way that the highest items of business value are created quickly. In general, items of lower value should not slow down the release of items of higher value.
Integration and release
“Integration” Errors. Almost all “integration” errors are not due to integration, but are detected during integration. The real challenge is that teams get out of sync early on and don’t have quick feedback to let them know this.
Intention we want to manifest: Integration across teams is critical to see if the function built by one team works properly with the function built by other teams. We want our software to come together when each team completes their part of it. Continuous Integration and Continuous Deployment is ideal, but in any event we want this to be as efficient as possible and take as little time as possible.
Preparation for delivery includes several steps including final testing, ensuring proper documentation and materials for sales and support are available.
Management seems to fall to the extremes of micro-management or just helping out the teams. However, Lean-Management gives us alternatives. In particular, the role of mid-managers is to create the proper environment within which people can work autonomously.
Lack of systems thinking
Systems thinking is the attitude of viewing your entire organization as an interrelated system. Each part of your organization directly or indirectly affects other parts. When undertaking a transformation this is very important to keep in mind. To learn more about systems thinking, watch If Russ Ackoff had given a TED Talk.
Lack of visibility
Lack of visibility. Teams sometimes have visibility to their work and management can often see what is going into and coming out of a team. But the visibility of how teams are connected in the workflow, the amount of work going on in the company and the dependencies between teams is often poor.
Ops being blindsided and pulled in many directions. While teams may have consistent direction from their product owner, ops and shared services are pulled in multiple directions. Ops is in even worse shape as they often don’t see what work is coming their way.
Teams not understanding the business needs. Teams must understand why they are working on what they are working on as well as the relative importance of the work. There are many decisions that they can make better than anyone else but without this information they are most likely to just go into a heads-down mode and focus on their work and not attend to the context of bigger picture.
Culture not amenable to change
Lack of alignment on how to work with each other
Alignment is critical. This requires both what we’re all working towards and how we work together towards that.
Working on too many things
Most organizations have their people working on way more things that they should be. Most people think this is bad because of the multi-tasking that results. But what’s worse is that by working on too many things delays in workflow and feedback occur. These delays literally cause extra work to be done.