Clarification – distinction between side-by-side and key user extensibility:
- Side-by-side: broader approach utilizing all capabilities of a platform-as-a-service (PaaS) platform.
- Key User: taken directly within the software stack.
The most important use cases for side-by side extension are that of building completely new UIs based on the SAP Fiori user experience or integrating with other SAP applications. You can build completely new applications and business logic that run natively on SAP Business Technology Platform, the apps being loosely coupled with the ABAP platform backend of SAP S/4HANA or other SAP products. In on-premise environments with SAP S/4HANA, key user and side-by-side extensibility approaches are available, but, in addition, classic extensibility – the full flexibility of extensions developed with ABAP code through the ABAP in Eclipse IDE – is also provided.

Pros
No restriction for extensions! Extremely flexible and powerful.
Cons
- No interface between SAP code and extension.
- Each SAP change leads to high test and adoption efforts.
- SAP upgrade effort increases & agility/innovation speed decrease.

Key user (in-app) extensibility focuses on adaptations created by key users, with its main features geared toward adding new fields or custom logic and adapting the standard user interfaces (UIs). Custom forms, reports and UIs, and custom business objects are also supported. For example, field extensibility allows a key user to create and maintain custom fields that are used to enhance applications and APIs. A key user can select from several data types (number, text, etc.) to create custom fields that will be used in applications and their UIs (for example, reports, email templates, form templates, Odata APIs, SOAP APIs, and others).

Here we see a few of the tools that can be used to implement key user extensions and the specific capabilities of each:
- UI Adaptation Mode: Allows changing the layout of tables and forms directly in the running UI.
- Custom Fields SAP Fiori App: Allows adding and editing of custom fields.
- Custom Business Logic SAP Fiori App: Allows adding of business logic to existing enhancement options.
- Custom Business Objects SAP Fiori App: Allows creation and editing of custom business objects.
- Custom CDS Views SAP Fiori App: Allows creation of company-specific data access on top of public CDS views.
- Custom Analytical Queries SAP Fiori App: Allows creation and managing of custom analytical queries.

The idea behind side-by-side extensibility using SAP Business Technology Platform stems from the desire to foster a cloud mindset and to use cloud native standards as much as possible. As a result, SAP customers can integrate modular applications, extending their business processes and building new processes not contained in the standard software. This allows SAP customers to differentiate themselves from the competition and potentially achieve significant competitive advantages.

Here we have a sample scenario for consideration. A sales executive who operates out in the field, outside of the company network, nevertheless, needs access to customer data when they meet customers. As a developer, you have been tasked with developing a solution for this problem. You decide that a side-by-side extension is the preferred approach and to develop a new UI application on SAP Business Technology Platform which uses standard released SAP APIs to retrieve customer information for the sales executive. The app is "mobilized", meaning it can be executed by the sales executive using a web browser, or deployed as a native app on either a mobile phone or tablet.

Here we see one possible implementation of the customer data application for the sales executive. The end user can execute the application on a desktop (using a standard web browser) as well as on a mobile phone or tablet. The application is developed using several services as part of SAP Business Technology Platform. The Business Application Studio (part of the SAP Extension Suite) creates all of the files that represent the UI application. Those files are subsequently stored in the HTML5 repository and a tile is created in the SAP Fiori Launchpad to launch the application. When the sales executive launches the application, the Identity Authentication Service performs all relevant authentication and authorization functions. When data is needed from the SAP S/4HANA system, standard released and stable APIs are invoked. Data transport security is achieved by using a secure tunnel maintained by the SAP Business Technology Platform Connectivity Service (part of the SAP Integration Suite) and the Cloud Connector. The APIs conform to the OData standard.

Testimonials
"SAP's side-by-side approach presents a great opportunity to enhance existing applications and industry solutions." (msg)
"SAP Cloud SDK significantly enhanced the development … we have been able reduce development time by up to 50 percent." (Beyond Technologies)
"[The SAP Cloud SDK] enables us to integrate and unlock the massive capabilities of SAP Cloud Platform even faster and more seamlessly." (CBS)
"The continuous delivery toolkit of the SDK is world-class." (msg)
"The SDK provides a comprehensive and ideal tool for all integration topics around SAP Cloud Platform." (Poksundo)
To summarize, when extending SAP S/4HANA, you can choose between using the in-app or the side-by-side extensibility paradigm. Each option is tailored for different use cases.
With In-App Extensibility, adding new business features (like creating a new template or field) does not have to be overly complicated. In-App Extensibility empowers LOB key users to apply non-disruptive extensions without risk. Some typical examples are:
- Adopting a new UI – like hiding or adding a new field.
- Adding application logic – like BADI (business add-ins) for ABAP developer.
Extensions are implemented in the same system as the enhanced app, and business experts and key users with no deep technical knowledge are able to implement common extensions to the functional scopes of SAP S/4HANA.
With side-by-side extensibility, technical experts can leverage the variety of SAP Business Technology Platform capabilities to extend SAP S/4HANA. Using SAP Business Technology Platform, developers can, for example:
- Perform freestyle development for new UIs or mobile applications.
- Use portal or mobile services.
- Integrate External users (non SAP) through social media or other channels so that they can access app data.
- Create new simplified processes by accessing application logic through released APIs.
- Create innovative cloud native apps using a range of intelligent capabilities, like Machine Learning, Analytics or IoT.