I just heard a quote from Elon Musk. The guy that takes on big projects and tries the impossible. The quote is “if the design is taking along time the design is wrong.”
In the science of programming, you have multiple classic dichotomy. The idea is you can be one or the other but never both. The most classic of this debating is monolithic vs microservices. This specific debate has been talked about since the beginning of technology and before the internet.
To understand the debate we need to look at the 1st major debate to have this debate. The debate centered on if the operating system should be designed as one large system doing everything or multiple systems interacting together. In the end linux was designed using a monolithic approach. Understanding the reasons why linux succeed using the monolithic approach will help us understanding why it fails to succeed in commerce.
The 1st reason why Linux succeed with a monolithic approach was everything was under one roof. The other operating system Linux was competing against was GNU using the Microservice approach. GNU had trouble from the start because of multiple separate subsystem developed by multiple people. The challenge is you are guaranteed to need integration testing and new bugs will be identified. A redesign could be required on a subsystem due to a bug that impacts a separate subsystem. GNU had the redesign issue multiple times. This happened because the design was brand new and the challenges were unknown. In commerce, the challenges are well understood and the multiple players have the best approach. The problem is no one player is master of everything. Salesforce and Adobe are trying.
At the end of the day monolithic requires one person to be the engineer/designer. This person needs to stay around for year upon years to have a positive impact. You need one chef in the kitchen during the life span of the software. Linux has Linus Torvald. In business reallying on one person is a bad business decision. This one person becomes the bottleneck. What happens if the person is hit by a bus? In business especially IT you need a team to meet the business needs. You need to adapt quickly.
Linux is something that Ph.D. scientist design, test and analyze. You put on the resume with proud if you ever submitted and was approved a code fix to Linux. The requirement to design a new component for Linux are extreme and the reviews are legendary. Linus has been known to hostility attack anything he deems as stupid. On commerce website business wants everything to be quick, easy and reliable. The business wants be able to have one-click checkout on a facebook advertisement. They don’t want to wait until the next decade before it is ready. The business needs everything to be simple and reliable without a rocket scientist.
Linux was able to embrace the fact that you do not want to best at everything. Linux works and is known to being reliable for decades. It not the best at anything but the good on average. In commerce, you can not be good at everything. I have worked with execillent software that provides a excellent search results, analytics, content entry, document management and payment provider. I have not found one vendor that can developer a exacellent experience all around. In the global ecommerce market today you need to be competive. To be competive you need to have a excellent website all around. To be competivie you need to have a suite of software. To be competive you need to abandon monolithic and embrace headless.
The Linux system has been able to improve over time with little impact to end users. End users rarely have a issue during a upgrade. It takes 5 minutes and you are upgraded. In Monolithic Commerce each implementation is customized. The reason why each installation is customized because no single vendor has been able to do everything excellent in Commerce. The commerce website always need to adapt to meet the business basic needs. Due to the customization, each upgrade is a risk and costly. I have seen multiple times where the cost of the upgrade was close to the cost of the actual implementation. You can especially this impact when the Commerce engine changes the front end technology. The problem is about every 4 years the front technology land scape is changing. The challenge what is possible today was not possible 4 years ago. What we optimize to today is different from what I would have optimized 4 years ago. Each time the technology to reach the user has matured (Web browser) and the method to reach the audience has adapted (social media platforms and advertisement).
By going with the monolithic approach is slows down the design process and the time to deliver. Locks the technology into one specific platform and force the website to be mediocre by ignoring the best of the breed. As Elon Musk say if you slowing down the design you need to change your design. You need to embrace headless to meet your business online strategy today and the future. Today you are the leader by embracing the technology. Tomorrow you will be the one still trapped and slow if you stay with Monolithic commerce.