
World spins, people evolve, technology evolves and developers are constantly challenged to be up-to-date with the latest cooler Javascript framework, efficient CI/CD architectures, building microservices, DevOps adoption, cloud deployment and many others exciting application designs and toolings. Such such willingness to develop bleeding edge software is good for innovation however, there is no relevant innovation if it is not empowered by the company’s business. The business rules and processes should still be there in some form within the application.
Once upon a time, not a long time ago, I remember never-ending threads discussing the best way to code and to host such business rules. Business Object pseudo-patterns, Domain-Driven Design, Behavior Driven Design, Domain Specific Languages were popular topics. Sure, they are still discussed today in developers chatting circles but I see more and more new developers focusing on pure technology instead of discussing about how code translates to company’s business.
The term Ubiquitous Language used by Eric Evans in his famous book Domain-Driven Design (2003) aimed to establish an unique common language and vocabulary between users and developer that could enrich the domain model of an application without too many translations between business terms and application code. It is an important principle that should not be ignored in an age in which “Digital Transformation by Business Automation” is the new wave in companies. It does need all hot tech skills discussed in modern dev-to-dev talks, however, more than that it needs business engagement and transparency.
Where is the company’s business ?
It is known that for any company to keep up in the competitive market it must have in place some practice to reduce waste, repetitive and unnecessary hard work improving quality of products and services with efficiency. Kaizen, PDCA, or any other related continuous improvement methodology is great for this, however, without detecting and tracking the full picture of the whole business process it becomes hard to achieve those goals. Business Process Management (a.k.a BPM) is something that can help in this regard.
Quoting https://bpm.com/what-is-bpm:
Business Process Management (BPM) is a discipline involving any combination of modeling, automation, execution, control, measurement and optimization of business activity flows, in support of enterprise goals, spanning systems, employees, customers and partners within and beyond the enterprise boundaries.
Yes, BPM is not a software by itself, it is a DISCIPLINE hand in hand with continuous improvement techniques. Due to this BPM is not something outdated like old SOA architectures. Actually in times of companies seeking to automate their workflows, identify and monitor processes to build intelligence around it is essential and this is why BPM is the center of any modern business processes automation.
Business Automation
With its core in BPM flows, Business Automation expand the idea of mapping process and creating Process-Driven Apps to rebuild, rethinking the process itself. Usually companies using BPM models are able to identify bottlenecks and evolve its processes to make them smarter, less error proof and more efficient. Business Automation usually add for such (but not mandatory or restrict to):
- Human task automation: with KPIs well defined sometimes is not needed humans to take actions in factor of some business result – such tasks can be automated using traditional business rule engines like Drools or even evolving to a cognitive computing where a volume of data is analyzed into AI systems that can directly act into the process. Frameworks like Apache Spark to analyze large data volume and to add machine learning capabilities to processes fit very well for this purpose. Robotic Process Automation as general is becoming popular as an addition to business processes to accomplish this objective
- Agile deliveries: if business process automation is based on business processes evolution, so makes sense deliver it quickly to avoid losing the ”momentum”. Business Automation is strongly connected to cycles of evaluation to evolve processes, adding flexibility to change as the main target. Business can’t be automated if there is no agile thinking driven the process in all levels: process planning, mapping, modeling, coding, testing, deployment, checking, re-planing, etc. Strong collaboration between users, developers and ops team are fundamental pieces for any business automation.
- Cloud native applications: To automate processes, the application must embrace the cloud completely. The business process must live in public cloud, private cloud or hybrid cloud seamless, to allow the business scale naturally depending on the demand without human intervention for such.
Where is the developer playground on this ?
Programmers should back to think in strategies to reduce the noise caused by the discrepancy between user stories from analysts and what is translated in code. There is nothing more ubiquitous for business representation than BPM models.

The open source project jBPM supports process modeling, simulation, monitoring and execution of business processes and enable the automation exercise on it.
jBPM bundles in its distribution a rich WEB platform called Kie Workbench that empower business analysts, BPM practitioners and developers to model simple to complex processes using standard BPM notation (BPMN2).
The artifacts generated in such workbench can be consumed by any ordinary Java application as jBPM is also a lightweight process engine that can run embedded easily in third-party applications as a simple Java framework.. jBPM also offers an execution server called Kie Execution Server or just Kie Server, that once deployed exposes services to execute business processes created by the Kie Workbench. So architects can choose if wanna run processes embedded in another application or just call the services to execute the processes remotely into Kie Server as microservices to be consumed.
To automate decisions jBPM provides out-of-box integration with the most famous and used open source rule engine available, Drools. The rule engine enable analysts and developers to share the business knowledge into rules without unnecessary translations between user language and programming language. Abstractions like Decision Tables and DMN are used for such, populating the process knowledge base with unmasked business rules.
If needed to interact with any kind of external system to add cognitive logic as example, it could be used custom services operated and hosted by jBPM Service Repository. The Service Repository allow extensions to be created and becomes reusable for every new process easily. The public repository contains out-of-box some examples for getting started with custom services.
There are others features in jBPM like Case Management, Form and Page Builder, Smart Router for horizontal scaling, native Git integration (all assets created by Kie workbench are stored in Git branches) and much more also delivered in jBPM distribution that can reduce the gap between developers and analysts to build smart solutions driven by business.
—
For companies seeking for jBPM support targeting production deployment with SLA and patches deliveries, Red Hat offers support for jBPM by the subscription of Red Hat Process Automation Manager (RH PAM). Besides tested and certified bits of jBPM and Drools, the subscription also packs Business Optimizer, the enterprise release of OptaPlanner, an open source planning engine that uses heuristics and metaheuristics to solve complex planning problems. The entitlement includes access to images to run RH PAM in OpenShift for self-service provisioning within private, public, and/or hybrid clouds.
