Designing BPM Applications

Lucas Gertel
6 min readJun 24, 2019

Every company has challenges. To start thinking in Digital Transformation, it's a common challenge to translate everything to technology driven approaches. How to do it inside some specific areas with always evolving needs and light speed requirements?

Business Process

What is a Business Process?

Some time ago, it was a difficult topic to talk about. Some pragmatic architects that feared this theme. Microservices to the rescue and all the discussion that we can have about this topic, let's define how it can help us.

So, how we can define a business process at all?

  • Interaction over time
    Chronological relationship between tasks, with due dates and sequencing, but not a schedule.
  • Multiple actors
    More than one person or automatic system must complete tasks for the whole process to be successful.
  • Repetition
    The sequence of tasks is repeated, either at fixed intervals or when triggered by a specific event.

A process based application is composed of at leat one process and some associated components.

And what is not? How to know when not to use?

Filing out a form is not a process. If it's something that is done for a single user — usually is not a process. State diagram is not a process. We need actions to construct a process. Things are updated by actions and usually they have different states. Sometimes we need validations inside each stage and action, but itself the state is not a process.

Process-Based Applications

There are some common scenarios that can fit very well using BMP. Here are some examples:

Vacation Management
An employee asks a manager to approve a request to take some days of paid vacation. The manager approves or refuses the request. The employee needs to know how many vacation days are unbooked, and the manager needs to know the vacation plans of the team. Vacation plans change, so requests can also be modified or cancelled.

Recruitment and On boarding
A manager gets permission to recruit, and gives the profile to HR. An HR administrator filters candidates according to the profile, then sends short-listed candidates’ details to the manager for review. The manager chooses which candidates to call for an interview. There are selection interviews. A decision is made, and an offer is sent to the selected candidate, who accepts or declines the position. If the candidate accepts, a start date is agreed upon, and the on boarding process is triggered. During the on boarding process, IT creates the user account, Facilities orders an access card for the building and confirms that an office is prepared, HR prepares a welcome pack, and the manager confirms that a ramp-up plan is prepared.

Procure To pay
An employee raises a purchase order (PO) for new equipment. The employee’s manager reviews the purchase order, and approves it or refuses it. If it is above a given validation limit, it is automatically escalated to a senior manager for a second level of approval. After the PO is approved, it is sent to the purchasing department, which places the order. When the equipment is received, it goes to the employee, who checks that it is correct. The invoice is received by Purchasing, which checks that it is correct and initiates payment.

Build to Order
An automated production system receives an order. It checks whether the components needed are in stock, reserves those that are, and orders any that are not. The order is put on hold until the components are all available. When the ordered components arrive at the warehouse, the order is built, then packaged, and then shipped.

Online Shopping
A user logs in to an online shopping site. Over the course of several visits, they assemble a shopping basket. Then they go to the checkout, review the basket content, and select the items for immediate purchase. They check the shipping cost for the selected items. After making a final selection of items to buy, they enter the delivery address and credit card details, which completes the purchase. In the warehouse, a robot collects the purchased items, packages them, and dispatches the order.

Business Continuity
A building surveillance system detects a power outage. It notifies the business continuity (BC) manager at the headquarters of a company with offices in the building. The arrival of the notification automatically starts a timer set for 15 minutes. If the power is still out after 15 minutes, the failover plans are put on standby. The BC manager investigates the cause and decides to declare an incident. This initiates the tracking process, which contacts the staff at the remote site. The managers in the BC team use the process to report their actions, and the process issues reminders or escalations if needed. The BC manager and the whole team can view the process status to get a snapshot of the actions that have been taken. All actions are under the control of the relevant person, while the process provides tracking and visibility for everyone. When the incident is over, a similar tracking process is used to manage the transition back to normal operation.

Document Approval
A technical writer issues a first draft for review. The technical experts review the draft and provide comments in a form. All reviewers can see all comments, which makes it easier to resolve conflicts. The writer produces drafts iteratively, and experts review until they approve the content. The final draft is then sent for proofreading, updated if necessary, then published.

Travel Management
An employee sends a travel request to the team manager. The manager gives provisional approval. The employee sends the travel request to the team administrator, who investigates flight and hotel pricing and availability, and suggests an itinerary. The employee reviews the itinerary, and works with the admin to finalize it. The final itinerary including pricing is sent to the manager, who approves the total cost. The admin books the travel. After the trip, the employee submits an expense claim, which is automatically checked against the expenses policy. If it is in policy, the claim is sent to the finance department for payment. If it is out of policy, it is first sent to the manager for approval of the exceptions and then sent to the finance department for payment.

Business Process Management

Business Process Management (BPM) is an approach to process improvement. Focused on improving the efficiency of a business by making processes more efficient, flexible, and dependable, and by reducing costs.

Business Process Model and Notation

Business Process Model and Notation (BPMN) is an international Object Management Group specification for describing a business process. The most recent version is BPMN2. It provides a framework that can be used to define a process so that it can be executed. The standard covers both the graphical representation of a process and the execution semantics. The graphical representation is the basis for communication between the business analysts who design the process and the development team who implement it. It is also useful for communication between the business analysts and the functional teams who are “customers” for the process.

There are BPMN software applications that can take the process definition and create an executable application directly from it. This enables a business process to be presented to nontechnical users in a way that is easy for them to use, efficient, and repeatable. It is therefore much easier to introduce “best practice” and improvements in workflow.

Process Automation
The first step in automating a process is to create a formal definition in BPMN2. This definition can be executed so, at a very basic level, your process is automated.

To transform a process defined in BPMN2 into a process-based application, you need to combine the following:

  • Application components that are not part of a process; notably the user interface components, which are typically web pages
  • The definitions of all the related processes
  • Forms for process tasks that require human interaction
  • Data

There is an upfront investment in automating a process, so even if the downstream cost savings are obvious, you will not automate all your processes immediately — or ever. To get the greatest benefit from automation, you should automate a process if it has some of the following characteristics:

  • Frequent use
  • Approval tasks
  • Multiple concurrent use
  • Non-Human tasks that currently require human supervision or intervention
  • Strong need for consistency and measurement
  • Criticality (for example, time, legislation, or financial risk)

Process Efficiency

The key to creating an efficient process is to start with the simplest case and extend or refine the application iteratively. You can start by automating a small part of the process, and then extend the implementation to cover the whole process, or you can start with a process containing vague or generic tasks and refine it to be more specific based on user feedback.

We need to start preparing our system and understanding how it would look like. Let's talk about this on the next post.

Cya!

--

--

Lucas Gertel

rquiteto de Software Full Stack apaixonado por tecnologia, minha família e coisas de nerd. Adoro criar soluções inovadoras que entregam valor real aos clientes.