The value of having predictable flow in software development has been recognized since lean manufacturing principles were first applied to its processes. More recently, software pros have witnessed the rise of value stream management (VSM) to map and track software flow.
Although VSM has taken us a long way, its focus remains on eliminating process waste—from extra features to excess wait time—in order to accelerate and improve outcomes.
With few exceptions, companies aren’t mapping everything necessary to optimize software delivery. The focus on value streams is causing them to ignore—or at least overlook—another crucial aspect of efficient software delivery: the flow of work. Consequently, they are still not achieving the best possible outcomes with VSM.
This is significant because the cost of poor-quality software is astronomical. In 2018, in the US alone, it was approximately $2.84 trillion, according to the Consortium for Information and Software Quality. In the two years since then, it has only gotten worse.
The solution to this profit-killing challenge is to implement a rigorous governance program. Here’s what you need to know.
The value of good governance
Governance in software delivery addresses the way that work (e.g., human activities) moves code through the pipeline (as opposed to process or material activities). Only when organizations evaluate and optimize their governance models can they optimize their flow. Ironically, many companies not only don’t have a governance model, but they wouldn’t be able to govern it if they did.
Without governance, software flow and resulting outcomes can be significantly and negatively impacted. Common issues include:
- Missed delivery dates
- Unsatisfied customers
- Difficulty measuring and/or managing
- Lack of visibility and predictability
- Long lead times
- Poor quality
- Overruns and costs not tied to business outcomes
- Failed initiatives in DevOps and agile
Virtually all organizations need a governance plan. They need someone to champion the effort and get buy-in from management to develop the program, initiate and run it, and train personnel.
The road to good governance
So how do you move your organization toward good governance? Map not only your value stream but also your governance model. Consider how work moves through the organization. Break it down into its subcomponents—the human activities that take place as projects move from user stories and epics through development to testing and production.
In addition, do a little digging to find out what work-based impediments are typically affecting flow.
- Is testing being held up when developers have questions about change requests and stop coding as they wait for answers?
- Do quality control team members become fixated with defects they feel need to be corrected in the current release, rather than waiting for the next one?
- In other words, are activities taking place where impediments are being introduced that have nothing to do with code?
This may be an oversimplification, but you get the gist. In most software organizations, problems such as these crop up every day. No amount of value stream mapping and management can stop people from doing what they’re prone to do. However, a fully developed, effectively managed governance model can go a long way toward addressing the problem.
How to make good governance even better
Once you evaluate and map the flow of non-material activities, the next step is to optimize it. Look at how your workflow, with typical impediments you have mapped, affects material flow, starting with your release objective. If your goal is to release code every five minutes, look at how the flow of work is supporting that goal, or not.
Note that value stream impediments may also be preventing you from attaining your release cycle goals, so it’s important to differentiate between the two. A governance model will solve your people problem, ensuring that your flow of work can keep up with your release objectives.
Then, you must govern the governance model itself, because people will be people. Over time, the individuals charged with maintaining the governance model may not follow through on all their tasks. They may have trouble deciding which work impediments should be prioritized.
Working with a cross-functional team, conduct relevant activities such as:
- Developing a list of impediments that do or could impact the flow of work
- Prioritizing them based upon their ability to delay release cycles
- Putting checks and balances in place to ensure governance is managed properly
- Identifying someone to act as a governance manager (or finding a qualified outside contractor) to create a functioning structure for prioritizing work impediments that arise
Does this sound like too much? It’s not.
Maybe you think your firm isn’t ready to achieve this pinnacle, where you are effectively governing your software flow and managing your value streams, processes, and people. If that’s the case, it’s even more likely that lack of governance is dramatically affecting outcomes, delaying release cycles, and costing your firm money.
Here’s the crux of the matter. While governance can’t fix problems that arise during release cycles, it can help prevent them from happening. In a world where release cadences have accelerated rapidly, governance is more critical than ever, yet it is often viewed as impractical or unachievable. Companies with this mindset usually need governance the most.