One of my most long-playing projects is integration of the Camunda engine to corporate infrastructure. It is a promising technology to raise business processes to a new level. Most problems in the enterprise domain arise on information transition between employees. Some tasks could be done by one person and wait in the task list of another for a few days or even weeks before the second person will have time to work it out. Such inefficientness lengthens the process overall. If tasks could be done immediately things would run much faster.
I read a story about one management case in IBM. There was a department that took customers’ complaints and resolved them in a conveyor maner. The first employee took a task, processed his part of the work and sent it to another which acted the same way while all work was done. After each step, the task just waits in the incoming box when it will be taken by the next person in the chain. Processing a single complaint could take several weeks and it was very annoying for customers. The decision was to process all complaints by one person from beginning to the end. After that change, processing time of one task magically decreases from several weeks to several hours just because of eliminating the time gaps on transferring between employees.
Camunda is a smart task engine that works with BPMN diagrams and could track execution of processes. There are wonderful tools for controlling execution flow of the tasks between multiple participants:
- Gates that could decide in which direction execution will come
- System tasks that could make background calculations
- Subprocesses that helps decompose complex tasks into a number of simple steps
Other words, Camunda is the ideal tool for task orchestration in big enterprise companies. Of course this manner of task execution only fits for already stable processes such as manufacture or customer support. It could seem that it is a step to taylorism but it is not. Camunda gives enough flexibility to change processes to adaptate them to reality. It is just a convenient tool for keeping information of some process in one place.