Possible approach to efforts estimation of BPM implementation project
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 |
|
UI developer |
|
Web service/BAPI developer |
|
Efforts estimation is performed in several estimation steps:
- 1. Installation and configuration of BPM environment.
- 2. Workflow development.
- 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. 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. List of BPM processes
- 2. List of additional applications
- 3. Detailed description of each BPM process (complexity level of workflow, number of UI and system steps).
- 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:
- 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.
- Security: if the implementation of BPM project is carried out for the first time, required to perform security settings for the application server BPM.
- 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.
- BPM-BW connectivity: Reporting is very often used in bpm-projects.
- 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:
- Estimation of workflow development.
- Estimation of UI development for human activities.
- 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:
- Documentation development
- Design workflow
- Assigning UI in human activities and configuring (mapping, roles, deadlines etc.)
- Assigning services in automated activities and configuring (mapping)
- 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:
- Applications for human activities in bpm processes.
- 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 |
|
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 |
|
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 activity №2 |
|||||
UI development |
|
4 |
4.2 |
||
Existing service connecting 1 |
|
1,5 |
6.2 |
||
Existing service connecting 2 |
High |
3 |
6.3 |
||
Connecting task to hum. activity |
|
0,12 |
3.2 |
||
Automated activity №1 |
|||||
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:
- Starting BPM processes.
- Customize list of BPM tasks.
- Buffer data storage with access with CRUD operations.
- Restart BPM processes based on Buffer data storage.
- Configuration of user groups as potential owners, before BPM process start.
- 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,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 |
Awesome!