The BPM Elevator Speech
A few years ago I posted a short blog entry "The SOA Elevator Speech" to try to distill SOA into talking points that you might be able to cover on one elevator ride. With that posting in mind, here's my attempt at explaining BPM as concisely as I can...
- BPM stands for "Business Process Management". You will find some folks who say that the "M" stands for Modelling, and a few others who say that the "M" stands for Monitoring. In my opinion it really stands for all three so we might as well call it BPM3.
- BPM systems deal with processes that include both tasks that Humans perform and Automated tasks.
- BPM systems execute Process Definitions. Process Definitions are usually derived from Process Diagrams... for example a BPEL (for people) Process Definition can be derived from a BPMN Process Diagram. There are many different graphical process notations and process definition languages, but the goals are generally the same.
- BPM systems provide a Process Centric view of the code base. Rather than focusing on object hierarchies, the focus is on the relationship of the components in the context of a specific business process. This feature comes in particularly useful when debugging a process as well as when the need arises to modify a process.
- BPM tools generally have a Business Relevant focus rather than a Programmer Relevant focus. For example, a typical programming suite might include a profiler for analysing the execution efficiency of code... a BPM suite is more likely to include a profiler for analysing the efficiency of a process (based on historical or simulated metrics).
- The goal of a BPM system is to enable Continuous Process Improvement. Analysis of existing process behavior combined with simulation of potential process enhancements can be used to identify and improve the business process.
- BPM benefits from SOA, but Process Tasks are not necessarilly reusable services. Many tasks in a Business Process are not reusable in other processes, and many SOA services do not correspond to Process Tasks.
That's already too much material to cover on one elevator ride... I'd better give it a rest for now or you're likely to take the stairs the next time you see me on an elevator :-)
(cross-posted at Thoughtful Programmer)