Archive for January, 2007
A recent client, Santa Clara County, asks that I post on the issuance of their RFP for a BPMS to handle the assessor department processes. A bit unusual, but why not. It’s a nice project, a variety of human-centric processes with a bit of custom integration (Vignette, TurboImage database). Interested vendors should look for RFP#605 from www.rfpdepot.com.
January 31st, 2007
It seems the smartest guys in the room, BPM-wise, have suddenly discovered content management. Or, more accurately, have begun to imagine what an intersection between the two might possibly look like… as if that were almost possible. Ismael tosses out three candidates: 1. Manage the lifecycle of content objects in CM, and just store the links to them in the process instance. (Memo to FileNet. Hmmm, might work, maybe try this…) 2. Use the CM repository as source control system for BPM developers (Memo to engineering… Oh, never mind.) 3. Embed a subset of BPM inside CM to do document approval workflows (is there a CM product anywhere that doesn’t do this natively?)
webMethods’ always-entertaining Kiran Garimella, ebizQ’s latest BPM blogger, adds:
If BPM takes on management of process knowledge, as I think it should, what’s left for ECM? Will ECM morph into the middleware for management of transactional documents? After all, it seems pretty evident by now that we will never be a paperless society. Besides, a lot of enterprise content will be on PostIt notes (to the utter delight of 3M)…
What these guys forget is that life on earth did not begin yesterday, and business is not driven by XML messages alone. Any bank, brokerage, insurance company, utility, or healthcare provider today has a lot more IT investment tied up in ECM repositories than in BPM. And the lifetime of those content objects is far longer than that of the workflows that put them there. Ismael’s hypothesis #1 is of course a huge business already for FileNet (now IBM), EMC, Global 360, and others… and has been for well over a decade. Loans, claims, underwriting… Does any BPMS manage those processes for a G2000 customer without using ECM to manage the lifecycle of attachments?
Not to single out Ismael and Kiran, who really are the smartest BPM guys in the room. They’re just examples of the general fact that BPMS vendors (who did not come from the CM space) still don’t get CM: what it is, what its benefits are, and what its intersection with BPM should be. Retention management alone would be a huge step forward for BPM.
I went through this with all those vendors when I did my 2006 BPMS Reports. Several of the use cases in the evaluation had clear requirements for CM integration, but most vendors had nothing to offer. To them, integrating a CM repository was no different than integrating any other “legacy app.” Note: They tried the same gambit with business rules a couple years ago until Gartner crushed them for it on the MQ. Now they all include business rules in the BPMS, either out of the box, or prebuilt integration with ILOG, FairIsaac, or Corticon.
This is a huge missed opportunity for BPMS vendors, who have basically ceded the content-centric process space to the CM vendors. I have nothing against the new inexpensive bloggy open-source CM offerings, but let’s face it, it’s the CM installed base of FileNet, EMC/Documentum, IBM, G360 that’s - to borrow Willie Sutton’s phrase - “where the money is” in BPM. Introspecting the Java APIs is not enough. Native viewers, content events, team collaboration… This list of integration features goes on. All these vendors support SAP adapters, when a simple Java adapter might “do.” I think they would get as big a bang out of a few ECM adapters. (Memo to Sinur and Hill: Maybe put this in the next MQ criteria?)
January 30th, 2007
I recently received an email from Danny Greefhorst of the Netherlands, who says in relation to my 2006 BPMS Report series: “your definition of case management seems to be very document-centric and to be quite different from interpretations I have seen in other places.” He attaches a couple articles, also of Dutch origin. The note was timely, as I’m in the process of putting together my 2007 report, and item #1 on the list is revising my list of process use cases and their scoring criteria.
Here is how case management is described in the overview volume of my 2006 report:
Case management is another special type of process that only some BPMS support well. Its key artifact is an electronic folder of case documents, which are added while the case process is running. The classic example is mortgage origination, but examples include other types of underwriting for insurance and loans, financial advisory processes, and many types of benefits adjudication. What makes case management different is that the number and identities of documents may not be known at design time, and each document may have its own workflow (create, review, approve) in addition to the overall case process. Many case management processes involve complex business rules and require integration of a business rule engine.
Look for:
- Electronic case folder of independent work objects
- Ability to add case objects and flows at runtime
- Content management integration
I agree that is a bit narrowly drawn, and also hard to distinguish from other process types, notably content-centric and collaborative. So what exactly is the essence of case management, or case handling, as it is sometimes called? One paper from Wil van der Aalst, a BPM academic from Eindhoven University of Technology, describes case management as something not handled particularly well by traditional workflow or BPM systems.
- In case management, a process task (”atomic” from BPM perspective, performed by single individual, a single “state” from the process perspective) may contain various subtasks (van der Aalst calls them “activities”, but that term has a different meaning in BPMN) — all done by the task performer, but not necessarily in a prescribed order, and depending on the context, perhaps not all need to be done. The BPM process engine controls the flow of tasks, but not the internal subtasks.
- Also, in case management, the task performer should be empowered to do what is necessary to handle the case, which may be more than is allowed by traditional process design. Traditional BPM gives each task just enough information to perform the functions envisioned by the process designer. To make a long story short, case management should allow task performers to add data objects to the instance at runtime, even if such data elements were not specified in the process model.
In reconciling this view to my 2006 report, clearly the biggest difference is my use of the term “documents” vs van der Aalst’s more general term “data objects” — which obviously could represent document attachments. He doesn’t mention the idea of an electronic case folder, but obviously some general container for case data — both that defined by the process model and that added ad-hoc by task performers — is implicit. My use case needs to clarify that the entire case folder is routed by the process engine to task performers, and links the participant to all case data and documents, not just that required to perform the assigned task. The content-centric features will be removed from this use case and moved to the content-centric use case. The report will remind users that the use cases are not mutually exclusive, and a process that fits into more than one may need a solution that encompasses the features required by both.
January 29th, 2007
If you’ve heard about BAM but aren’t exactly sure what it is, tune into my webcast on Thursday January 11 at 10am PT/1pm ET. The registration link is here. The sponsor is EMC, and after my (vendor-neutral) introduction to the benefits of BAM and how it works, EMC will demo its ProActivity BAM now integrated with the EMC Documentum Process Suite.
January 5th, 2007
The previous discussion leads naturally into simulation use case 3, which deals with Activity Based Costing. A number of users have asked me if simulation provided activity based costing, and I always said yes, since I assumed it could. But it’s not built into the tools at all. This turned out to be a really interesting part of the training to develop. All completely original, since the modeling tool vendors don’t really talk about it (or at least correctly), and the ABC literature doesn’t mention simulation, either.
Activity Based Costing is not just determining the cost of each process activity from its active labor costs, or even its total direct costs. Yes you get that directly from the simulation model, as in use case 2. ABC is about allocating the indirect costs, both labor - management/supervisory, plus ancillary functions - and fixed overhead, like plant and equipment. You can’t get that from the simulation model!
Or can you?
Turns out you really can, by making some simplifying assumptions. Robert Kaplan of Harvard Business School, one of the original inventors of ABC back in the 1980s (and also known for Balanced Scorecard), came up with a streamlined form of ABC a couple years ago called Time-Driven ABC. The original ABC used management interviews to allocate the indirect costs., but too hard, it turns out, to scale that to the enterprise and maintain over time. So time-driven ABC makes it simpler.
Time-driven ABC says just allocate the indirect costs by the relative fraction of active labor time for each activity, and you can get that directly from the simulation model. In the training we used simulation and time-driven ABC to provide the “true” cost of various types of work, i.e. types of process instances running through the same top-level process… even though each type of work — which could represent, for instance, a different product or service provided by the organization — typically follows a different path through the common end-to-end process. ( A common process is needed in Process Modeler to allow for resource contention across types of work.)
Time-driven ABC calculates what it calls the activity cost driver rate as the unit cost x the unit time for each activity (or type of work). The idea is that the organization as a whole invests its assets to create capacity to produce. That capacity is measured in man-hrs (e.g. per year or per quarter). The organization’s total costs (direct + indirect) to produce a set of products and services, measured in dollars per year (or quarter), divided by the total effective capacity per year (or quarter), gives the unit cost, in dollars per man-hr of effective capacity. The “effective” part is an 80% fudge factor that says that’s the highest utilization rate you can really get. So for a FTE working 2000 hrs a year, the effective capacity is 1600 man-hrs/year. The organization’s effective capacity is N x 1600 man-hr/year, if N FTEs are deployed to do the work.
The unit cost for the organization as a whole is modeled as the organization’s total cost (direct + indirect) divided by effective capacity, measured in dollars per man-hr.
All of the activity-specific (or work type-specific) breakdown is in the unit time, which represents the man-hrs of capacity required to produce one unit of work (one instance, in our model). That comes from the active time to perform each activity (or process instance for a particular type of work). This method allocates the indirect costs, as well as the direct costs, to specific activities or classes of work. But when you multiply the unit cost x the unit time x the number of instances of each type produced, you get less than the total cost. In Kaplan’s terms, what that gives you is the cost of the used capacity; what’s left over is unused capacity. Meaning, you could get more work out of the available resources. Let’s not debate the economic meaning of all this. The point is that these numbers can be easily calculated from the simulation model, assuming you know (on an annual or quarterly basis) your total indirect costs to be allocated.
From a simulation standpoint, it turned out that the key thing to have was the simulation instance data, down to the activity instance level. Using Excel array formulas, I could then separate the different types of work. After that, the time-driven ABC is a simple formula. Really cool! For some of it I could have used more than Excel’s 65,000 rows per sheet, but there is a way to direct the simulation output to Access or SQL Server if you have lots of data. Some day I think I’ll write this up in a more understandable way. Maybe work with ITP-Commerce to make it out-of-the-box!
January 5th, 2007
Continuing my recent post re simulation analysis and BPMN… (Since then I’ve finished my BPMN training materials, including simulation analysis, and it’s now in beta… almost ready to go! Also since that post, the histogram of costs and times is now out of the box. I told ITP Commerce how I did it and they put that in the standard simulation output. How’s that for customer service!)
Use case 2. Here the problem is usually framed in terms of “bottlenecks.” I’m not sure how typical that situation is in real life. Usually static analysis gives you a rough idea of the staffing requirement even without simulation. For example, if over the workday you create 100 instances an hour, and Task A takes 1 hour, you need “around” 100 people to perform Task A to keep up. But what if instead of creating 100 instances an hour, you are getting 800 instances overnight and your resource for Task A also is responsible for Task B? Then simulation gives answers you can’t get from static analysis.
But it turns out simulation gives surprising results even in the case where static analysis says you have enough to do the job. For example, in preparing use case 2 scenarios for my BPMN training, for a given instance creation volume I would vary staffing counts in a set of scenarios. But when the resource utilization rate - the ratio of active time on tasks to the resource’s total avalable time - got up to around 80%, the process could not keep up with the instance creation rate. I had heard anecdotally that 80% was some kind of rough maximum for real utilization rate, but I didn’t think it would show up so dramatically in the simulation analysis.
I think in the past I commented on those “smart” analysis tools in BPM that give you hints like - big backlog at activity XYZ, try adding resources. Well duh! It doesn’t take a genius to know that if you add resources to an activity you’re going to reduce the backlog. But at what cost? Use case 2 is really about the tradeoff between cycle time, resource utilization rate, and total cost.
And here is where the “standard” costing reports out of my simulation tool were not the most helpful out of the box… although they provided the data I needed in my custom reporting Excel template. That’s because the cost you want is NOT the resource’s active time x the resource cost per hour, but the resource’s total available time x the resource cost per hour. As you add resources, the total active time for N+1 resources is the same as for N resources, so the cost measured the standard way doesn’t change. But try telling the hiring manager the cost won’t change by adding that N+1st guy. So I had to make custom costing reports, but it was easy. The total cost for a resource is basically the active labor cost divided by the utilization rate, which is provided in the tool.
January 5th, 2007