Revisiting the Theory of Constraints for the software supply chain

JE cortex bottlenecks Aug 2020As a supply chain software hack in a former life, I enjoy revisiting the parallels between the current state of the software supply chain, which trades in producing and moving bits of data around, in comparison to global supply chains, which build and deliver actual goods we can use.

The ongoing global epidemic and economic constraints have provided a forcing function on better supply chain planning within our software delivery practices — a topic I recently pondered in SD Times.

Eli Goldratt’s Theory of Constraints outlines a simple 5-step cycle for improving performance against constraints in just about any industrial scenario: identify, exploit, subordinate other concerns, elevate the constraint until it ceases to be a limitation, and then find the next broken constraint or bottleneck that improvement exposes.

If you only think of the software factory in project management terms — it follows that the number of features delivered is simply governed by a budget function of time and resources, minus failures. Feed project plans and component ‘designs and materials’ (and, pizza, as my Gartner analyst friend Thomas Murphy would joke) in one end of the software factory, and depending on how many skilled developers and testers are working together over a period of time, excellent software ‘products’ roll out the other end.

Treating the development shop like such a factory seldom results in valuable innovation. This is why Agile methodologies were born, and the DevOps movement later took hold, to enable greater collaboration and buy-in, higher levels of customer-centricity and quality, and an automation mindset that accelerates delivery.

The software supply chain — coordinating a complex web of the right people, systems and data, all contributing at the right time to deliver software for customers — is now experiencing its own Black Swan moment in these unprecedented times.

Freeing teams for remote work, and forever abandoning live scrums and late-night Ops war-rooms won’t get us there by itself either. This useful trend was already in the works anyway, as many of the most successful startups of the last decade relied on virtual teams of global talent and contributors to outpace geo-centric competitors.

It also doesn’t matter that instead of real boxes and containers, we’re moving ones and zeroes around in virtualized containers, with applications and services running on ever more ephemeral cloud infrastructures.

Parallel constraints in the software industry

The software supply chain may still have ineffable constraints in common with supply chains of other industries, besides time and skilled resources.

  1. Liquidity. This is a top issue for any other industry supply chain — how efficiently does money flow through the system? Whole suites of financing, factoring and settlement solutions try to solve the need for liquidity in the conventional supply chain world, where margins are thin and the time value of money is critical.

    In today’s SaaS and cloud-based IT world, customers buying on a monthly (MRR) basis may ask for leniency during a crisis, seek out lower cost alternatives, right when funding for innovative new projects is scarce. Partners may also be asked to step up and ease the burden. Budgets aren’t idealistic exercises for accountants to deal with anymore, as IT executives will become more conscious of cash flow than ever.

  2. Collaborative forecasting. Supply and demand forecasting is never an internal exercise — it requires analysis, requests and promises among all parties before orders are issued and goods assembled and delivered. Dell was among the first to perfect this approach with its own massive network of high-tech suppliers and fulfillment resources.

    Any IT business unit would do well to evaluate its own ability to not only forecast customer demand, but understand the readiness of all of its services partners, component software vendors and infrastructure providers to successfully deliver on customer promises.

  3. Inventory and WIP. Most ‘real’ companies maintain inventory buffers of both parts and finished goods, as well as a certain amount of work-in-process (WIP) in order to deal with volatile supply and demand, which represents an ongoing cost of business.

    While the DevOps movement has it right that technical debt is a primary bottleneck to progress, there’s still a lot of code and software that has productive value and can’t possibly be replaced, especially if it is maintained by other parties. To top it off, the modernization work itself becomes inventory in the pipeline.

    Process-aware software, such as DPA, RPA and low-code solutions, can help address some of this inventory backlog by enabling shared templates and reuse across organizations without creating more WIP (*Your results may vary depending on the process and tool of course!).

  4. Quality and compliance. Meeting standards and delivering products that work as promised to meet SLAs and internal SLOs that avoid customer churn, penalties and risk is universal to all industries.

    Investments in talent improvement, as well as baking in higher levels of repeatable automation, governance, change management and observability to our software, can do a lot to bring this constraint under control.

  5. Lifecycle service. In the automotive industry, it’s assumed that 60% or more of the total cost paid by customers for a vehicle will be spent on fuel, maintenance and parts, and not the initial purchase – so the necessity of capturing customer support and service revenue is more important than ever for software, even if some of that work is conducted by valued partners.

    Taking a more holistic view of network and integration resources makes all the difference here, both from a technology point of view as well as reinventing the business relationships themselves, even if they are developer community relationships, so the necessary ‘parts’ to keep the flow going will always be on hand when needed.

The Intellyx Take

These constraints seem like old hat to an old supply chain hack. Not that supply chain software and big iron enterprise software vendors avoid hoarding inventory better than the rest of the software world — most wouldn’t retire a SCM product even if it only has one remaining install in a china factory in Timbuktu.

In all industries, the profitability of upgrading an existing customer is three to five times higher than that of capturing a new one. This is why some vendors may now take a pause on new deals or projects in favor of eliminating constraints in their software supply chains to deliver for existing customers.

© 2020, Intellyx, LLC. Intellyx publishes the Cloud-Native Computing Poster, the weekly Cortex and Brain Candy newsletters, and advises business leaders and technology vendors on their digital transformation strategies. Intellyx retains editorial control over the content of this document. At the time of writing, no parties mentioned in this story are Intellyx customers. Image source:  Mathias Ripp, Bottlenecks, flickr open source.

SHARE THIS:

Principal Analyst & CMO, Intellyx. Twitter: @bluefug