I am really going to enjoy writing this week’s version of Topper Tuesday. It’s challenging because I am not an architect or developer. And, there are so many architectural opinions, methods to articulate technology and debates that follow. I enjoy it because it’s a challenge to simplify the complex for the non-technical folks while maintaining decent technical accuracy.
Here we go!
I’ve been or managed the CIO and/or CTO function in some fashion since 1997. But, having started in a CIO role directly out of the United States Coast Guard, the only “ranks” I came up through were the military ranks I progressed along during my tours of duty.
I do understand the value of technology, however, and how its architecture can lead to success (or failure). While I am not a brilliant architect, for the better part of three decades I have partnered with a huge number of people who were. They were a whole lot more educated, more experienced and smarter than I was in the areas of engineering and architecture.
I remember during my interview with Rosetta Stone, their CEO asked if I could manage individuals who are smarter than myself. My response: It’s all I know how to do! The head engineers I have had the pleasure to lead, the “right hand” I could not do without, all had common traits even if they were very different humans. Here are a few characteristics they brought to the team:
I owe these humans — and their teams — a lot. As much as any CEO, CFO or board member, these people shaped me. We formed unique relationships, true partnerships, and the evolutions and revolutions we went through together will never be forgotten. Amazing experiences, all of them.
This post is for them. But not TO them — they know this only scratches the surface of where we’ve been together.🙂
If you have read my previous posts, you’ve gained a few pointers around Why replatform? and 5 key points to consider when making retail replatforming choices.
This post will give you the tip of the iceberg of what you might want to understand (or teach) around modern commerce technology, buzzwords flying around like “composable” and “configuration” and technology and architecture that enable you to modernize without sacrificing your ability to stay modern during your watch and that of the person who follows you. We’re going to focus on two main contrasts: Monolithic vs. Modular and Configuration vs. Customization. And a closing bonus, I’ll answer “Why be native cloud?” which most already know but it never hurts to re-emphasize.
What is a monolithic architecture? Well, Merriam-Webster (yikes!) defines monolith as “a single great stone often in the form of an obelisk of column.” That works!
In as simple of terms as I can describe it, a monolithic architecture in retail combines the commerce functions (client-side UI for the website or POS, database and server-side applications like pricing, search, OMS, etc.). These are all managed by a single code base sitting on one database. All the functions are reliant on each other as the data moves between them but remains in the same “box.”
What is a modular (or composable or microservices — all the buzzwords) architecture? In this architecture, the same functions are each a separate service or system with their own codebase and database, and they communicate with each other via APIs.
The “access” to these systems, or the front-end, is independent and can literally be anything such as a mobile app, customer service portal or website. Since the front-end (also referred to as “head”) is independent, a true microservices architecture is, by definition, “headless.” Sometimes, people will say they are working to “decompose” their architecture as they move towards a microservices architecture. This is where the word “composable” comes into play, as in a “composable architecture.”
There are pluses and minuses to both architectures. Some firms and technicians will position monolithic as evil. They are not. They have a place, usually where rapid and continued change is not critical (like an ERP).
Where we would agree though is that the place for monolithic architectures is not in the fast-moving discipline of commerce. Most commerce platforms are either based on a microservices architecture (although very few were built from scratch like fabric), or trying to get there, which is a heavy and long journey.
Slicing up a monolith anything less than perfectly to, for example, become “headless,” leads to potential future challenges for the customer trying to integrate into a suboptimal architecture. As a result, like with artificial intelligence that has recently become every vendor’s middle name, some platforms offer a less than stellar reality when they claim a microservices architecture versus actually having built one from the ground up.
I will highlight the strengths and challenges of microservices. I am going to keep it to a few of each or my editor will kill me — this post is already twice as long as it should be, and yet seems ridiculously short.
Microservices’ strengths. At the end of the day, better websites lead to better conversions, AOV and ultimately more traffic via improved SEO and loyalty. This is accomplished through the ability to enact change quickly — not just meeting but anticipating a customers’ needs.
Microservices architectures enable these outcome:
Microservices’ challenges. The complexity of microservices architectures stems from the “plumbing.” This is the “orchestration” between your front-end experiences and all the different services in your commerce ecosystem plus the downstream passing of information to core systems like ERP. Accordingly, they can present challenges such as:
A platform like fabric is modular because it’s based on microservices. And, while we have done the work to connect our modules (as discussed, this is one of the biggest challenges with this architecture), a client could also choose to start with or purchase just one, like OMS or our product catalog.
While the microservices work in harmony, they also work with any commerce platform through a robust set of 400+ APIs. And, in fact, fabric embraces this incremental approach because it’s fast! Find partners and platforms that can deploy at speed, and show an ability to de-complexify the above mentioned challenges. But, as with any challenge, and you will always have them, and risk mitigation is key.
Choosing customization versus configuration comes down to the extent of changes to the system or platform that can be accomplished by the users. More specifically, it’s what can be accomplished without code versus the ability to add your own code to extend the capabilities of the base platform.
From Broadcom Software Academy:
● “(C)onfiguration is simpler and less costly since it relies on using the software’s inherent features and settings.”
● “[Customization] involves making changes to the software’s core code to add new features, change its behavior, or integrate it with other applications.”
Let me give you an example. You are routing orders to your stores for Buy Online, Pick Up In-Store (BOPIS). A particular store is either unseasonably busy or is experiencing staff absences. So, they need to change the threshold of how much BOPIS they can manage. In a customization scenario, you would need developers to make this change. With configuration, a non-technical user simply turns a digital dial and manages it up or down (or even higher than originally set) based on associate availability.
As technology advances and the speed to market of anything new continues to accelerate (AI?!), the ability of users to configure the software will decrease instead of users or even developers queuing up for new features in your or their development organizations. I’d rather have a platform company advance the configuration capabilities that matter to the users, and ultimately their customers, than almost anything else.
How many features, capabilities and projects have you delayed as you waited for a vendor to prioritize the feature (if it ever does)? If you have the capabilities to make changes yourself, that is configuration.
If you have an unapologetically large and sophisticated development organization with bandwidth, customizations can work. But every new line of code written today becomes legacy tech debt that you must continue to manage and maintain tomorrow. Instead, I recommend you dig deeply into the configuration capabilities of any platform you are buying. Not just where it is, but where it’s going.
The bottom line: Configuration reduces entropy.
I firmly believe in putting the power with the end user instead of the developer. Even the best of the best developers I have worked with feel the same way!
I mean, really, almost everything is in the cloud. If you own a big server and manage it in your own building, you open that up via your private network to others on or outside your network, this is your own private cloud. If you move that to a more public cloud like Amazon, Google or Microsoft (they are all viable), you are moving a non-cloud-native system to a third-party cloud provider.
However, a native cloud application is one that was built for and resides in one or more of these public clouds. It makes a difference because of all the tools and capabilities these third-parties are far more readily available with applications that were built for this type of cloud infrastructure.
There could be times when on-premises applications make sense. I could make a good argument for a WMS to be on-premises. I have always been nervous running a DC through the cloud instead of your Local Area Network. However, I freely admit this is probably just me being old school.🙂
In the e-commerce world, most providers now are 100% cloud based (some native, some not). Below are just a few of the advantages, all generally included in the annual license fee. The fee is usually some base flat rate with additional costs for increased usage — the cloud is basically a utility, so the more you use, the more you pay. These items are generally what you pay for:
And now, it’s time for my brief, shameless (but genuine) plug.
fabric was built from a blank sheet of paper to create a platform with a robust OMS and DOM. Its creation focused on these four principles:
I hope this helps! I worked to make it understandable to the non-technical person and relatable to all the techies out there!
The order is magical! The order is the point in time, from the cart or cash register, where the customer has made a financial commitment to the merchant. She has put her trust with you.
Delivering on that trust doesn’t end with the order — it starts with the order. And, more and more, the order is the foundation for doing amazing things to meet and surpass customer expectations. It’s the “heartbeat” of the entire commerce experience.
Considering your OMS during a replatform, whether you change it or not, is super prudent. Tune in next week to learn why!
Chief Customer Officer @ fabric