How to Carve Out Value Streams from your Software Landscape

Søren Pedersen
6 min readJan 20, 2021

Over time, an organization’s landscape of software grows, ages, and becomes stale, if not entirely incompatible, and a risk for the business. As it is today, this is a real scenario facing many businesses whether they like it or not. It is something that happens over time and difficult to control.

In this article, I’ll share how to rediscover your solutions, qualify them, and make decisions on what their future should be.

A Short History of Software and the Internet

First, let’s take a moment to recognize the short time period software has been present. The first business computer applications were seen throughout the 70s and 80s, albeit they were far from what we know today. Secondly, the internet really broke through from the 1980s to 2004 (Wikipedia).

Keeping that in mind, the average lifespan of software is estimated at 6–10 years. We still see Windows NT servers and alike out there, underpinning the fact that solutions exist for many more years than anticipated. Often because they are running systems that cannot easily be replaced either due to cost or business criticality, but also sometimes due to simple neglect.

Implications

While past investments in software have moved the business forward and helped productivity, there are caveats to running old software.

Looking back a decade, a multitude of security vulnerabilities have been discovered, patched, and so forth. In the case legacy software is not kept up to date, it might be of considerable risk to the business. This is also amplified by increased connectivity and an increase of attack vectors since programming.

Carving Out Value Streams

From the complicated software landscape your company may have, it’s worthwhile to identify and reinforce your value streams.

This is significant, as your focus should be on “Key” activities. This often becomes blurred in personal opinions and preferences, rather than focused on what creates value. The word “Key” is emphasized as it is as much about making decisions on what is creating value, as much as deciding what is contributing or “Key” to the business. The purpose is to ensure that the software or IT you focus on is worth the attention and leverages your business.

If you’re unfamiliar with Software Value Streams, I recommend reading this post first.

Creating an overview

First and foremost you need an overview of the current running solutions. Hopefully, this can be established by investigating the CMDB in your company. However, in most cases, you need to apply some grunt-work and crawl through your organization.

If you do not have a CMDB I strongly recommend creating a record of all solutions, their owners, purpose, age, etc. While this is an extensive exercise, you need to button down and get it done.

You also need to ensure that moving forward you have strong processes surrounding the introduction or creation of new software. Out of control solutions in the future may pose serious problems down the road, as they tend to get solidly anchored and soon forgotten, leading to many sighs of frustration later on.

Assess Business Criticality and Impact

Decide what software you are using and how it impacts your business. As mentioned in the previous part, it’s important to identify Core Software.

I usually differentiate between three types of software in companies:

Core Software: Software that provides a (unique) competitive advantage in your business. Ex.:

  • Warehouse logistics providing faster time to market and lower than competitors cost of providing customers with goods
  • Specialized software providing unique calculations that cannot be replicated

Secondary Software: Software that provides hard to replicate capabilities to the organization.

I often find custom integrations between different systems in the organization in this category. Most likely it’s built on a technology platform such as Bizz Talk or similar. Worst case it is spreadsheets or custom-developed software, which may be hard to maintain and sustain going forward.

Tertiary Software: Items that do not provide any competitive advantages but provide convenience.

Tertiary Software is easily replaced by other comparable solutions. This could, for instance, be alarm systems, door locks, and so forth. It could also be office applications that are available in multiple brands and product lines. An obvious example is PowerPoint and its equals in other vendors’ portfolios.

Deciding on What is Core and Not Core

As always, I strongly recommend a series of workshops where different systems and software solutions are discussed.

First, the overview is sorted in terms of what they provide between the three categories. Though Tertiary Software solutions are often simple, their impact must not be underestimated.

Secondly, a further assessment should be made between Secondary and Core software. Often this will yield a list of items that need to be faced.

Understanding the Unique Selling Points of your product or offering is required. You may produce something similar to other products out there, but a select set of parameters most likely drives your sales.

What should be part of the Value Stream?

Fleshing out the details of Core Software might be slightly challenging.

I always aim to provide clients with a full solution defined by “A Unique Compelling Solution satisfying a specific need of a market space.” This must be seen in the context of a strategy development track. Choosing your Core Software will be deciding for future investments and the direction the company will go. At times, this may even redefine the entire company direction and structure.

Engineering-wise you will have to revisit your architecture and define what constitutes the product. You will also need to assess your organizational layout. A great way to execute this is to use Conway’s Law in reverse and define your team structure based on communication needs.

Another approach to enable the value stream is to use Leavitt’s Diamond, or another similarly balanced approach, to realign the organization.

You May have Several Supporting Value Streams

While probably a few of your solutions generate most of your revenue, you might need to set up several value streams. Nowadays most solutions are combined offerings requiring multiple value streams to operate in synchronization, such as the back-end of a music streaming service and the multiple front-ends rendering the music.

From an engineering perspective, it makes sense to split this into multiple value streams, perhaps even creating a framework allowing others to adopt or you to rapidly develop new front-ends, building on the back end.

But tackling how to engineer your value streams to create the necessary efficiency and flexibility is a subject best saved for a later post.

Further Considerations

While deciding on the Core of your value stream and the supporting solutions, you will also want to consider the following points related to the rest of your portfolio:

  • Do we still have competencies to maintain?
  • Are there significant security risks due to programming in a different “age”?
  • Bindings to external libraries that are unsupported?
  • Is the software protected against HW breakdowns?
  • Has the risk been recently re-assessed in the context of the current operating model?

If any of these topics stick out, it’s time to consider if those solutions either can be entirely removed or newer less risky alternatives exist.

In this post, I will not go into how to maintain your portfolio in detail. But if you want to know how to optimize your value stream, I recommend reading this article.

Final Words

Carving out your Core Software from the mass of systems developed and installed over time is a tough task. It requires an in-depth overview and understanding from both a business and an engineering perspective. Not doing so may lead to catastrophic business failure or loss of market shares to competitors who serve customers better.

I strongly recommend reviewing, reassessing, and sharpening your portfolio of software, continuously keeping your landscape up to date.

--

--

Søren Pedersen

Søren Pedersen is co-founder of BuildingBetterSoftware, international speaker, contributor for The DevOps Institute, and Agile software development expert.