In many projects, I hear the same thing: minimize the number of customizations and stick to out-of-the-box functionality. The rationale is clear: the more things you add or change, the more expensive and complex further support becomes. Systems are getting bigger, less transparent, and more comprehensive, and changing the default behavior creates unpredictable, hard-to-detect side effects. The cost of errors is increasing too. However, there is a flip side to that: a lack of flexibility and responsiveness. Which is the greater evil?
There is another trend that we need to take into account: Amazonization. Yesterday, this great company reached one trillion dollars in value. Amazon has been killing brick-and-mortar stores and independent online stores by offering better service and prices. Standard best-practice solutions may not work anymore because giants will almost certainly always be out in front. Small start-ups will have the advantage of a personalized, custom way of interacting with customers. Being unique is a great lever for getting ahead.
All IT solutions, and e-commerce platforms are no exception, are aimed at automating and enhancing the business processes you currently have or need to have. If your business is built with some standard “business template,” you will likely be happy with many packaged solutions simply because they were made for companies like yours. However, such businesses are becoming a thing of the past. In order to survive in this new age, you need to be unique.
Loving diversity, on the other hand, allows us to grow, to understand others in order to better understand ourselves, and to evolve. Being different is crucial. Who would want an exact copy of themselves next to them for their entire life? The same is true for systems. Can you imagine a world where all human beings are identical? What we see now is a lot of identical stores. Yes, it is a working model today, but what will we have tomorrow?
In a world of similar-looking things, any bright idea makes you visible. E-commerce platforms give you some space for that, but with time, it will stop amazing customers: your store is no longer better than Amazon. Your solution will be as gray as thousands of others on the market.
Be holistic
Changes should be implemented across the people-process-technology stack, the golden triangle of change.

Each component of this triangle needs to be aligned with the others. The technology stack is inextricably linked to processes and people. Of course, you can train people to make tools and technologies useful, but you also need to change processes. Alternatively, you need to change the system while keeping the processes and people fixed as they are.
Changing processes is a challenging issue. You may find that your processes are a key competitive advantage. However, from an IT project manager’s point of view, changing processes is something outside the project, while changing the system and training people are part of it. That is why many prefer to recommend changing the processes rather than customizing the system.
Configuration and customization?
Configuration is about behavior adjustments, while customization is perceived more as filling a capability gap. This “gap” is actually not simply about “capability”; it also includes differences between business expectations and OOTB features.
A configurable system is an out-of-the-box solution that allows the owner to easily personalize certain aspects of the system themselves, without the help of experienced software developers. Configurable software is flexible, scalable, and can be continually shaped to meet an organization’s industry-specific and organization-specific needs. Zero-customized hybris is a configurable system.
A customized system is developed specifically and only for one customer, locking that organization into a static workflow that can only be changed by hiring cost-prohibitive engineers to make updates to the system’s code. An e-commerce solution written completely from scratch on top of the framework is a good example of a customized system.
How can we harmonize those two extremes?
My answer is simple: split the system into parts, and categorize the parts, not the whole. Go with “configurable” for the parts that don’t make you unique. Customize the things that form your competitive advantage.
As utopian as a zero-customization implementation may sound, the fact is that most companies customize their SAP hybris systems, at least to some degree, after the “zero customization” project has started. The truth is that the cost of zero customization becomes too high.
In one of my previous projects, for each of the changes, we weighed the cost of the change against the benefit. Of course, it is very judgmental, but the fact that such topics were discussable made the project successful.
For example, the hybris CMS system is not a critical part if your e-commerce system is not going to have hundreds of multilingual, multi-domain pages with different layouts and a dynamic structure. So customization is not very important for this component. At the same time, if promotions are your strong suit, then simplifying your current offers to better align them with SAP Hybris out-of-the-box capabilities may not be a good decision.
Keeping control over changes
Hybris e-commerce components are very complex, and even the slightest change may lead to a ripple effect with various corner cases resulting from one another. A good solution architect must be able to assess the risks and impacts, as well as deliver the findings to the business and technical teams in a clear and simple way.
There are many examples where making changes in a timely way wins over the fear of risk. A good example is the concept of testing in production. Yes, it is risky, but only those who do nothing never make mistakes. The same is true for modifying the commerce components of hybris.
Automate testing
If you go with a customized solution, the complexity will grow every month.
Black boxes
I interview SAP Hybris Solution Architects from time to time. I have noticed that many of them look at the e-commerce system as a set of black boxes with some predefined functionality. For some, the boxes are smaller; for others, they are huge. They know how to put them together and configure them. Yes, in many cases, it is a very good approach. However, many of them are not very interested in what is inside these boxes. For example, is it possible to replace Solr with Elasticsearch? Take Drools out? Replace the template engine? Centralize the caching subsystem? That upsets me.
What are your thoughts?