Chapter 1. Why Do We Need Business Process Management?
We software developers are used to embracing new technologies. Every day, we have to learn new versions of frameworks to make best use of the features available in them. We deal with the frustration of learning new APIs, integrating them in our project's architecture, and taking advantage of the all-new functionality that these new components provide us. We thrive on that. The software industry continuously pushes us into innovating how we design and architect our software solutions, sometimes to the point of not just creating a new framework, but a new paradigm to enhance communication and descriptiveness of the company's internal sequence of activities and software, which we need to understand as developers.
Business Process Management (BPM) is one of those paradigms whose scope goes further from the development arena and into all sorts of company realms. BPM provides visibility about a company's business processes, allowing us to improve and speed them up to increase profits and reduce costs, consequently improving the way the company works. It is a discipline with its own objectives, life cycle, and best practices, and one of its biggest added values is the common language it defines between all its participants—the business process.
You will find in this chapter the starting point to define these business processes, and how they help in building solutions that drive a company in a way that helps it to adapt faster to the business reality.
We will review this paradigm and how it enriches what we already know about building solutions, along with the technical topics to put them in practice into the latest jBPM version. To do so, we will cover both theoretical topics that would apply to understanding any Business Process Management System (BPMS) and the technical topics to build highly adaptable applications using jBPM6. Important concepts and definitions are highlighted throughout this book to help you solve new problems as they are found.
When you start embracing these new concepts, you'll find new ways of modeling situations, finding solutions, and building applications that will be of interest for many different people: the development team for integration purposes, the business analysts and managers for formalizing processes, the end users who will interact with the user interface, and pretty much anyone with an interest in the company processes. It is of great importance that you share this new knowledge with as many people in the organization as possible, because BPM is not just a development tool but a full company driver that will surely help your project and your company to be a success by establishing a common language between different areas of expertise.
BPM improves the quality and flexibility of the software solutions we build by helping the company to drive its business. BPM establishes a management strategy to establish an integral way of managing the company's activities, which allows different domains to concentrate on the efficiency of tasks in terms of time as well as costs. BPM allows a company to use an iterative cycle to continuously detect and improve both activities and processes as needed or desired by a company. Driving a successful BPM implementation requires a lot of learning, but we'll cover as much of that learning as possible in this book. I strongly recommend that you involve as many areas and roles as possible in your BPM implementations by taking advantage of the common language generated by the BPM methodology. Furthermore, sharing your experiences develops your professional skills and helps you to gather different perspectives and visions from the topics that you find relevant. So, let's get started!
The content of the book is divided into three different stages:
- Theoretical background
- Introduction, analysis, and explanations of standard specifications
- BPM APIs and common practices
Each stage focuses on different concepts.