This document defines the use of Development IDs, how they are managed and counted in conjunction with SAP’s Clean Core principles.

The Development ID is a centerpiece to manage, track and measure custom development requirements. Development IDs are lower level than WRICEFs to define and document the needed artefacts. Clean Core principles need to be applied to each Development ID object based on feasibility to keep the Total Cost of Ownership for custom developments manageable and explicit.

Development ID Definition

"WRICEF" was the traditional way of categorizing business requirements that will be implemented with custom development, where each of the letters in the acronym stands for Workflow, Report, Interface, Conversion, Enhancement, and Form, respectively. Typically the letter of the acronym is used in combination with a running number. But in the several decades since this acronym entered into use, SAP development has evolved significantly. There are now many more types of developments which cannot meaningfully be combined into an "Enhancement" and treated equivalently; similarly it is sometimes not easy to assign a meaningful category to a development.

Instead of the traditional WRICEF approach, we will use Development IDs in combination with their Type.

The "Type of Development" will be introduced to categorize a development instead of the WRICEF. It is a more detailed classification that more accurately reflects modern SAP development types:

  • Enhancement (incl. Conversion)
  • Form (Output)
  • HANA CDS View
  • Integration Process (custom)
  • Integration Process (standard)
  • Metrics/KPI
  • Mobile App
  • Modification
  • Program
  • Report/Analytics
  • System Interface
  • User Interface
  • Workflow (custom)
  • Workflow (standard)
  • Application Job (Custom)


The Development ID is the number assigned to developments. The Development ID will be created after the request has been approved. The Development Request How-To details the process in Jira.

The Development ID will be used in the functional design (FD), the development package name and needs to be assigned in all relevant L5 business process steps in Signavio.

Every development requires at least one Development ID. SAP Notes of type Modification and Consulting require an approved Development ID and a basic Functional Design document as well. Although SAP might provide the code, SAP does not support Consulting Notes or Modification Notes as part of its product support scope. Since the ongoing support and upgrade maintenance are at Syensqo's risk and cost, they are also considered custom developments from a governance perspective.


Conversions are not required to have a Development ID. The Master Data Register number will be used. A Development ID for conversions is only needed if a custom object, such as a load program, needs to be created.

Examples

For example, a Development Request ID 1234 of type User Interface has been approved. The UI development requires a UI5 app and an oData service. That means 2 Development IDs will be created.

Sample: Jira/FD/Signavio : 1235 (Type User Interface) and 1236 (Type System Interface) 

Sample: Package: Z[POD]_1235 and Z[POD]_1236

Sample: SaaS: 1237 (Type System Interface)


SAP 3 Tier classification in Clean Core

Clean Core is SAP’s concept to achieve modern, flexible and cloud compliant custom solutions. SAP came up with 3 tiers of custom developments:


Tier 3: Classical ABAP development in S/4HANA Core (deprecated legacy code/tools with exceptions where still required).

Tier 2: Cloud API enablement (custom wrapper to use unreleased APIs in Tier 1) or mandatory use of legacy tools, i.e. pricing routines, user exits, in S4HANA Core systems.

Tier 1: On-Stack (Key User or Developer Extensibility) or in BTP or SAP SaaS customizations.


ABAP Cloud for S/4HANA Core is the programming model for cloud compliant custom developments. Implementing with ABAP Cloud ensures that the code will be considered as compliant with Clean Core and is upgrade stable.

SAP BTP is the platform for SAP SaaS extensions or cross-system processes.


SAP 3 Tier Technology Mapping

Based on the above definition of clean core the following table contains the main development objects and approaches per type of development.

Type of DevelopmentTier 1Tier 2Tier 3
Conversion (Load only)Released standard APIs called from Syniti
  • Custom ABAP Load program* 
  • Custom ABAP class or function* 

N/A

Conversion (Transform + Load)N/A
  • Custom ABAP Load program* 
  • Custom ABAP class or function* 

N/A

Enhancement
  • Released Badi implementation
  • Custom structures or fields included into clean core compliant / EEW append structures
  • ABAP Cloud compliant custom tables
  • Custom ABAP Cloud compliant code
  • Custom Tier 2 wrapper
  • Unreleased Badi implementation*
  • Customer exit*
  • Routine exit*
  • Custom structures or fields included into CI append structures*
  • Custom ABAP Program with user access
  • Custom Classic ABAP for use in background jobs
  • Custom structures or fields directly added to the main table
  • Unreleased custom tables
Form (Output)
  • Custom Adobe Form with Fragments using a standard oData service
  • Custom Adobe Form with Fragments using a custom oData service
  • Custom Classic Adobe Form*
  • Custom Adobe Form with Fragments using a custom Gateway service*
  • Custom SAP Script
  • Custom Smartform
HANA CDS ViewCustom Released CDS entityN/ACustom CDS view
Integration Process (custom)
  • Custom released interfaces connecting via middleware
  • Custom iFlows

N/A
Integration Process (standard)
  • Standard iFlows
N/AN/A
Mobile AppCustom Neptune app (on Open Edition)Custom Neptune app (on SAP Edition)N/A
ModificationN/AN/A
  • Standard code modification
  • Implicit Enhancement
ProgramN/ACustom Classic ABAP program to run as part of CLOCO or custom print program for Adobe Forms*Custom Non CLOCO / print program
Report/Analytics
  • Custom Fiori Elements Report
  • Custom SAC Report or Dashboard (with Datasphere integration)
  • Custom SAP Analytics Cloud, add-in for Microsoft Excel Report
  • Custom KPI report (Manage KPIs and Reports app)
  • Custom AFO Report*
  • Custom Analytical Query app based views
  • Custom ABAP Report with custom transaction code
  • Custom Business Objects Report (Lumira)
System Interface
  • Released APIs
  • Standard RFCs
  • Custom RAP based oData or REST API
  • Standard integration proxies and services in S/4HANA
  • Custom BTP CAP based services
  • Custom Gateway service*
  • Custom web service proxy object in S/4HANA 
  • Custom ABAP Program with direct service calls
  • Custom RFC service
User Interface
  • Custom Fiori UX 
  • Custom Web App on BTP (React or other non SAP UI libraries)
  • UI Adaptation project
  • Key User extensibility (i.e. UI Adaption, Custom Fields and Logic app)
  • Screen Personas for GUI simplification
  • Standard Dynpro enhancement
  • Standard Web Dynpro enhancement
  • Custom ABAP Dynpro
  • Custom Web Dynpro
Workflow (custom)
  • Custom SAP Build Process Automation
  • Custom Business Workflow
  • Custom Flexible Workflow
N/A
Workflow (standard)
  • Standard Flexible Workflow
  • Standard Business Workflow
  • Standard SAP Build Process Automation
N/AN/A
Application JobCustom class for Application JobCustom class for Application Job calling a Tier 2 wrapperN/A
  • Actually Tier 3, but due to limited availability of Tier 1 alternatives it is considered Tier 2


Non-SAP SaaS Customization Tier classification

For Non-SAP custom development it is also important to stay within the means of provided tools and technologies applying best practices to achieve and maintain a clean core.

The customizations are approached similar to SAP developments and categorized in Tiers if possible.

Salesforce

The two key technologies that are used to enhance the Salesforce standard today are Apex and Lightning Web Components (LWC).

Apex and LWC are code-based tools. For UI development, LWC-based low-code tools like Gridmate and Omnistudio are preferred before developing a pro-code UI in LWC. Apex is the Salesforce programming language used for custom logic and interfaces.

LWC based apps use the modern and preferred framework. For workflows, Flow is the preferred no-code tool. Visualforce, Workflow Rules and Process Builder should not be used anymore.


Either one of these tools needs to be used with best practices in mind. More details are captured in the Development Guidelines. The Guideline is kept up to date. By applying the Salesforce Development Guidelines only tier 1 and tier 2 classification applies.

Icertis

Icertis as a SaaS system does not allow access to DB and code. Only enhancements allowed are via the provided framework and UI driven.

Only standard APIs can be used. 

In case a custom development is needed Icertis will implement and support it.

Only the Tier 1 classification is applicable.


Clean Core Deviation tracking

All Tier 2 and 3 Development IDs are logged in the Clean Core Deviation Tracker. During upgrades, these items are revisited to see whether a Clean Core-compliant replacement is available.

The Clean Core Deviation Tracker records the following information:

S No.Pod / Functional AreaL3 ProcessL4 ProcessSystemDevelopment TypeDevelopment IdRequirement titlePriorityGap ClassificationExtension Tier ClassificationTechnical Details


Development ID Counting Rules

Every development requires at least one Development Id. SAP considers all custom code as a core change. All development IDs will be counted. The type of it is irrelevant with the following exceptions:

  • Standard interfaces or workflows require a development ID and FD to describe the business requirement and to cover the needed technical configuration. But these will not be counted.
  • SaaS system customizations require a Development ID and FD for System Interfaces to describe the business requirement and to cover the needed technical configuration. But these will not be counted.


There is no defined maximum number of Development IDs. Instead, KPIs will be used to measure the degree of adherence to SAP's Clean Core approach: 

  • Average Clean Core Tier Score: Lower value is better. Should be 2 or less. For example 1.4.
    • Formula: (No. of Tier 1 objects x 1 + No. of Tier 2 objects x 2 + No. of Tier 3 objects x 3) / Total Number of Objects
  • Current percentage of Tier 1 Clean Core Developments: Higher percentage is better. For example 56%.
  • Current percentage of Tier 2 Clean Core Developments: This should be lower than the percentage for Tier 1.
  • Current percentage of Tier 3 Clean Core Developments: Lowest of the three percentages. For example 14%.


Jira will show the approved Development IDs per Pod, L3/4 Process, Development Type, System, Clean Core Tier and by Release.




1 Comment