Scope and complexity in software delivery
September 12, 2020 Last Updated: May 1, 2022
How can we define the scope and complexity of successful software delivery? And what exactly is ‘success?’ Within the software industry, the heart of success lies in successful customer outcomes - not the output or throughput of software development, the number of bugs in a shipped product, or a manager’s perceived project success.
How do we model and manage every part of the software delivery system into a successful customer outcome?
Value creation networks as drivers of successful customer outcomes
In any product-based organization, old or new, value creation networks drive customer success. These value creation networks span product definition, product realization, and product distribution and support. There are parallel threads across each of these domains, they overlap, and there are (hopefully) robust feedback mechanisms to drive performance.
The network will include external actors like suppliers, distributions, partners, and, most importantly, customers. Value creation networks can be modeled (Herrala, et al., 2011). However, they are used as a high-level overview of systems and processes.
Value nets encompass five important traits (Herrala, et al., 2011, p. 11):
- Agile and scalable: flexible production, distribution, and information flows;
- Customer-aligned: customer choices trigger activities in the value net;
- Fast flow: order-to-delivery cycles are fast and compressed;
- Collaborative and systemic: companies engage in value-creating relationships; and
- Digital: digital technology and digital supply chain concepts.
DevOps pipelines to define repeated software delivery processes
DevOps and holistic vendor/supply chain management drive integration between product and process. Design, software supply chain, architecture, operations, quality assurance, security, and compliance work together to power an end-to-end software delivery pipeline - another model of a subsystem within our system.
This pipeline is not just a developer’s new feature going out to production environments. The pipeline goes as far back as product strategy, ideation, and market research/analytics. The pipeline stretches out as far as customers achieving successful outcomes from the product or service (Gleb, 2021).
With so many actors, perspectives, processes, subsystems, disciplines, legal entities, and so forth, how can we get a clear picture of this socio-technical system, let alone improve and optimize it?
Isn’t the entire system too complex to model and manage?
We can tackle the modeling and management of complex software delivery systems with simplification, control, integration, and automation.
In some ways, it’s no surprise that simplification has taken a back seat in managing these systems. Job security, consulting fees, and waves of products are dependent on over-complicating what should be simple. While successful outcomes are best driven by simplification, control, integration, and automation, in that order, investments typically follow the reverse ordering.
Leaning towards value-adding activities
One way to narrow the scope of software delivery is to consider the question, “What adds value?”
Lean principles focus on value-adding activities, with an aggressive stance towards non-value-added activities (i.e., waste). As per ISACA (Information Systems Audit and Control Association), we can define these activities as those “that will directly achieve customer requirements and the ones for which the customer is willing to pay” (Mani, 2016, p. 1). Moreover, Mani proposes a handy diagram to illustrate lean methods related to waste in a value chain (Figure 2).
Why not focus software delivery management on the value-adding activities? Don’t further compound the waste of non-value-adding activities by modeling, simulating, or changing these activities - simply remove them. By focusing only on value-added activities, organizations can have clarity around their current value creation networks, even when those networks span a wide variety of stakeholders and disciplines.
Value chain operations reference modeling
The Value Chain Operations Reference (VCOR) model can be a valuable format for capturing the structure and behavior of the value creation network (Heinzel, 2005; Ouzrout, et al., 2009). This modeling is relatively industry-agnostic yet generates precise, actionable insights when a holistic perspective drives the model creation. While many elements make up a VCOR model, repeatable, data-rich modeling can be done by a team.
Once defined, we can use simulation to see the effects of changes to the underlying model. Typically, this has been the domain of supply chain simulation (Ouzrout, et al., 2009). However, we can also apply it to software delivery (a supply chain type). Simulation of these models pushes the value proposition further by capturing system dynamics and bringing the model in close alignment with the existing socio-technical systems.
Grasping the scope and complexity of software delivery is inherently tricky. Yet, rules exist for simplifying the problem and already established patterns for capturing the complexity. The wheel does not need to be reinvented or overwhelmed by complexity. Understand your position, take a small data-driven step forward in an attractive direction,… repeat.
A foundational step to launch the team with a common vocabulary could be achieved with the team members embarking upon a self-study text:
- Operations and Supply Chain Management Essentials You Always Wanted to Know (Self-Learning Management Series) by Ashley McDonough,
Alternatively, playing online simulations such as:
Gleb, T. (2021). Build automated pipeline. In Systematic Cloud Migration (pp. 161-179). Apress, Berkeley, CA.
Heinzel, H. (2005). The value chain operations reference model as a framework to integrate and manage cross-enterprise business processes. In PLM’05: International Conference on Product Life Cycle Management.
Herrala, M., Pakkala, P., & Haapasalo, H. (2011). Value-creating networks–A conceptual model and analysis. Research reports in Department of Industrial Engineering and Management, 4, 2011.
Mani, V. (2016). Optimizing software development with lean value chain analysis. ISACA Journal, 2, 1-3.
Ouzrout, Y., Savino, M. M., Bouras, A., & Di Domenico, C. (2009). Supply chain management analysis: a simulation approach to the Value Chain Operations Reference (VCOR) model. International Journal of Value Chain Management, 3(3), 263-287.