Software gets customized. Enterprise software systems are typically known for their base functionality layers, on top of which customers often want to make tweaks, skews and nuanced customizations designed to help serve particular use cases and deployment situations. On the journey towards honing software systems and services to form as close a perfect fit as possible, software gets changed, extended and additionally developed.
Although every enterprise software vendor will claim to have produced ‘ultra flexible’ platforms that can service every use case. In reality, pandemics (or other major disruptions) happen and software-centric businesses (which is all of them) need to make change happen. In order to underpin this type of activity and ensure we have stable foundations to compute upon, it is important to keep a so-called ‘clean core’ implementation running from the start.
What is a clean core in software?
To explain what we mean by the term, a clean core software deployment is one that champions standardization and minimizes customization practices. Because customizations can lead to clunky unwieldy software systems that are tough to maintain, update and migrate, a streamlined clean core approach is said to lower the risk of misconfiguration and incompatibilities, which can impact performance and compromise security.
No stranger to system customizations and customer software refactoring – and with its huge ‘stack’ of software coming from a variety of in-house developments, acquisitions and partners – SAP now emphasizes the clean core approach which it claims is today more easily achievable with the SAP S/4HANA suite of software tools for Enterprise Resource Planning (ERP) functions and associated workplace practices.
As we now move to the cloud computing model of service-based software, data storage, analytics and other functions, the importance of a clean core base may be more important than ever.
“Since the expression ‘keep the core clean’ was coined [around five years ago], the importance of this concept to enterprises has only grown – the topic comes up in four-out-of-every-five customer meetings. Indeed, many customers are moving their ERP to the cloud and they need to create and deploy cloud-compliant extensions and customizations with greater ease and speed. With regular upgrades and powerful development tools, they reach new levels of IT efficiency and mitigate risks to the business with added flexibility,” said Sebastian Schroetel, vice president and head of technology products at SAP.
But even with the exposition and clarification provided here so far, it seems cis clear that there is still a lot of confusion about what a clean core actually is. Often a clean core is thought to be a system devoid of core customization and that’s all it is. However, being truly ‘clean’ includes adhering to standardized guidelines for all elements of the core as they reach and extend upwards into the application and service layer. If we can achieve this, when it comes time to upgrade a system, changes can be put in place without significant manual efforts to test and adapt existing structures.
Six elements of a clean core
“There are a number of main components to consider when discussing the IT core of an organization – extensibility, integration (which covers communications between extensions and a standard solution), information in the form of data (which addresses concerns related to how information is handled), processes (or the series of actions or steps taken within a system), software version – in a clean core the software should be close to the latest standard version – and finally operations, which govern how infrastructure is managed, upgrade decisions, system monitoring and maintenance activities,” explained Schroetel, with exacting precision.
Talking this topic through with his team, the software application development professionals and data scientists at SAP suggest that the concept of a clean core is ‘intrinsically connected’ to the concept of extensibility i.e. functionality added to standard software that extends it to address organizational needs that are not met elsewhere. Extensibility is of course a key capability because it allows users to differentiate their business processes and develop extension applications on top of existing standard functionality.
“Since business processes vary from one organization to another, customers require ERP systems to cover both their specific and unique needs. Traditionally (before cloud computing) this was accomplished through customization or ‘classic extensibility’,” said Schroetel. “Classic extensibility allowed developers to modify the ERP core. This was a reasonable option with legacy on-premise operation models but is not a sustainable approach when companies move their ERP systems to the cloud.
Decoupling is key
We know that organizations today need the agility to address changing challenges and market opportunities. The old way of adding functionality by customizing the core has often been bemoaned and called out for being overly complex, cumbersome and costly. To address this challenge, a new model was developed that decouples two components: one focused on predictability and the other on exploration. This evolution model is known as ‘bimodal IT’ – and as TechTarget reminds us, this Gartner-coined expression is, “A two-tiered IT operations model that allows for the creation of IT systems and processes that are stable and predictable as well as agile and fast.”
“Instead of customizing the ERP, this approach involves maintaining a clean core while adding new standard functionality through so-called in-app and side-by-side extensibility,” illustrated SAP’s Schroetel. “In-app extensibility provides a set of tools within the ERP digital core covering diverse needs like modifying the User Interface (UI), exposing data models, adding application logic and running specific transactions, among others. Side-by-side extensibility – typically including add-on apps built on a standard platform – provides a way to innovate and implement new extensibility techniques and opens the door to possibilities like mobile user experience, B2C and B2B integrations, data science, Business Intelligence (BI) and Internet of Things (IoT) use cases, among many others.”
In a nutshell then, a clean core strategy involves keeping the ERP system as close as possible to the standard, decoupling customizations, adopting inner extension methods and being aware of the customization footprint. SAP has a five-point plan (that could extend to six or seven where needed in future – it’s all about flexibility right?) that it uses to advise companies considering the clean core approach to software architecture.
- Retire any redundant software code that is not being used.
- Use standard processes wherever possible.
- Use public Application Programming Interfaces (APIs) to safeguard extensibility in the long term.
- Document technical debt (just in case making a clean core extension in the future is not possible).
- Use custom code migration tools where possible.
The clean core is a concept to achieve modern, flexible and cloud-compliant software systems that have been discussed within the realm of ERP systems in the first instance, but it is arguably fairly applicable to Customer Relationship Management (CRM), Enterprise Asset Management (EAM), Field Service Maintenance (FSM) and all the other three-letter-acronyms that populate this spiral arm of the software galaxy. If the clean core gives us anything, it is an ability to stay cloud-compliant throughout an organization’s growth path and its journey to scale and expand – and it provides a concrete means of governing master data and business processes. With all of that in place, when it comes time to upgrade a system, changes can be put in place without significant manual efforts to test and adapt existing structures.
“Modern technology and cloud delivery capabilities make it possible to enable business value without contributing to technical debt: indeed, a modern approach provides an opportunity to extend functionality in a cloud-compliant manner, as well as a separate platform to innovate for additional differentiation. This makes it possible for organizations to develop and consume innovation more quickly, upgrade in a cost-effective manner and mitigate risk by running according to a reference architecture,” concluded SAP’s Schroetel.
A clean core is argued to improve IT systems operations (and, by natural extension, workplace operations) now i.e. today – and it also sets a foundation for the future. In an era when we are all concerned about food waste and our planet’s wellbeing, a clean core could also help us make better use of the resources we have available to us.
Keep your core clean, but still avoid the pips if at all possible please.
Read the full article here