Why Customization Is So Hard In The Enterprise Cloud, And How To Solve This Issue

Alex Lashkov
Yellow Universe
Published in
4 min readFeb 21, 2019
Image credit: Pexels

If the company is big enough, its management usually, and rather reluctantly, move to the cloud. There are multiple reasons for this, including the specifics of the infrastructure and the requirements applied to the hardware and software.

Very often the company does not need a standard version of a cloud service to successfully solve its business tasks. Each company has its own business processes and data management approaches, as well as different amounts of data to process.

Thus, such companies need a more flexible custom version of the software, tailored to specific business needs. This includes everything from the UX to database structure (new tables, other fields, etc.) These needs may lead to serious complications for cloud software developers, not to mention increased costs for the business due to individual payment plans.

The SaaS cloud problem

If we implement the common attribute approach described in our previous article, there are limitations that prevent us from creating such custom versions for different clients (companies, departments and subsidiaries in different countries). The only thing we can do for such customers is create their own, unique databases. This goes against the philosophy behind the method and leads to additional spending on resources.

This is not a scalable approach. Over time we will get lots of such custom clients, which will make it very hard to support our cloud solution infrastructure. In such a system it will be hard to implement the support of new business processes common for all users, or organize a consolidated data collection from multiple databases simultaneously.

An important thing here is that, usually, such custom software versions used by different tenants will still be very similar. Sometimes there will be a difference in a couple of database tables or even fields. This fact makes the idea of creating almost identical copies even more irrational. What if we could just store these custom requirements for each tenant, and apply them if necessary to the main database for the specific tenant’s session? Such a mechanism would lead to great savings. So, we’ve implemented it in 1C:Enterprise.

Providing custom experience and saving resources

The Extensions tool transforms the database structure (adding new tables, changing data types, etc.) to make it relevant to the requirements of the specific user (tenant). It works on top of the existing functionality and adds new features that can be accessed only by this tenant, while the others work with the same database as usual.

Here is how it works in real life. In 1C:ERP there are around fifteen thousand tables which usually contain a couple of dozen fields. The service directory is accessed by multiple clients (tenants). Their business processes and even industries may vary. For example, one can use the tool to control warehouse stock, processing orders to goods providers, etc.

In such a case it is essential to highlight information about possible delivery delays. This knowledge helps control the stock and avoid situations where the business either has too significant an amount of the particular product, or can’t fill the demand. The Extensions tool can be used to add the new field “Normal shipping delay”, in which the acceptable delay period can be fixed.

At the same time, other customers will see the initial UX of the directory and work with it as usual:

If the 1C:ERP is bundled with a website which serves as a lead-gathering tool, t collected requests may be uploaded to the database as sales invoices. Such a customer may want to use the solution for accessing ad campaign ROI. To solve this task, it is essential to know which channel has attracted the lead, i.e. adding the corresponding field “Campaign” to the “Customers” directory.

Extensions can be used not only for altering databases but even for modifying UX elements, including re-naming them or changing their functionality.

Final thoughts

The Extensions mechanism of the 1C:Enterprise allows software developers to create cloud solutions that can be easily customized without wasting resources. The user (tenant) will get the desired functionality while the cloud service provider avoids the necessity of copying the whole solution just for them. In the case of big cloud solutions, savings can amount to hundreds or even thousands of dollars.

--

--