So what's in it for WSO2 BPS users? How would an organization benefit from BPMN based business processes? Let's start by looking at the purpose of business processes and business process modelling.
Business process is a collection of interrelated tasks used to achieve a business goal. Let's take an example of buying a new laptop for an employee. First, the employee has to fill a procurement form and get the approval from his manager. Then the employee hands over the form to the procurements department. Procurements department gets quotations from approved suppliers. Once quotations are obtained, it submits appropriate form to the finance department for funds. If the funds are not approved, new quotations are taken and sent for approval. Once funds are approved, procurements department buys the laptop and hands it over to the employee. Here we see a (simplified) business process for procurements. As mentioned above, this process has tasks such as "Fill procurements form", "Get manager approval", "Get quotations", etc. The process also has interrelations among tasks such as "Fill procurements form" precedes "Get manager approval", "Get quotations" precedes "Get funds", etc.
A typical organization can have a large number of business processes for achieving various business goals such as handling sales orders, processing employee leave applications, recruiting new employees, launching new products, etc. To complicate this further, each of these processes may have multiple subprocesses. For example, the process of recruiting new employees may contain subprocesses for scheduling interviews, preparing employment offers and provisioning IT services for new employees.
So what is the purpose of modelling these processes? Although we like it or not, there are many processes in any organization. Further, these processes exists to fulfill business goals at various levels. Therefore, if we want to know how we are going to achieve our business goals we have to know on our processes. This is why we need business process modelling. By modelling business processes using a suitable notation, we can easily understand details of a process such as what are involved tasks, how certain tasks depend on other tasks and who are responsible for performing different tasks. In addition, if we use a standard notation for modelling, those process models can be used to communicate with process stakeholders. For example, once business analysts prepare a process model, they can hand over the model to the division head for approval. Then the same model can be used by process participants to understand tasks to be performed at different stages of the process. Wait.. what if the same model can be executed in a Business Process Server (BPS)? This is where BPMN comes in..
BPMN provides a rich notation for modelling business processes while trying to be simple enough to be understood by business users. At the same time, BPMN is an executable language, which means it can be executed in process servers in order to automate business processes. As an illustration, below is a BPMN model of the laptop procurement process we discussed above:
A business analyst working with process stakeholders can drag and drop BPMN elements and connect them as necessary to draw up such BPMN model. This model can be used understand and analyze the process. For example, it is clear that the current model has no action to take if the management approval cannot be obtained or if no quotations could be obtained for the given laptop. Once we visualize the process using BPMN, such points become more visible and allows us to introduce to possible improvements. If the staff of the organization has some minimal BPMN knowledge, this model can be used to communicate the process. For example, an employee working in the procurements departments understands that quotations have to be obtained before submitting for funds approval. Such benefits of clearly understanding and communicating business processes become more prominent when processes contain large number of tasks with complex interrelations and hierarchies of subprocesses.
Then comes the best part... If we add little more details to this process, it can be executed directly on a process server such as WSO2 BPS. That is, we can get the procurement process automated. Once automated, an employee who needs to get a new laptop just have to trigger the procurement process. Then BPS will assign relevant tasks to appropriate users and coordinate the flow of tasks according to the BPMN model. In this way, users just have to work on tasks assigned to them while BPS performs all coordinations among users, other processes and external systems.
As we have discussed, BPMN is a great tool for capturing real business processes and automating them. Therefore, the support for BPMN in WSO2 BPS allows BPS users to move towards business friendly process automation.