16 Candidate Reusable Capabilities for Business Processes

Here area set of ideas, candidate  assets if you will, of reusable software capabilities for your business processes. Please don’t take these as capabilities you have to build from scratch. Instead, view them as part of your overall BPM software infrastructure. Most of these capabilities could be provided by a single vendor or using an abstraction layer, you can realize these using multiple ones. You can also prioritize this list when evaluating vendor offerings.

  1. Rule driven Exception Handler: Integrate exception handling with business rules engine. The rules could  determine how to resolve, mitigate, and handle errors. It will also specify routing instructions for errors requiring human intervention.
  2. Internationalization Support: Status messages driven by a resource bundle as opposed to a single locale. Additional locale-specific resource bundles can be added as required for your business needs.
  3. Seamless Cross Channel Movement: Enable a business process to start in one sales channel and get completed in another. Idea is to support business processes that start, pause, and get reactivated via an alternate channel. For example, a user can start ordering a book online and request a customer service rep to finish the process. The idea is to have the user’s in-progress process instance data get placed in appropriate work queues in a new business process or in a new state on the original one .
  4. Business Process Completion API: Ability to determine % complete for any business process based on the state of the process instance . This API can provide the ability to get current status, estimate completion time (e.g. based on historical data), and what steps are remaining for the process instance to finish.
  5. Business Activity Hold & Retry API: Facilitate pause, resume, and delegation of any business activity based on business rules. This interface would put processing on hold as well for one or more process instances.
  6. Authentication: Enabling integration with a LDAP store, or providing digital certificate based security for interfaces that instantiate the business process are examples here.
  7. Entitlements  API: Enable fine grained authorizations for business activities and business processes. Role based entitlements for events – i.e. if a particular user role cannot initiate a business process or execute a particular activity, the software  infrastructure should prevent those actions.
  8. Content Management integration: Integrate with content management system to serve targeted content based on state of business process or to augment data in a process instance.
  9. Event Integration API: Capture or derive events and handle them using one or more business processes. This could also impact existing process instances that are in-flight.
  10. Indexed Search Integration API: Ability to execute full-text search as well as categorized search using an indexed search engine against completed and in-progress business process instances. E.g. search all process instances from a particular division or with a particular customer code, or category etc.
  11. Process Dashboarding: Provide key business process metrics – report real time status of availability, performance, usage statistics, escalations, etc. Also provide ability to override/adjust in-flight process instances based on business scenarios.
  12. Business Process Preferences API: Manage a set of process-level preferences. E.g. default logging level for all tasks could be set to high or all notifications get delivered to additional recipients, or data fixes will get audited a different way etc.
  13. Document Integration: Attach documents using information in a process instance and attach/route content as part of the business process orchestration.
  14. SLA Adherence API: Manage service level agreement specifications associated with end to end business process as well as key business activities. Ability to define/handle, and proactively prevent SLA violations.
  15. KPI Definition and Monitoring API: Monitor business processes to capture key process indicators based on business process. E.g. number of accounts opened today, number of accounts opened after multiple validation errors etc.

Like this post? Subscribe to RSS feed or get blog updates via email.

tweet this add to del.icio.us post to facebook

Advertisements

2 Responses to 16 Candidate Reusable Capabilities for Business Processes

  1. Frik Briers says:

    This is a very good framework for a BPMS.

  2. Gean Boegman says:

    All of the points above (except the extended part of point 3) is implemented into the API of a product we have developed (www.OvaFlo.net). We then also build an extensive Web UI onto this API. From my experience I can add the following comments to your sound list:

    1) These abstractions are in our opinion the only option for BPM at this stage, this is most probably due to long time to maturity for BPM as documented at Gartner. Any direct development into BPMS provider API’s will result in tight vendor lock-in. On the down-side I guess the abstraction layer can become another ‘vendor’ that can lock you in…
    2) Due to the features added (SLA’s, KPI’s, entitlement, Hold, Escalation, Filters, Searching, or a simple add-comment etc.) features do not need to be modelled or developed in the BP engine. This almost always results in simplified modelling, much reduced development and as a result faster turnaround times.
    3) Most workflow engines does not cater for items that reached end-of-process, but in most cases business want to have this view.
    4) This leads me to the next point, this solution leads to a much richer experience for the users, these users typically go though tough re-skilling, so you really want them to be enabled and productive as quickly as possible (get them to focus on the business rather than complaining about IT :-)).
    5) Another benefit is that since there is a reliable set of features, it is possible to create procedures and methods, this relates to BA’s starting to know what they have and don’t have (another aspect of the product we have – decent analysis templates).
    6) It is imperative that you don’t implement (duplicate) features that are available in the engines, and that you stick to the best-practice integration methods, you should not integrate directly on a DB layer if that is not supported.
    7) Your design need to cater for future features in BP and CM engines, features not available today, might be available in the next release.
    8) When this integration layer interacts with Enterprise systems (Rules engines, Legacy, Security, IN/Out Channels), make sure you spend the time to ensure these are loosely coupled.
    9) Make sure you have a decent pricing model, you are creating a re-usable re-source, you don’t want the first guy to pay for all the infrastructure, and you need to make sure the infrastructure can scale.
    10) BAM and Reporting should not be left for last, add it to this abstraction framework ASAP; SLA’s, KPI’s are the bread-and-butter of the users when going BPM.
    11) Don’t underestimate the development effort for a decent UI.
    12) This abstraction layer tends to get blamed for any down-time. So make sure you have decent monitoring and logging, and as we seen, make sure you support channels are in place to ensure they can get to the real cause of a failure.

    These are but a few of the things I’ve learned when using our product, and I’m sure in a year I could add another dozen points.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: