What Is Code Reuse?
A growing number of companies are willing to embrace composable business concepts to increase their business agility, speed up their time to market, and drastically augment their developers productivity over time.
While the concept makes sense on paper, it’s challenging to understand how to make it a reality. In this two part blog post series, we will explain what it means to be a composable business and how the OutSystems low-code platform and its best practices can turn these great concepts into pragmatic execution.
The first post will focus on the “what/why”, and the second will address the “how”.
What’s Changing in Software Development
The way we build software is changing. The idea that the software development process ends once deployed, as in waterfall methodologies, is no longer applicable to the current reality. Requirements change, use cases change, context changes. What you envisioned 10 weeks ago might no longer be suitable today, increasing your technical debt.
Therefore, CIOs, enterprise architects, and IT managers need to rethink how their development teams build software to ensure it’s flexible and adaptable, giving companies the agility they need to respond faster to market changes.
The times of uncertainty like the ones we’ve been living in the past few years have accelerated the need for companies to be agile and paved the path for the hype for composable businesses.
Business composability is not a new term. Back in 2013, Warner Music started its journey to become a software factory by delivering its vision of a composable enterprise. And even before that, OutSystems was already promoting developer productivity based on the concepts of modularity and reusability.
But let’s start from the beginning: what is composability, and why would you want to become a composable enterprise?
What Is Composability?
“Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.”
— Melvin E. Conway.
In other words, Conway’s law states that the way an organization structures its software mirrors the way how the organization is structured.
What does this have to do with composability? Well, if your organization Builds monolithic software, it will be based on a monolithic structure, which is not efficient or agile enough to compete in the modern market. But if it redesigns its organizational structure to promote smaller and distributed teams who get the authority and power to design, build, and change modular pieces of software, it’ll become more agile and competitive.
Composable business is a framework based on the idea of composing applications by assembling and combining Packaged Business Capabilities (PBCs, aka business components) instead of starting from scratch for every development project. This way, a company is able to accelerate time-to-market and adapt to market changes faster.
With the objective of increasing business agility, those PBCs will be designed in a way that provides the right level of granularity so the authority to change and enhance them can be delegated to smaller teams of individuals.
Those teams, composed of a product manager/owner, a process owner, business analysts, and developers, own a number of PBCs. They follow standards, processes and procedures to ensure the right level of communication, governance, and collaboration.
The Value of Composability for Business
From a business perspective, business composability gives organizations the agility to react and respond to market changes and adapt faster to external (and even internal) factors, like changing customer requirements overnight, a common occurrence for many businesses at the peak of the COVID-19 pandemic.
This is possible because instead of having one development team managing the whole monolith, companies have small dev teams, each one responsible for owning and managing individual PBCs. This way, whenever a change needs to be made, organizations don’t have to change the entire system, but only the PBC affected.
It also allows organizations to deliver new and innovative products easier, faster, less riskily, and, therefore, cheaply.
In addition to that, the modular composition of applications allows for bridging the traditional gap between business and IT since both business and users can assist the tasks needed to assemble the experience to the job they have to do. This way, applications and experiences are created more accurately from the beginning and can go to market much faster.
From a development perspective, business composability increases developer productivity exponentially as developers don’t start projects from scratch anymore. Each PBC, module or service a developer creates, be it a function call, logic flow, or database, will be reused in other applications boosting their productivity and the quality they achieve. So, in the end, the more developers build, the less they have to build.
The 4 Principles of Business Composability
Gartner, who has been an advocate for business composability, has identified four principles that should guide a composable enterprise and that reinforce the benefits of such model:
- Better leadership through orchestration: Prescribing and negotiating interactions between components—to enable recomposition and forming processes.
- Greater agility through modularity: Partitioning a domain into managed components—to scale and control change.
- More speed through discovery: Ability to discover and understand design opportunities and components—to guide, track and secure change.
- Resilience through autonomy: Minimizing dependence of components from each other—to maintain integrity of change.
How to Transform Your Business Into a Composable Enterprise
Business composability is not just about finding the right technology that promotes reusability and modularity. Technology is a critical part, for sure, but business composability implies a new operating model that also impacts people and processes.
Therefore, to be successful, organizations need to consider the three pillars of a composable enterprise:
- Composable thinking (People): Composability implies adapting a new mindset where anything is composable. It’s about conceptualizing what to compose and when. This way, it encourages the continuous exploration and creation of game-changing business capabilities.
- Composable business architecture (Processes): Composable thinking alone doesn’t work if you don’t establish a composable architecture where the different business elements—including capabilities, products, teams, processes, services, etc.—dynamically evolve to create new value.
- Composable technologies (Technology): Wrap up composable thinking and architecture with the right technology assets and capabilities that promote the use of modular components, reusability, and where assembly and reassembly are automated.
When it comes to technology, a few low-code platforms are designed to support reusability. Some platforms, however, fail to support composable architecture and thinking. So, when dealing with larger app portfolios, with advanced UX/UI, extreme performance, and security, the most basic forms of low-code tend to fall short.
Choosing the platform that allows you to connect with the best of breed enterprise core system, and that supports your integration strategy while promoting a solid architecture is crucial for the success of your development strategy.
That’s where OutSystems' high-performance low-code differs from traditional low-code.
High-Performance Low-Code for Composability
OutSystems has been promoting reusability as a best practice since 2001, with the strategic goal of making developers more and more productive over time. The pictures below provide an overview of how OutSystems’ platform capabilities enable the various pieces of Gartner’s Composable Architecture concepts.
In OutSystems, a PBC will be made of three types of services:
- The End-User Services will provide screens, UI blocks, and other capabilities required to deliver end-user interfaces.
- The Core Services will encapsulate the business logic required to handle the underlying business objects.
- The Foundation Services will be containing all the logic and capabilities to handle integrations and cross-functional logic.
Then, Integration Services will be used to handle external events that need to trigger some functions within the PBC and the Public APIs will be used to connect with other PBCs and external solutions.
Nuno Borges has worked in IT for more than 20 years in executive roles. His experience spans the manufacturing sector supporting the engineering and production of Financial Services products and solutions, professional services and retail. From 2016, he led the IT Delivery organization transformation of a major retailer and its digital initiatives. From E-Commerce platforms, B2E mobile apps, scaling legacy via APIs, to the launch on a B2C OutSystems app with more than 400,000 active users, Nuno has both deep and broad experience across a variety of innovative technology initiatives.See All Posts From this author