Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member194402
Discoverer

1 Introduction

Often on consulting projects need to quickly perform an efforts estimation for consulting services in the implementation of BPM development tasks. In this blog I want to show my approach for the efforts estimation for the implementation of BPM development tasks (bpm processes, services, applications, configuration tasks) for projects where you plan to use the SAP BPM functionality.

1.1 Key requirements

To estimate the efforts for the implementation of BPM functionality we need detail on the following key requirements:

List of requirements

Requirement

Comments

General requirements

Number of bpm-processes (system-centric, human-centric)

Number of all bpm-processes which included in the scope of project.

Number of additional custom BPM related utilities (applications/services)

Applications/services that are used to run processes (via BPM API, web-service), display  process data reports, UWL customization, etc.

Process specific requirements

Process type

System-centric/human-centric

Number of steps in bpm-process (workflow)

Number of human activities

only for human-centric processes

Complexity of UI for human activities

To determine the complexity level of the user interface you can use the special table in paragraph 3.

Number of standard or  already developed web-services/BAPI for automated activities in bpm-process

Services on BPM Java Application server side and all backend systems.

Number of web-services/bapi that need to be developed or extended for automatic activities of bpm-process

Services on all sides (BPM Java Application server, any backend system).

Number of backend systems used in process

Using for estimate efforts of system configure tasks.

1.1 Calculation scheme for efforts estimation

To develop bpm-processes uses the following project roles:

Roles in the development of BPM processes

Role

Responsibility area

Workflow developer

  • Documentation development
  • Workflow development
  • Adding and configuring user and system steps
  • Testing of workflow

UI developer

  • Documentation development
  • Application development (using WDJava, Visual Composer, WDABAP, HTML5).
  • Testing of application

Web service/BAPI developer

  • Investigation of standard ws/bapi
  • Customization of existing ws/bapi
  • Development of new ws/bapi
  • Documentation development (only for created or customized ws/bapi)
  • Testing of services

Efforts estimation is performed in several estimation steps:

  1. 1. Installation and configuration of BPM environment.
  2. 2. Workflow development.
  3. 3. UI development for human activities of BPM process and additional portal applications for BPM project (for example - monitoring of BPM processes/data, custom Universal Worklist, applications for starting BPM processes, etc.).
  4. 4. Development of services which using in UI applications and automated activities of BPM process.

Calculation of efforts estimation based on following details about BPM project:

  1. 1. List of BPM processes
  2. 2. List of additional applications
  3. 3. Detailed description of each BPM process (complexity level of workflow, number of UI and system steps).
  4. 4. Detailed description of additional applications (assignment of application, complexity level of UI, number of used services (WS, BAPI, etc.)).

The general scheme of calculation is as follows:

2 Efforts estimation of installation/configuration tasks for BPM components

In calculating efforts estimation of BPM-project necessary to consider the possible installation / configuration of application servers: development, testing and production server.

If the project implementation is carried out for the first time, you should consider the setting of the following components:

  1. Backend system connection: one of the purpose of the BPM functionality is exchange data between the systems and provision of the consolidated data to the end user. Therefore, relative to all backend systems involved in the BPM processes, the necessary settings must be made.
  2. Security: if the implementation of BPM project is carried out for the first time, required to perform security settings for the application server BPM.
  3. Buffer data storage: sometimes in BPM projects it is necessary to save the data in a separate data storage (requests data, description of bpm process route, a list of potential owners, etc.). Therefore, the configuration and additional development of the buffer data storage must be considered in calculation of efforts estimation.
  4. BPM-BW connectivity: Reporting is very often used in bpm-projects.
  5. Configuring the transport system and development environment (NWDI).

The resulting table for efforts estimation of each Java application server as follows:

Table 1. Efforts estimation of installation/configuration tasks for BPM environment

Task type

Optional

Efforts estimation (w.days)

1.1

Installation of BPM components

optional

2

1.2

BPM components configuration

optional

2

1.3

Security configuration

optional

1

1.4

BPM-BW connectivity

optional

1

1.5

Connecting to a federated network

optional

1

1.6

Development environment configuration (NWDI)

optional

1

1.7

Transport system configuration

optional

1

1.8

Install/configuration of buffer data storage

optional

2


3 Efforts estimation of process development

Efforts estimation of BPM process development includes the following steps:

  1. Estimation of workflow development.
  2. Estimation of UI development for human activities.
  3. Estimation of service (WS, BAPI) development.

All objects (workflow, applications and services) must be classified for the correct estimation. In the proposed approach for efforts estimation the following classification is used:

WORKFLOW, UI AND SERVICES CLASSIFICATION BY COMPLEXITY LEVEL

Complexity level

Workflow complexity level description

UI complexity level description

Service (WS/BAPI) complexity level description

Low

Number of used steps in workflow: 1 - 3

Number of new fields for development: 1–20

Medium

Number of used steps in workflow: 4 – 6

Number of new fields for development: 20–40

High

Number of used steps in workflow: 6 – 10

Number of new fields for development: 40–60

3.1 Efforts estimation of workflow development

Workflow development included the following tasks:

  1. Documentation development
  2. Design workflow
  3. Assigning UI in human activities and configuring (mapping, roles, deadlines etc.)
  4. Assigning services in automated activities and configuring (mapping)
  5. Testing workflow

We using table№2 «Workflow development», to estimate efforts for documentation development, design workflow and testing (tasks№1,2,5).

Table 2. Efforts estimation of workflow development

2 - WORKFLOW DEVELOPMENT

Workflow complexity level

Doc. dev (w. days)

Workflow design (w. days)

Testing

Total

2.1

Low

1

0,5

0,5

2

2.2

Medium

2

1

1

4

2.3

High

3

1,5

2

6,5

Next step is estimation of assigning and configuration UI and system steps in the process workflow, based on table№3 «Connection and configuration human and automated activities».

Table 3. Efforts estimation of connecting task for human activities and services for automated activities

3 – CONNECTION CONFIGURATION OF HUMAN AND AUTOMATED ACTIVITIES

Complexity of process step (UI/Service)

Add and config. of one sys. Step

(w. days)

Add and config. of one user step (w. days)

3.1

Low

0,06

0,06

3.2

Medium

0,12

0,12

3.3

High

0,18

0,18

3.2 Efforts estimation of UI for human activities

The second part is efforts estimation of development applications with user interface.

All applications used for bpm project are divided into two following groups:

  1. Applications for human activities in bpm processes.
  2. Additional applications (starting of bpm processes, UWL customization, monitoring of processes, data reports etc.)

We can use table №4 for estimation of applications development.

Table 4. Efforts estimation of application development for Human activities

4 – UI DEVELOPMENT FOR HUMAN ACTIVITIES (Classification by complexity level)

Complexity level

Doc. dev (w. days)

UI dvelopment (w.days)

Testing

Total

4.1

Low

0,5

0,5

0,5

1,5

4.2

Medium

1

2

1

4

4.3

High

2

4

1,5

7,5

Often UI applications using services (WS/BAPI) for access to data in backend-systems (CRUD operations from UI applications). Therefore, we need to estimate service development tasks and we using table№ 5 for this estimation.

Table 5. Efforts estimation for service development

5 – SERVICE (WS/BAPI) DEVELOPMENT

Service (ws/bapi) type

  1. Doc. Dev. (w. days)

Development/ investigation (w. days)

Testing

Total

5.1

Low

Standard/ existed

0,5

0,5

1

2

5.2

New service

0,5

1

1

2,5

5.3

Medium

Standard/ existed

1

1,5

1

3,5

5.4

New service

1

2

1

4

5.5

High

Standard/ existed

2

2

2

6

5.6

New service

2

2,5

2

6,5

We can also use this table for efforts estimation of Java development which using in mapping configuration tasks.

Next step is to estimate efforts for connection (new or existed) and configuration of services into application.

Table 6. Efforts estimation of connecting services in applications with UI or automated activity

6 – CONNECTING AND CONFIGURING OF SERVICES

Complexity level

  1. Doc. dev (w. days)

Connecting and configuring one service  (w. days)

Testing

Total

Note

6.1

Low

0,25

0,125

0,125

0,5

Configuring for 1-20 fields

6.2

Medium

0,5

0,5

0,5

1,5

Configuring for 20-40 fields

6.3

High

1

1

1

3

Configuring for 40-60 fields

Also we can use Table 6 for efforts estimation of Notification, Reporting and Mapping steps configuration.

Now, if we have a description of human activity or some portal application for users, we can estimate efforts for development of this application using table №4,5,6. You can see example of efforts estimation for application development with high level complexity of UI and used two services. One of this services is new, then we need to estimate efforts for development and connection. Another one service is already existed and no changes for this service need for our application.

Example of Efforts estimation of UI development task for human activity

Task type

Complexity level

Efforts estimation

Reference table

UI development

High

7,5

4.3

Existed service connecting

Low

0,5

6.1

New service development

Low

2,5

5.1

New service connecting

Low

0,5

6.1

Total

11

3.3 Total efforts estimation of BPM process development

Using tables №2,3,4,5,6 we can estimate efforts for each BPM process development task.

Efforts estimation of BPM process development task

EFFORTS ESTIMATION FOR PROCESS DEVELOPMENT TASKS

Development task

Complexity level

Efforts estimation

Table reference

Development of BPM Process <Process name>

Design and configuring of workflow

Low/Med./High

x

2.1

Development of human activity №1

UI development

Low/Med./High

x

4.1

Existing service connecting 1

Low/Med./High

x

6.1

Low/Med./High

x

6.1

Existing service connecting n

Low/Med./High

x

6.1

New service development 1

Low/Med./High

x

5.1

Low/Med./High

x

5.1

New service development n

Low/Med./High

x

5.1

New service connecting 1

Low/Med./High

x

3.1

Low/Med./High

x

3.1

New service connecting n

Low/Med./High

x

3.1

Connecting task to hum. activity

Low/Med./High

x

3.1

Development of automated activity №1-n

New/existed service development

Low/Med./High

x

5.2

Connecting service to automated activity

Low/Med./High

x

3.1

Total

x

Example of efforts estimation of BPM process development task

Development task

Complexity level

Efforts estimation

Table reference

Development of BPM Process 1

Design and configuring of workflow

Low

2

2.1

Human activity №1

UI development

Low

1,5

4.1

Existing service connecting 1

Low

0,5

6.1

Connecting task to hum. activity

Low

0,06

3.1

Human activity2

UI development

  1. Med.

4

4.2

Existing service connecting 1

  1. Med.

1,5

6.2

Existing service connecting 2

High

3

6.3

Connecting task to hum. activity

  1. Med.

0,12

3.2

Automated activity1

New service development 1

Low

2,5

5.2

Connecting service to automated activity

Low

0,06

3.1

Total

15

4 Efforts estimation of Additional development tasks

Often there is a need to develop additional applications and services for BPM project based on special requirements from customer side. These applications can perform the following functions:

  1. Starting BPM processes.
  2. Customize list of BPM tasks.
  3. Buffer data storage with access with CRUD operations.
  4. Restart BPM processes based on Buffer data storage.
  5. Configuration of user groups as potential owners, before BPM process start.
  6. Monitoring of BPM processes data, based on special requirements from customer.

You can also use table №3,4,5 for efforts estimation of additional application of BPM project.

Example of Efforts estimation of UI development task for human activity

Task type

Complexity level

Efforts estimation

Reference table

UI development

Low

1,5

4.3

Existed service connecting

Low

0,5

6.1

Existed service connecting

  1. Med.

1,5

6.2

Total

10,75

5 Total efforts estimation

The resulting table includes the estimation of all basic BPM development tasks.

EFFORTS ESTIMATION FOR BPM PROJECT TASKS

Development task

Complexity level

Efforts estimation

Table reference

Install/configuration BPM environment

Installation of BPM components (optional)

-

x

1.1

BPM components configuration (optional)

-

x

1.2

Security configuration (optional)

-

x

1.3

BPM-BW connectivity (optional)

-

x

1.4

Connecting to a federated network (optional)

-

x

1.5

Development environment configuration (NWDI)

-

x

1.6

Transport system configuration (optional)

-

x

1.7

Install/configuration of buffer data storage (optional)

-

x

1.8

Development of BPM Process №1 <Process name>

Design and configuring of workflow

Low/Med./High

x

2.x

Development of human activity №1-n

UI development

Low/Med./High

x

4.x

Existing service connecting 1

Low/Med./High

x

5.x

Low/Med./High

x

5.x

Existing service connecting n

Low/Med./High

x

5.x

New service development 1

Low/Med./High

x

6.x

Low/Med./High

x

6.x

New service development n

Low/Med./High

x

6.x

New service connecting 1

Low/Med./High

x

3.x

Low/Med./High

x

3.x

New service connecting n

Low/Med./High

x

3.x

Connecting task to hum. activity

Low/Med./High

x

3.x

Development of automated activity №1-n

New/existed service development

Low/Med./High

x

4.x

Connecting service to automated activity

Low/Med./High

x

2.x

Development of BPM Process №n <Process name>

Design and configuring of workflow

Low/Med./High

x

2.x

Development of human activity №1-n

UI development

Low/Med./High

x

4.x

Existing service connecting 1

Low/Med./High

x

5.x

Low/Med./High

x

5.x

Existing service connecting n

Low/Med./High

x

5.x

New service development 1

Low/Med./High

x

6.x

Low/Med./High

x

6.x

New service development n

Low/Med./High

x

6.x

New service connecting 1

Low/Med./High

x

3.x

Low/Med./High

x

3.x

New service connecting n

Low/Med./High

x

3.x

Connecting task to hum. activity

Low/Med./High

x

3.x

Development of automated activity №1-n

New/existed service development

Low/Med./High

x

4.x

Connecting service to automated activity

Low/Med./High

x

2.x

Additional development

Additional application №1

UI development

Low/Med./High

x

4.x

Existing service connecting 1

Low/Med./High

x

5.x

Low/Med./High

x

5.x

Existing service connecting n

Low/Med./High

x

5.x

New service development 1

Low/Med./High

x

6.x

Low/Med./High

x

6.x

New service development n

Low/Med./High

x

6.x

New service connecting 1

Low/Med./High

x

3.x

Low/Med./High

x

3.x

New service connecting n

Low/Med./High

x

3.x

Additional application №n

New/existed service development

Low/Med./High

x

4.x

Connecting service to automated activity

Low/Med./High

x

2.x

Total

x

1 Comment