IT housekeeping projects are not popular, and it can be hard to secure budgets to fund them. Removing unused code from your existing SAP systems is a prime example of this type of technical debt that often goes unaddressed. Between 40% and 70% of the customizations in the average SAP system are not (or no longer) in use. Addressing this problem presents a very real opportunity. Here are a couple of arguments, why Custom Code Management and ongoing removal of unused code in you SAP system matters:
- Cost of future EHP and SPS upgrades, HANA Migrations, and S/4HANA Conversions: Unused code increases the code base in the scope of any upgrade, migration or conversion project, and therefore also increases the complexity, risk and cost in all phases of these projects. Removing unused code before your upcoming S/4HANA conversions will allow you to focus on your strategic custom code, and will help you avoid getting distracted by the legacy of the past 20 years.
- Cost of Understanding: 40% to 60% of software maintenance efforts are devoted to analyzing and understanding existing code, before determining where to make a change or correction in the software. Unused code is additional code that needs to be analyzed and maintained. If the code exists, programmers must spend time understanding it, which increases your maintenance efforts and hence costs.
- Response Times: In line with the above, unused code also negatively impacts your response time when it comes to addressing production issues or implementing enhancements.
- Security: Another very prominent reason why you should remove unused code from your SAP Systems revolves around system security. Unused code is typically older code developed many years ago based on the standards in place at the time. For that reason, this code often contains security loopholes. These loopholes translate to real security vulnerabilities that leave you at risk of a breach.
- Testing Efforts: Regression testing scenarios are typically designed to cover all code used or not. The unused code in your systems unnecessarily adds to the testing efforts and costs of every release or project.
Best practices to remove unused custom objects from SAP systems?
- Define your Business Case: It is easier to get budgets with a solid business case. There is plenty of literature available that will help you estimate the cost associated with (unused) custom code in your system. Annual maintenance cost estimates per line of code range from $2.5 to $3.5. At smartShift, we usually take a more conservative approach and work with our customers to build a business case based on their actual maintenance costs. We find that an annual maintenance cost of $0.25 per Line of Code is reasonable. Even with a more conservative assumption the cost avoidance business case for these projects is in general very straightforward.
- Formalize the process like any other project: Don’t try to remove unused code “off the sides of your desks”. The approach is like a real project, with a plan, an assigned team, and a governance structure. If you do not formalize the process, these housekeeping efforts will quickly get dropped when things get busy.
- Use the right Tools: Activate UPL (Usage Procedure Logging) in SAP Solution Manager. This tool is superior to the old ST03N Transaction Monitor as it tracks usage in more comprehensive and detailed manner covering the use of subroutines and dynamic calls. Use smartShift’s smart processes and automation tools to safely deactivate and delete code from your systems, including processes and tools that provide backup and restore mechanisms.
- Implement an ongoing Process: After the initial cleanup, implement a continuous process to keep your system lean and clean. SAP’s CCLM (Custom Code Lifecycle Management) tools including the Decommissioning Cockpit and smart Automation provided by smartShift will help you.
At smartShift, we have completed many successful cleanup projects for our customers, and we have safely deleted millions of lines of code from SAP Systems. Please contact us if you need support!