Objective
Objective of this blog is to help understand the need for buzz word “Clean Core”, how to approach it and review the technical options available.
Why CLEAN CORE?
In this digital world, organizations have many challenges for a sustainable growth with heavy competition, budget constraints and many others. Bi-Model IT practice helped some of them to pivot their business model and enrich even during COVID times. SAP is a vast ERP solution available with many industry specific modules. In addition to the out-of-the-box standard processes available, many customers have developed their own secret sauce by building custom objects inside the system with ABAP development. So, with the Brownfield projects, where Customers are planning to migrate from ECC to S4 HANA, there are many challenges to overcome from the Business value perspective as well from Technical. Some of them are like their custom code is tightly coupled up with standard SAP, increased complexity with continuous changes to the solutions, maintainability, extensibility, and user friendliness. In addition, it is important that IT executives and Business Leaders think about the long-term strategy, rather than considering a system upgrade. To overcome the custom code mess, the buzz word CLEAN CORE, heard several times in many conferences and meetings will help address the pain points.
CLEAN CORE is nothing but decoupling and implementing the custom code secret sauce solution with minimal dependencies with S4/ECC solution. It gives opportunity to simplify the SAP upgrade processes in future, reduces upgrade timelines, enables easier extensibility, simplifies maintainability and deployment process following the best practices. In addition, gives a new opportunity for the customers to re-evaluate and re-think about the existing process like:
◉ Whether it can sustain for the existing needs and solve business pain points
◉ Can this process provide us the flexibility to operate in the modern digital economy?
◉ Can any part of the process be replaced by Software-as-a-service products?
◉ What additional benefits could be gained if we open the doors to new technologies like AI, Machine Learning?
◉ Where would you like to see your organization 10 years from now?
CLEAN CORE methodology
Achieving pure CLEAN CORE is a hard challenge for any enterprise which has many custom-code enabled business processes. The objective of this blogs helps to brainstorm different aspects and setup foundation with different methodologies that are potentially available.
◉ Define Drivers
◉ Analyze current state
◉ Identify suitable implementation options
◉ Define roadmap
We will discuss about these steps in detail in further sections of the blog
Define Drivers
Customer priority is the biggest driver behind the scenes for enabling the clean core. Identifying customer priorities is the first step which kicks off the discussion between multiple user personas/actors like IT Executives, Architects, Business users and developers. We could broadly classify the priorities into 6 groups.
- Cost of ownership
- Licensing costs
- Hardware costs
- Scalability
- Cost of maintenance
- Defect leakage
- Separate support team for issues, SLO, too many issues
- Upgrades
- Architecture Goals
- Need to break down monoliths into microservice architecture
- CI/CD pipeline need to be implemented
- Alignment with AOM model for continuous delivery of new features
- S/4 HANA simplification
- Business Needs
- Business pain points
- UX issues
- Technology issues like faster response time/access
- Insufficient or missing functionality in our current process
- Team needs
- Current team’s skill set does not align
- Product too big for team to maintain
- Team should be able to maintain all aspects of the solution
- Timeline
- Timeline restrictions for continuous delivery
- S/4 HANA upgrade timeline alignment – there might be couple of years in your roadmap to get into S/4
Once the sequence of the priority for this initiative is identified, it sets a path to think about the implementation strategies and brainstorm about technology options available.
Analyze Current State
It is very important to understand end-to-end current business process and its touch points. Gather as much information as you can about the custom code and its integration touch points with standard SAP process as well as external systems/business process. Understand the current usage of the objects; we might have 100’s of custom objects developed, but after scanning through we might have realized only 10 programs/tables are very frequently used in production while the rest of them infrequently used. Understand more about type of usage as well, like whether it used as an API by external system or executed as a batch process or a user initiating the process, volume of data, frequency of changes to the program/process, etc. All this information is very useful in further process steps.
Identify Suitable Implementation options
We would not want to discuss about whether its ASAP methodology, AGILE Practice or any other. Instead, we would like to mention what strategies could be adopted and what technology options are available to deal with a CLEAN CORE project.
CLEAN CORE implementation strategies
We could summarize the strategies available to achieve CLEAN CORE goal based on the state of the existing custom code on how it is developed.
Lift and Shift
This is the best strategy to adopt if the current custom code is already defined in a good shape. It requires minimal migration effort to move to target architecture and boom, the code starts workings.
Improve and Move
In this strategy, we improve the current code base and make it isolated by defining clear boundaries. Get it ready for service-based architecture and migrate incrementally.
Rip and Replace Incrementally
This is slightly different from Improve and Move strategy. Here, we redesign part of the function or a specific feature as a new microservice and replace it in the current setup. Then move on the next feature.
Redesign and Replace
This is more about re-evaluating the existing functionality, identifying pain-points. Once done, we collect all the new features we would like, redesign feature by feature and completely replace with existing functions by the end.
Common mistakes to avoid:
◉ Do not consider thinking about migration of one specific custom object like a report program or table. Instead think about the process the object is dealing with.
Technology Options/Tools
Undoubtedly there are several platforms/tools available to achieve the CLEAN CORE goal. After experiencing some of them, we could be broadly classify into 4 different flavors.
1. S/4 HANA Standard Functionality
◉ Look whether we have out-of-the-box functionality released by SAP for any of the custom process
◉ In-app extensibility which enables creation of S/4 HANA extensions. It allows key users to create fields, business logic, CBOs, and more.
◉ Here is the quick help https://help.sap.com/viewer/77cd6a531be5454ab16ccd8bb63c183f/PROD/en-US for all the SAP applications which supports In-app extensibility
2. Modular Monolith
◉ Apply simplification changes on S/4 HANA code. Simplification analysis can be identified in multiple ways based on the version of the current system like SAP_BASIS 7.52, S/4HANA 1809, etc.
◉ Remote code analysis can be done with ABAP Test cockpit
◉ We could download the simplification database to the current system and perform analysis
◉ SAP Fiori Custom Code migration app available in SAP Cloud Platform ABAP environment
◉ Isolate custom code from standard business functions, define clear boundaries
◉ Refactor code, add unit tests and integration tests
◉ Implement CI/CD pipeline for ABAP, Services and Fiori application
3. S/4 HANA Side by side extension
◉ Restful ABAP programming(RAP) model using ABAP on cloud platform – https://help.sap.com/viewer/923180ddb98240829d935862025004d6/Cloud/en-US/289477a81eec4d4e84c0302fb6835035.html#:~:text=The%20ABAP%20RESTful%20Application%20Programming,Environment%20or%20Application%20Server%20ABAP.
◉ Cloud Application Programming(CAP) Application model using Java/Node.JS – https://cap.cloud.sap/docs/
◉ SAP Cloud Platform services like Enterprise messaging / Extension factory, Workflows, etc. – SAP Cloud Platform in the Garage Virtual Event | Event-Driven Architecture
◉ SAP Cloud Platform Kyma runtime service, Kubernetes framework based on containers – https://community.sap.com/media/devtoberfest/project-kyma-jamie-cawley-sap-cloud-platform-kyma-runtime-introduction
4. Cloud Native Microservices
- Choice of Cloud provider and its services
- AWS like SQS, SNS, ECS, EKS,
- Google GKE, CGP services
- Microsoft Azure like Azure Storage queues, logic apps, functions
- Cloud Independent microservice
- Docker
- Kubernetes
- Service Mesh
- Language and Database based on use case and team skillset
- Java
- Node.js
- Python
Define Roadmap
By this time, we have identified our Customer priorities, have gone through the current business process, have seen different implementation strategies and available Technology options. Now, comes the important task on how to organize and lay out the roadmap for successful implementation. We could follow these simple steps:
◉ Use most common user-friendly tool Microsoft excel and define a decision matrix table for each process.
◉ Lay down all the factors like Usage frequency, Number of users accessing the application, what could be expected growth, what type of processing (like Batch, Real time), Security, Data, Network, Implementation and maintenance costs, monitoring, UX significance, DevOps practice, Hardware requirements, monitoring capabilities, exception handling processes, etc.
◉ Setup a pointing system against each platform
◉ Discuss Pros and Cons of each
◉ Finally, pick the best choice based on drivers defined (customer priorities) and setup implementation strategy.
◉ Here is a sample matrix
No comments:
Post a Comment