Purpose

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

Summary

The Development Id is a center piece to manage, track and measure custom development requirements. Development IDs are lower level to define and document the needed artefacts. Clean Core principles need to be applied to each Development Id object based on feasibility.

Development Id Definition

WRICEF is SAP’s classic way of categorizing business requirements that will be implemented with custom development.

WRICEF stands for:

W-orkflow

R-eport

I-Interface

C-onversion

E-nhancement

F-orm


The WRICEF category is used in combination with a running number. But it is not always easy to decide on the right category. Instead of the WRICEF approach, we will use Development Ids in combination with their Type.

The "Type of Development" will be introduced to categorize instead of the WRICEF. It is a more detailed version of the WRICEF and has the following types:


The Development Id is the number assigned to developments. The development Id consists of the approved request Id and, in addition to that for S/4HANA/GTS and BTP developments, a running number. The Development Id will be used in the functional design (FD) document title, the development package name and needs to be assigned in all relevant L5 business process steps in Signavio.


For example, a custom 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/Signavio : 1234-001 (Type User Interface) and 1234-002 (Type API) 

Sample - Package: Z[POD]_1234_001 and Z[POD]_1234_002


Sample - SaaS: 1234 (Type System Interface)

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:


Tier 3: Classical ABAP development (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.

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


ABAP Cloud is the programming model for cloud compliant custom developments. Implementing with ABAP Cloud ensures that the code will be considered clean core and is upgrade stable.


3 Tier Technology Mapping

Based on the above definition of clean core the following table contains the main development tools and approaches used to categorize as tier 1/2/3.

TypeTier 1Tier 2Tier 3
Conversion (Load only)Standard Migration Cockpit objects
  • Custom Migration Cockpit object
  • Custom LSMW* (To be removed after project Go-Live)
  • Custom ABAP Load program* (To be removed after project Go-Live)
  • Custom LSMW (To stay after project Go-Live)
  • Custom ABAP Load program (To stay after project Go-Live)
Conversion (Transform + Load)Standard Migration Cockpit objects
  • Custom Migration Cockpit object
  • LSMW* (To be removed after project Go-Live)
  • ABAP Load program* (To be removed after project Go-Live)
  • Custom LSMW (To stay after project Go-Live)
  • Custom ABAP Load program (To stay after project Go-Live)
Enhancement
  • Released Badi implementation
  • UI Adaptation project
  • Key User UI Adaptation
  • Custom ABAP Cloud
  • Custom Tier 2 wrapper
  • Unreleased Badi implementation*
  • Customer exit*
  • Routine exit*
  • Standard (Web) Dynpro enhancement
  • Implicit Enhancement
  • Custom ABAP Program with user access
  • Custom Dynpros
  • Custom Classic ABAP for use in background jobs
Form (Output)Custom Adobe Form with Fragments using a standard oData service
  • Custom Classic Adobe Form*
  • Custom Adobe Form with Fragments using a custom oData service
  • Custom SAP Script
  • Custom Smartform
HANA CDS ViewCustom Released CDS entityN/ACustom CDS view
Integration Process (custom)
  • Custom released APIs
  • Custom iFlows
Custom web service proxy object in S/4HANAN/A
Integration Process (standard)
  • Standard integration proxies and services in S/4HANA
  • Standard iFlows
N/AN/A
Mobile AppCustom Neptune app (on Open Edition)Custom Neptune app (on SAP Edition)N/A
ModificationN/AN/AStandard code modification
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 (with Datasphere integration)
  • Custom Business Objects Report
  • Custom KPI report
  • Custom AFO Report
Custom ABAP Report with custom transaction code
System Interface
  • Released APIs
  • Standard RFCs
N/A
  • Custom ABAP Program with direct service calls
  • Custom RFCs
User Interface
  • Custom Fiori UX with RAP based service in backend
  • Custom Web App on BTP with RAP based service in backend
Custom Fiori UX with Gateway service
  • Custom ABAP dynpro
  • Custom Web dynpro
Workflow (custom)
  • Custom SAP Build Process Automation
  • Custom Flexible Workflow
Custom Business Workflow*N/A
Workflow (standard)Standard Flexible WorkflowStandard Business WorkflowN/A
Application JobCustom class for Application JobCustom class for Application Job calling a Tier 2 wrapperN/A
Web APICustom RAP based oData or REST APICustom Gateway service*Custom RFC service

* Actually Tier 3, but due to limited availability of Tier 1 alternatives it is considered Tier 2

Clean Core Deviation tracking

All tier 2 and 3 Development Ids will be logged in a deviation tracker and need to be revisited during upgrades to see if a clean core compliant replacement is available.


The deviation tracker header to show the following:

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


Custom Development Request

Each business process step that requires a development Id will need a development request, specifying the system, development type and high level requirement.


Tier 3 needs to be justified in detail before DA approval and is only allowed by exception. It is legacy and considered deprecated. In certain circumstances classic ABAP development must be used due to lack of clean core replacements. These special cases are considered Tier 2.

Tier 2 needs to be justified in detail before DA approval. SAP is still adding clean core compliant APIs and enhancements each release and using tier 2 offers the needed flexibility to achieve the successful implementation of a business requirement.

Tier 1 is clean core compliant and upgrade stable. No detailed justification is needed.


Development requests are managed in Jira.

WRICEFUM Count

Every development requires at least one development Id. All will be counted. SAP considers all custom code as a core change. The type of it is irrelevant.


Standard interfaces or workflows require a development Id and FD to describe the business requirement and to cover the needed technical configuration. These will not be counted.

SaaS system customizations require a development object Id and FD to describe the business requirement and to cover the needed technical configuration. These will not be counted.


There is no target maximum number of development Ids defined.

A report that shows the approved Development Ids per Pod, L3/4 Process, Development Type, System, Clean Core Tier and by Release needs to be created in Jira.