Contents

Purpose

The purpose of this checklist is to fast-track the creation and review of Specifications by describing the minimum set of acceptance criteria required for such a Specification to meet before it is accepted by the Technical team for implementation. By describing up-front the standards and expectations placed by the Technical team upon the authors of Specifications, we hope to speed up delivery of specs and their reviews, and to reduce rework with the goal to meet project timeline and quality objectives.

Assumption

The overriding requirement is for the Specification to be completed with enough detail so that a technically sound solution can be implemented.

Fitness for Purpose

The Specification serves several purposes that are equally important for the document to be acceptable. The specification must describe:

Specifications communicate with two different and equally important audiences: 

Both of these groups are important customers, and their needs must be taken into account when writing Specifications. 

With the above in mind, these items must be adhered to :

General Checks

Development Type Specific Checks

Different types of custom developments introduce additional requirements to consider when writing the Specification. 

Application Job (custom)

  • The Selection screen details need to be provided.
  • Customizing requirements specified (views to be updated, etc).
  • Exception process/handling must be defined.

Conversion

  • Logical Source and Target Systems are identified. 
  • Processing Type is specified (i.e. Direct Input, BAPI, IDoc, Web Service, OData API, etc.)
  • Standard or custom load program name/BAPI/IDoc is specified to support this functionality.
  • Data Mapping is provided for mappings which are not obvious to a suitably-skilled and experienced developer
  • All translation requirements are clearly defined (including data validation rules, data derivation/calculation and default values, if applicable)Input and/or Output file layouts are provided for all record types possible
  • Transaction volume is specifiedExecution frequency is specifiedRestart/Recovery requirements have been defined
  • Error handling requirements are specified, including alerting requirement and expected action on failure. 
  • Application log requirement if applicable to be specified. 

Enhancement

  • The main Fiori app/transaction/program being enhanced.
  • The proposed enhancement mechanism has been provided. Please note that this can only be finalized with input from the Technical team. 
  • Customizing requirements specified (views to be updated, etc).
  • Exception process/handling must be defined.
  • Functional process should be explained to justify enhancement. 
  • Localisation / Regulatory requirements to be specified if applicable.

Form

  • The author has inserted a mock-up or actual screenshot of the form, with annotations where visual UI enhancements are needed. Forms should be specified using hi-fi mock-ups which show all of the required elements with annotations and explanations. 
  • The process for initiating the output generation is clearly specified. 
  • Type of output specified (i.e. to a screen for download, for Desktop printing by the user, for non-interactive direct printing).
  • Existing forms similar to the proposed form have been identified as appropriate, and included as samples. 
  • Paper size is specified (A4, Letter, Label dimensions, etc).
  • Form layout is provided with real positions and sizes of each page.
  • Page format and orientation are included for each page.
  • Layout is harmonized with other similar forms.
  • The Locale of the form is specified; this will determine things such as language, date and number formats, address formats, etc. 
  • If applicable, pre-printed form identified (a document is included with this pre-printed at real size or the pre-printed is sent by posting).
  • Maximum lengths are suitable for layout.
  • Field descriptions provided for each form field that is not obvious to a suitably experienced developer.
  • Standard texts to be used are defined.
  • Deviations from standard SAP address format are identified.
  • The form language(s) is indicated and is not a constant, specially if translations are required.
  • Form layout and translation have been provided for all (additional) languages, If any.
  • Special requirements (i.e. envelope, terms and conditions file, fax number generation procedure) have been clearly documented.
  • The printer type is specified and further considerations are not forgotten for special printer types (laser printer, dot printer, thermal printer, etc...).
  • The paper type is specified and further considerations are not forgotten for special paper types (continuous stationary, sticker).
  • Desired persons signature which are supposed to be included in form on right with necessary information and desired language must be properly mentioned.
  • Logo Requirements should be consistent to project approach.

HANA CDS View

  • Source and target systems to be provided.
  • CDS consumption layer to be provided, i.e. Direct read, oData V2/V4, Rest API to be detailed.

Integration Process (custom)

  • Logical Source and Target Systems are identified.
  • Link to artifact in LeanIX to be provided.
  • Initiation method is specified (e.g. user action, event, incoming message, timed job, polling, etc.)
  • A UML Sequence Diagram should be included showing the flow of messages, whether a push or pull pattern is used, which communication links are synchronous and which are asynchronous, etc. 
  • Data Mapping is provided for mappings which are not obvious to a suitably-skilled and experienced developer
  • Input and output messages are provided
  • Error handling requirements are specified, including alerting requirements and expected action on failure. 
  • Can the integration process be safely re-run without adverse effects (i.e. it is idempotent)? 
  • Defines the volumes of data being handled per invocation, the frequency of invocation, and expected execution times.

Integration Process (standard)

  • Logical Source and Target Systems are identified.  
  • Link to artifact in LeanIX to be provided.
  • References, including with URL, the vendor-provided integration content that is being deployed
  • Explicitly calls out any modifications or adjustments needed to be applied. 
  • Defines the process for updating the content of the integration process whenever a vendor releases an update for it. 
  • Initiation method is specified (e.g. user action, event, incoming message, timed job, polling, etc.) 
  • A UML Sequence Diagram should be included showing the flow of messages, whether a push or pull pattern is used, which communication links are synchronous and which are asynchronous, etc.
  • Error handling requirements are specified, including alerting requirements and expected action on failure. 
  • Defines the volumes of data being handled per invocation, the frequency of invocation, and expected execution times.

Mobile App

  • A screen mock-up or actual screenshot with annotations where visual UI enhancements are needed. At minimum use a lo-fi wireframe or sketch.
  • Offline requirement to be defined.
  • Requirements for camera access, additional storage access or device specifics to be provided.
  • Field descriptions provided for each UI field that is not obvious to a suitably experienced developer.
  • Translations have been provided for all (additional) languages, If any.
  • Navigation within the app to be provided.
  • Exception process/handling must be defined.

Modification

  • The Fiori app/transaction/program being modified has been provided.
  • OSS Note that requires modification.
  • SAP Support case number that led to the modification requirement.
  • Business justification needs to be added. 

Program

  • The selection screen has been defined.
  • The output layout has been defined.
  • Exception process/handling must be defined.
  • Translations have been provided for all (additional) languages, If any.
  • Validation logic for Screen elements need to be documented.
  • Program flow logic has be defined.

Report/Analytics

  • Indicates preferred UI and data modelling technology (e.g. SAC, DataSphere, embedded Fiori Analytics). 
  • Processing Type specified (i.e. batch, online). If the report is going to be scheduled in batch specify the frequency of execution.
  • Clearly document input criteria required for processing report - (navigation to other reports via drill-down, nested reports...), if applicable and also output type (download to Excel, dashboard only).
  • Report layout is provided for all new/modified reports.
  • Field descriptions are provided for all new/modified reports.
  • Translations have been provided for all (additional) languages, If any.

System Interface

  • The Logical Systems providing the interface is identified. 
  • The Interface Development ID is shown. 
  • IDs of Integration Processes interacting with this System Interface must be included.
  • Link to artifact in LeanIX to be provided.
  • The relevant integration pattern used by this System Interface must be specified. 
  • The API type has been provided. Please note that this can only be finalized with input from the Technical team.
  • A UML Sequence Diagram should be included showing the flow of messages, whether a push or pull pattern is used, which communication links are synchronous and which are asynchronous, etc. 
  • Input and output messages are provided.
  • Error handling requirements are specified, including alerting requirements and expected action on failure. 
  • Can the interface be invoked multiple times without adverse consequences, (i.e. it is idempotent)?
  • Defines the volumes of data being handled per invocation, the frequency of invocation, and expected execution times. 

User Interface

  • The author has inserted screen mock-up or actual screenshot with annotations where visual UI enhancements are needed. UI developments such as Fiori apps or enhancements should at minimum use a lo-fi wireframe or sketch.
  • The to be used UI technology has been provided.
  • Supported screen size(s) have been specified (Desktop / Tablet / Phone).
  • Field descriptions provided for each form field that is not obvious to a suitably experienced developer.
  • Translations have been provided for all (additional) languages, If any.
  • Navigation not just within the UI, but also to other UI apps have been provided.Workflow (custom)
  • Exception process/handling must be defined.

Workflow (custom)

  • A workflow diagram must be included. This can be a free-form diagram using Draw.io but must show decision steps and actions performed by workflow agents.
  • Type of Workflow, Flexible/ Business WF/ BPA, to be defined. 
  • Escalation process must be defined.
  • Reminders for unresponsive approvers must be defined.
  • Dialogue step details, incl. text to be displayed and actions to be available are provided.
  • Agent determination rules must be defined in detail.
  • Translations have been provided for all (additional) languages, If any.

Workflow (standard)

  • A workflow diagram must be included. This can be a free-form diagram using Draw.io but must show decision steps and actions performed by workflow agents with systems mapped. 
  • Type of Workflow, Flexible/ Business WF/ BPA, to be provided.
  • Escalation process must be defined.
  • Agent determination rule configuration must be defined.
  • Translations have been provided for all (additional) languages, If any.


How to find the right specification template

Below table details the Scaffold Specification template needed per the Development Id's Type of Development.

How to create a specification using the template can be found here: Creating Functional Specifications

Type of DevelopmentTemplate Name
Application Job (Custom)Functional Specification - Enhancement
Conversion (Load only)Data Conversion Specification
Conversion (Transform + Load)Data Conversion Specification
Conversion Custom Build with Development IdFunctional Specification - Enhancement
EnhancementFunctional Specification - Enhancement
Form (Output)Functional Specification - Form
HANA CDS ViewFunctional Specification - Enhancement
Integration Process (custom)Functional Specification - Integration Process
Integration Process (standard)Functional Specification - Integration Process
Mobile AppFunctional Specification - User Interface
ModificationFunctional Specification - Enhancement
ProgramFunctional Specification - Enhancement
Report/AnalyticsFunctional Specification - Report/Analytics
System InterfaceFunctional Specification - System Interface
User InterfaceFunctional Specification - User Interface
Workflow (custom)Functional Specification - Workflow
Workflow (standard)Functional Specification - Workflow