When a once-in-a-generation health emergency turned the world upside down, organizations responded – sometimes in dramatic fashion – to accommodate the abrupt changes forced by the pandemic.
One takeaway the business world took from this real-time learning experience was the realization that speed and flexibility were more than nice-sounding cliches: in the era of the digital enterprise, they spell the difference between success and failure.
But in the scramble to catch up with current events, many enterprises were confronted by the fact that their application portfolios and processes had been designed in an earlier era and still addressed challenges from that pre-digital past.
We’re now at one of those periodic junctures where technology is going to allow the business world to head in a different direction when it comes to how to develop applications. It’s called “composability,” a concept that’s finally coming into its own.
A New Era in Enterprise Software
Already a number of digital businesses are adopting a composable approach to development, treating applications as if they are interchangeable. Their ranks are only going to swell throughout the rest of the year and into the future.
The general idea is that enterprises could innovate and satisfy new business needs faster by moving away from what Gartner has described as “inflexible, monolithic applications” in their portfolio. In its stead, this more modular approach would allow a composable enterprise to rely upon the assembly and combination of existing business capabilities – essentially the disaggregation of packaged applications – and thus accelerate app development to a degree never before seen.
The idea of reusability has been around the industry for a while. Earlier in my career, as one of the co-founders at Forte, I waded into the usability waters in a preliminary way. For example, you would use our software to create a printing object to print your papers that you could then use over and over again. It was an object that went off and figured out how to call the printer and do it again and again. That was developed to automate relatively low-level functions.
Fast-forward to the present and application development managers, whether they be in OT or IT organizations, are struggling to develop next-generation systems.
The amount of software in the world they need is astronomical and growing exponentially each year. At this rate, however, it’s going to be impossible to supply them with all the software they require to digitally transform their organizations.
We need a better mechanism because the current development model doesn’t scale fast enough. First, there aren’t enough programmers to go around. And even if there were, it would be cost-prohibitive for every enterprise to operate as an independent software development lab. What’s needed are high levels of reusability.
The composable development model answers this need by abstracting away the underlying functionality of an application, shielding the user or developer from needing to manage or think about the working details of a subsystem. This ability to reassemble code as opposed to having it written from scratch opens up a world of new possibilities, particularly as no-code/low code platforms proliferate, relieving engineers of the time-consuming burden of hand-coding corporate applications.
Collections of components – at Vantiq we call them assemblies – can be configured and customized or applied to the specific problem that you’re trying to tackle. These configurable components can later be applied to other use cases as the organization deems necessary.
Traditionally, when you got a component, it was a binary that had already been compiled as code. In order to use it, you would have to deploy it within a relatively contained set of applications. It did what it did and that wouldn’t change.
Now, this component extensibility will allow “composable enterprises” to develop systems from conceptually larger components by using low-code techniques as they convert applications into assemblies.
Think about what it means to be using a set of reusable building blocks for apps that are themselves configurable and reusable inside of the apps. Until recently, apps were not reusable. But with this new development model, corporate developers never again need to solve the same problem over and over again because you’re making projects reusable and configurable.
This is a huge time saver, for both the person creating the component, the author, as well as the person using the component in their application, the consumer.
Components authors can now define limits of configurability, rapidly creating their own reusable macro patterns while the components themselves can be as domain-specific as the Author wants.
What’s more, we can now hide much of the implementation of the component so that authors can focus on their work. At the same time, we’ll expose as little to the consumer so they don’t have to worry about the technical implementation.
Think about how this would help systems integrators working in verticals like smart cities. They could apply a modular portion from an existing software project to another job without needing to go in and fundamentally change what’s going on under the hood. That translates into huge productivity gains.
In the future, users will be able to extend the utility of a component, specifying what business functionality they want without needing to know a lot of coding details. That, in turn, paves the way for organizations to easily build components that solve business problems of today and the future.
And that’s going to be quite the big deal.