Breadcrumb
-
- Blog
- The Complete Stack
The Complete Stack
The tech stack is a common convention in tech fields: Systems are composed of layers each of which provides functionality to the layer above and uses functionality of the layer below. Software sits at the top, operating over networks that use physical hardware. The layers function independently and can be substituted as appropriate.
The tech stack is a generic model based on the Open Systems Interconnection (OSI) reference model [1] and Internet Protocol Suite, specifically those for Applications and Support [2] and Communications layers [3]. There are many different versions of it because it is different for each system. It has been adapted to AI and cloud services as examples.
Broadband providers handle the bottom layers of the stack — the physical infrastructure — without knowing or caring what goes over it, as do cellular, hosting, VPN, etc. services. Software developers describe themselves as “full stack” because they build both the back and front end for applications effectively ignoring networks and physical components. The devices, network gear, and other physical components must placed somewhere. Someone has to use the software.
The stack is a powerful, simple model that makes systems flexible and efficient. It is even more useful in the context of purpose — why the system exists — the processes for which it is used and the capabilities of the people who use it. There are layers above and below the tech stack that determine the viability of the system(s) it represents. It is critical to understanding the complete stack to ensure the various components to fit together in an optimal way to meet the purpose.
The Complete Stack
The complete stack represents information infrastructure, a set of information systems that work seamlessly and transparently together for some purpose or goal. Indeed, as shown in the figure below, that is the top layer of the complete stack! It is the why.
Various activities, typically grouped into processes, support the purpose and achieve the goals, as illustrated below. Capabilities, which are inherently owned by people, are necessary to carry out those activities, using the rest of the tech stack. Facilities, the physical space and buildings in which the components exist, is at the base of the complete stack.
The Network and Software layers consist of sub-layers, which could be differ depending on the system. Access and security are twin layers that span all other layers and come with trade-offs: the more access, the less security, and vice-versa. Data flows across the stack all of the layers as well as residing in its own layer. Each layer acts on the data, adding and using additional data to ensure that the primary data flows exactly and only when and where it is needed. Access allows the flow and security restricts it.
Practical and Strategic Implications
Decision makers don’t have to be techies but they should understand the general content and structure of their stacks. We use multiple stacks, especially in complex organizations, for each part of the value chain. The various stacks may be totally separate but often benefit from integration. For example, you want your contacts software to work with your phone and your email apps, regardless of what device or network they’re on.
Components of the stack are provided by various means, handled by different people and organizations. Small change in one layer or component can have big impacts to other layers. Issues can be difficult to diagnose and resolve in complex stacks. And, stacks can get complicated very quickly even when we try to keep them simple.
For a system to be effective and functional the upper layers must determine the functionality provided by the layers below. If your purposes involve outdoor activities, for example, the rest of the stack will be very different than for place-specific activities. Conversely, the lower layers’ functionality limits or restricts layers above. You need knowledge and skills to use software installed on your device.
Everyone involved in the stack must be aware of how and where they fit. Their general tasks should be to consistently provide the required functionality and continuously seek to improve and simplify the operations. All should attend to the top of the stack and be able to clearly describe how they support it, provide access and security, and make effective use of lower layer assets.
A Power Tool for Planning
Most any human endeavor involves information systems. Ideally, those systems effectively, fully, and transparently support the purposes, all of the components operate correctly and together. When changes are appropriate, they should be reasonably easy to make with minimal negative effects. That requires planning.
The complete stack is very useful for this. A simple way to use it is to have current and ideal state models with plans for how to evolve the stack and versions of the stack for each step. Plug it into our Digital Development model to determine changes needed for automation, customization, and innovation. The stack is a useful reference for people in all areas and aspects of the system. It shows them where they fit, enabling them to collaborate with and complement others.
Each layer and component in the stack has some cost associated. And, as noted above, there is data added and used at each layer, transparently to others. Combining cost information with utilization data allows for detailed analysis to identify potential economies, risks, and roadblocks. All of this data can be used for contingency planning and to establish indicators for performance monitoring and scenario planning.
Putting the Complete Stack to Work
Use the complete stack as a thinking tool. What are the major or most important components at each layer in your system(s)? Identify metrics and indicators for each layer and major components. How do you know if they are performing well or not? What happens if a component fails, especially if it fails silently? What are the alternatives? Engage your tech folks in the discussion. They will get it immediately.
Think about how your stack relates to your stakeholders’ stacks. Share your stack with others. Ask them how it compares to theirs. Where do they diverge and where they overlap? Where to you share components? Use the Chattanooga.Digital Strategic Planning Tool to identify goals, issues, needs, and opportunities and relate those back to your stacks. How do they align? What are objectives, issues, needs, and opportunities for each stack, especially components that are shared across stacks? Research the options and what is required to deploy, manage, and use them.
Possibly most importantly, focus on the top of the stack. This is what connects the stack to portions of your value chain (see x for more about the value chain model). How and where do access and security impact purpose? What components don’t align with or limit it? Make this a core element of your strategic planning purposes by asking how goals are impacted, constrained or enabled, by your stack. Use it to surface critical but unrecognized elements. Continuously ask, “how can we tune our stack to better achieve our purpose and create more value for others?”
Notes
1ISO/IEC, INTERNATIONAL STANDARD 7498-1, Information technology - Open Systems Interconnection - Basic Reference Model: The Basic Model, Second edition, November 15, 1994, corrected and reprinted, June 15, 1996.
2Internet Engineering Task Force Network Working Group, Request for Comments: 1123, “Requirements for Internet Hosts -- Application and Support,” R. Braden, Editor, October 1989, https://datatracker.ietf.org/doc/html/rfc1123
3Internet Engineering Task Force Network Working Group, Request for Comments: 1122. “Requirements for Internet Hosts -- Communication Layers”, R. Braden, Editor, October 1989, https://datatracker.ietf.org/doc/html/rfc1122