August 28, 2011 by huionn
When my friends ask me what kind of system I am developing, I answer “Case Management”. Most of the time, they will ask what is case management. Then I will elaborate a bit that it is a mixture of Enterprise Content Management (ECM) and Business Process Management (BPM). If they are confused about ECM, then I will explain that it is sort of like Document Management System or DMS (in fact, DMS is just a subset of ECM which is a complex system). Then they most likely stop asking and I don’t know how to explain further.
Gartner defines case management as:
“Case management is a process implementation style that optimizes long-lived collaborative processes requiring secure coordination of knowledge, content, correspondence and human resources. Cases must also adhere to corporate and regulatory policies and rules to achieve decisions about rights, entitlements or settlements…”
Forrester defines case management as:
“A highly structured, but also collaborative, dynamic, and information-intensive process that is driven by outside events and requires incremental and progressive responses from the business domain handling the case. Examples of case folders includes patient records, a lawsuit, an insurance claim, or a contract, and the case folder would include all the documents, data, collaboration, artifacts, policies, rules, analytics, and other information needed to process and manage the case.”
I doubt these explanations make any sense to them : )
So I decide to write about a fictional use case of case management based on my experience in software development lifecycle. It is important to note that in a case management system (CMS), the sub-processes mentioned below can be repeated for a few times (in loops) before complete, and may progress in parallel (fork/join) or serial.
A user raises a new change request (CR) to the CMS. A case of type CR is created. A task of case is automatically created and assigned to a analyst (determined by the module) to collect the user requirements. Then, the user requirements documents are uploaded to CMS as attachment of task (case items). All documents are versioned in CMS. Upon completion, the case is routed to management to decide whether approve or reject the CR after reviewing the attached documents.
If the CR is accepted, the case is routed to development team. Under the case, a task of development/enhancement will be manually created with reference to user requirement study. If there are doubts in requirements, the developer, analyst and end user can communicate through emails, and the correspondence management of CMS will automatically retrieves, indexes and stores all communications under the case (as case items). New sub-tasks and ad hoc sub processes may be created during the development.
When the development is done, the case is routed to QA for testing. Relevant case documents are accessible for reference. Issues or bugs may be raised by QA with priority and severity. A task will be created for each issue/bug and assigned to the developer.
When it is ready for release, all release scripts and installation document have been included in the release document in CMS, filed under the same case. All release scripts can be compiled from CMS with ease to minimize human error. In addition, historical release scripts can be retrieved from CMS for accumulative release.
In case an issue or bug is discovered in production environment, the user can raise a new issue/bug case with link to above case. A task is automatically created and the helpdesk will be notified. Based on the severity and SLA, the case may be escalated to 2nd level support and then 3rd level support if it is not resolved within certain period. Helpdesk and support can search from knowledge base of CMS for similar cases. In addition, ad hoc task can be dynamically created and assigned to on-site helpdesk to perform additional troubleshooting/testing. The results will be updated to CMS as part of knowledge base for future reference.
CMS also provides client application for smart phones. Service engineers and other mobile workers can receive and access the information on the go.
CMS can be integrated with business analytics to perform reporting on SLA, KPI and performance.
Although the scenario above seems straightforward, there are many challenges in implementation. The cases in CMS consists of structured (workflows, web forms) and unstructured (emails, word documents) information. Different types of case items (email, document, etc) have different schemas and metadata. The relationship between cases/sub-cases, processes/sub-processes and tasks/sub-tasks can be hierarchical and complicated. Ad hoc process and task are challenging to implement in conventional BPM (which only supports predefined workflow). As CMS is cross departmental, role-based user access right in cases need to be fine grained.