Software systems become out-of-date, obsolete, or irrelevant over time. The massive investments of time, money, and energy into massive monolithic systems demotivates owners to renew these aging systems. Organizations and people become slaves to their software systems.
Existing “solutions” require you to invest more time, money, and energy into building new monolithic systems. Cloud-based solutions solve part of the problem by reducing up-front costs, but the reality is that most of your legacy systems are not in the cloud. Integration Platform-as-a-Service (iPaaS) can take care of connecting these legacy systems to the cloud. But are you not just getting another massive monolithic system built in the cloud?
And the more important question is, does any one vendor REALLY understand how businesses and organizations are run in every domain well enough to solve all the business problems today? According to research, monolithic, off-the-shelf software products only address 20% of all business problems today. So the answer to the last question is obvious.
Companies are quickly moving away from monolithic systems that were wedded to one or more servers to finer-grained, reusable services distributed inside and outside the enterprise. – Accenture, Technology Vision 2011
Now, let's dig deeper and look at the fundamental problem with building and deploying monolithic software. A well known technique in software development is to use objects to encapsulate specific logic and data to model real world things. This technique has made development better, but to call objects and create interactions between objects requires the writing of what is referred to as glue code. Glue code does not add functionality to systems, it works only to glue together various parts of code or different software packages that would not otherwise be compatible.
If you think of software as puzzle pieces. Each piece contains a useful set of business logic or data. To fit these pieces together to form applications, one must fit together each of the “tabs & holes” of each puzzle piece. These tabs and holes are the glue code. As you begin to piece together more and more objects, imagine how difficult it is to make even slight alterations to puzzle pieces that are near the middle of the puzzle.