If you’re like me, you’ve seen the movie Ghostbusters at least a dozen times. Remember when the Ghostbusters confronted an evil demon made incarnate? The demon asks “Are you a god?” Dan Aykroyd answers, “No”, and the demon attacks – prompting Ernie Hudson to scream, “When someone asks you if you are a god, YOU SAY YES!”
Deploying an enterprise app can feel like this. Will your application scale to godly proportions? Of course, answering that question without adequate testing can be disastrous—just ask Kathleen Sebelius.
Everyone knows to test for volume: the number of users, transactions, and things processed. But that is only part of the story. Delivering scalable enterprise applications—especially those built on BPM platforms—means achieving three dimensions of scalability: Physical Scale, Organization Scale and Customer Scale.
Physical scalability means handling the load placed on the application—via users, service calls, etc.—without failing, degrading performance or requiring inordinate amounts of hardware.
BPM implementations that use an interpreter to execute business functions (processes, rules, UI, etc) often have surprisingly poor physical scalability. These BPM products are really interpreters (BPM engines) running inside interpreters (Java Virtual Machines), and they require lots of hardware resources. This is why BPM implementations that generate compiled code are so much more scalable and efficient.
Organizational scale grows with the number of customer segments, departments, regions or product lines under management. The more organizational scale you have, the harder it is to standardize and get economies of scale.
Most BPM platforms give you two options:
- Railroad the organization with a one-size-fits-all approach. This is a non-starter—although we’ve all seen it tried!
- Clone standard process applications and create many customized versions. This works…for a while. It becomes increasingly hard to coordinate change across all of these customized applications.
Organizationally scalable BPM allows you to define a layered architecture of policies and procedures, and dynamically determines needs to be executed, depending on the situation at hand. You create and maintain one app that everyone can use. You get standardization and specialization in one.
In the digital world, applications need to manage processes “end-to-end”--from the customer’s point of view. This ability to start with customer goals and work inward is the Customer Scale of your application.
To achieve customer scale, your application must:
- run consistently across all touch points, including mobile and social
- optimize the overall customer experience using predictive analytics and next-best-action
- prevent organizational complexity (silos, legacy applications, etc.) from interfering with customer experience.
Getting the three dimensions of scale right is what distinguishes digital enterprises from merely competent ones. It is about engaging customers while simplifying operations to manage costs. It is about building an enterprise application that can change to make the future needs of your company.
So the next time someone asks you if your app will scale, you can say “YES!”