Camunda Optimize

The Ultimate Guide to Solving Bottlenecks with Camunda: Part 2

Welcome back to this two-part guide on bottleneck analysis with Camunda Optimize.

In Part 1, we went over the Theory of Constraints and how bottlenecks might appear in your processes. Then, we went into a deep dive on how to use Camunda Optimize to find your bottleneck and isolate its root cause.

You know the problem. Now, it’s time to solve it.

Part 2 of this guide will explain how to solve your bottleneck and provide proof to your team that you fixed it.

Step 2: Exploit the Constraint

Armed with the root cause of your bottleneck and the visualizations as evidence, you can sit down with the business and technical experts to figure out a solution. You can “exploit the constraint” by using existing resources to improve performance.

Improve efficiency

Typical process improvement efforts focus on improving efficiency and eliminating waste.

This step involves zooming in on the particular process step, figuring out the best way to accomplish it and then standardizing this best practice. You can model the best way to complete a specific process in Camunda by creating a subprocess. Subprocesses can represent additional detail for critical steps. In addition, Optimize will have duration data for each step in the subprocess, providing fine-grained performance data.

During a brainstorming session, business experts should be able to propose a set of changes that might include:

  • Providing detailed instructions with the tasks
  • Training all workers on how to accomplish tasks at the bottleneck
  • Setting performance standards

These incremental changes should result in increased efficiency and throughput at the bottleneck. Once you’ve chosen the solution, it’s time for implementation and monitoring.

Monitor progress

While reviewing whether these changes cause their desired effects, you might not see them solved immediately. Instead, you’ll want to be able to track improvements and know when to intervene to keep the process running.

Your primary tool will be a user task duration report on the bottleneck. This report shows user task duration over time with a flow node data filter to only show data from your bottleneck. A downward trend means your process changes are working.

 task duration report with downward trend
user task duration report

Another way to quickly identify issues is by setting a target value. For example, when viewing a user task heatmap, you can quickly see where the average duration on a flow node is above your target. Then, Optimize compares the actual data (e.g., average work duration) against the target and lights up the heatmap based on how big the percentage difference is.

user task heatmap

In addition, consider creating a report with the number of unassigned tasks at the bottleneck and creating alerts when the number is too high or too low. Both scenarios are problematic. If the number is too high, the bottleneck is preventing the flow of work. If it’s too low, the bottleneck is unproductive, and you should provide work to the bottleneck in smaller batches. 

Step 3: Subordinate Everything to the Constraint

If the local changes to the bottleneck don’t have the desired effects, it’s time to think broader. There’s a good chance some of the work done in this bottleneck can be automated, done at another step or removed entirely.

Holistic process improvement

Subordinating everything to the constraint requires a holistic understanding of the process. Business and technical experts should gather around the process diagram to identify ways to shift work to improve process performance. Some solutions that might come out of this discussion could be:

  • Provide an uninterrupted list of actionable tasks in Tasklist or an equivalent format
  • Use a DMN table to send simple tasks to an automated workflow step, reserving your team’s expertise for more challenging tasks
  • Move data collection earlier in the workflow
  • Perform quality control earlier in the workflow

Preventing bottlenecks 

In addition to identifying an existing bottleneck, business users can use Optimize to identify when bottlenecks are likely to happen.

Smooth-running processes have uninterrupted flow and low amounts of work in progress (WIP) outside of the bottleneck. On the other hand, chaotic processes with large batches will make forecasting problems or tracking improvements difficult.

Consider creating reports and alerts to track WIP in front of the bottleneck. Accumulating work before the bottleneck can lead to it receiving a large batch of work and slowly processing it.

Let’s go to our hiring demo example. If the first round interview is the known bottleneck, then the number of process instances in progress is a concern but the bottleneck hasn’t been reached. This report shows all applicants up to just after the phone interview.

process instance count
flow node filter

Step 4: Elevate the Constraint

If you’ve identified your bottleneck, improved bottleneck performance, ensured smooth flow into the bottleneck, and work is still piling up at the bottleneck, then it’s time to add more resources.

You probably need to hire more staff. Thankfully, in Optimize you can find the data you need to make an educated decision with the correct reports. There are a few ways to forecast capacity.

Historical capacity

Looking at a breakdown of completed user task count by assignee and user task in September 2019, you can see approximately how many user tasks an average worker completes during a period. This can be extrapolated to see what additional headcount would provide. Of course, it may take some time for the new workers to reach maximum capacity, so keep that in mind when estimating productivity.

stacked bar chart

Theoretical capacity

You can also use task duration to calculate the theoretical capacity of your team. View the average user task work duration grouped by user tasks in a line chart, and you have a baseline for how long it takes to perform a task. 

Calculating theoretical capacity is risky, though. It assumes that workers complete tasks in a sequence. For example, a worker completed task 1, then task 2 and then task 3. In addition, it assumes there are few outliers. The example below shows outliers causing a high average time and low median time.

user task line graph

Unlimited capacity

Of course, this wouldn’t be a Camunda blog post without a shameless plug for process automation. A sustainable long-term solution wouldn’t be to increase the staffing of a bottleneck but to find a way to automate enough of the work that it’s no longer a bottleneck. 

Human workers have creativity, judgment and other soft skills that robots, explicitly programmed software or machine learning can’t replicate efficiently. Near the end of an automation journey, human workers shouldn’t have to do the same task twice.

Find a creative way to accomplish that. After all, you are a human. 

Step 5: Preventing Inertia from Being the Problem

In summary, we’ve used a new dashboard template to visualize how work flows through the system, highlighting your bottleneck. Armed with that information, you’ve sliced and diced the data to identify the root cause and set up quality control on that step. Now, you will receive an alert whenever that issue appears again.

You’ve resolved your problem! So now you don’t have a bottleneck, right? Nope.

You’ve shifted it somewhere else. Simply repeat this process until your process is performing as desired. Keep reviewing and updating the dashboards, and reports you created to track progress over time.


If you’ve applied these instructions, your efforts should’ve improved the entire system’s quality by shifting or optimizing your bottleneck. As a result, you should enjoy overall improved throughput, predictability and shorter wait times for customers.

Happy automating! To learn more about the Theory of Constraints, check out these resources:

Getting Started

Getting started on Camunda is easy thanks to our robust documentation and tutorials