What is the “Digital Supply Chain” and why is it important to your organisation and to DevOps as a practice?
The concept of the “Digital Supply Chain” is a different way of looking at the SDLC and the Continuous Delivery “pipeline” that we feel makes it easier for traditional organisations to understand the criticality of software delivery (and by extension DevOps) in the modern world.
Any organisation that deals with physical goods understands the concept of the supply chain. They are intimately familiar with ideas like supply chain management, supply chain optimisation and, most importantly, they understand the economics of inventory in the supply chain e.g the carrying cost of inventory.
So what is the “Digital Supply Chain”?
The current definitions of the digital supply chain are anchored in the “New Media” sector and focus on digital assets like music, video etc
“The “digital supply chain” is a “new media” term which encompasses the process of the delivery of digital media, be it music or video, by electronic means, from the point of origin (content provider) to destination (consumer).” – Wikipedia
The Wikipedia article references above breaks it down into a number of discrete steps as shown in Figure 1 below.
If we contrast this with our SDLC Continuous Delivery Pipeline (Figure 2) we can see that many of the steps are directly analogous – we are creating digital assets (code) which we then “compress” (i.e. the Build/Integrate process), which we then subject to Quality Control (Test), we store in a Digital Asset Management system (e.g. like Nexus or Artifactory), we tag it with metadata (e.g. what release/version we’re deploying) and when then deploy it out to servers, CDN’s, the AppStore or wherever.
Once your customers grasp the idea that software is a digital asset and that carrying excess inventory and delays in moving these digital assets along the supply chain is costing them money it can be a lightbulb moment for many organisations.
Software assets can depreciate over time. Indeed “technical debt” can be looked at as the “cost of deprecation” of your software assets over time.
Code that is “stuck” in your Digital Supply Chain waiting for your next release (as source code in Git, or as artefacts in an artefact repository) represents a capital investment in “digital assets” held as “digital inventory” and having it sat on the digital shelf in your digital warehouse is costing you money is analogous to the carrying cost of inventory for physical inventory.
Sure, the warehousing costs of a digital asset – your latest idea transformed into software code – is fairly trivial compared to the costs of physical warehousing BUT the “opportunity cost” is very real.
Each digital software asset represents a significant investment in time & money by your designers, developers, testers, project managers etc and it doesn’t start generating a return on that investment until it gets to the end of your digital supply chain and into the hands of your customers.
DevOps then becomes a way to optimise your digital supply chain to ensure that we:
- only build the right things (reducing waste and optimising our digital inventory),
- Supplier management (by improving the relationships between Dev, Test, Ops etc we ensure that we are getting the best from all of the “suppliers” in our digital supply chain)
- improving our logistics to get our digital assets in the hand of our customers (by automating testing, release and deployment to accelerate the movement of the digital assets from left to right)
- Constantly seeking “flow” across the supply chain (the 1st way of DevOps!)
- Gathering metrics along the supply chain to give us insight into the bottlenecks (the M in the C.A.L.M.S model)
So next time you’re talking with people in the business try out the “Digital Supply Chain” analogy and see if it works for you – we’d love to hear your feedback!