Best practices frameworks are often produced by organizations to provide guidelines for performing various processes in various domains. Examples of domains include information technology management, software development, and so forth. Best practices frameworks are often described at a relatively high level, and often are in the form of documents (paper document and/or electronic documents) that provide the definitions of the best practices frameworks.
Some embodiments are described with respect to the following figures:
A best practices framework is a collection of established and documented techniques, processes, activities, and/or systems that are proven and more effective at delivering a target outcome than other techniques, processes, activities, and/or systems. Information relating to a best practices framework is often developed based on prior executions of tasks, with the information relating to the best practices framework developed over time based on repeated performances of the tasks. Best practices frameworks can be employed in various domains, including quality assurance, software development, information technology (IT) management, governance, risk management, or other domains.
Some examples of best practices frameworks are noted below. A Six Sigma framework (e.g., as described in Thomas Pyzdek, “The Six Sigma Handbook: A Complete Guide for Green Belts, Black Belts, and Managers at All Levels,” McGraw-Hill, 2001) or an ISO (International Organization for Standardization) 9000 framework (e.g., as described in R. W. Peach, “The ISO 9000 Handbook,” McGraw-Hill, 2003) is used for quality assurance. A balance score card framework (e.g., as described in Maris Martinsons et al., “The balanced scorecard: a foundation for the strategic management of information systems,” Decision Support Systems, pp 71-88, February 1999) is a framework for performance management using business metrics for decision making. Enterprise Architecture frameworks (e.g., as described in The Open Group, “The Open Group Architecture Framework (TOGAF),” http://www.opengroup.org/togaf/, or in ZIFA, “The Zachman Framework for Enterprise Architecture,” www.zifa.com) aim to link business functions to information technology (IT). A COBIT (Control Objectives for Information and Related Technology) framework (e.g., as described in ISACA, “The Control Objectives for Information and related Technology (COBIT),” www.isaca.org/cobit) is a best practices framework for IT governance. An IT Infrastructure Library (ITIL) framework (e.g., as described in Information Technology Infrastructure Library (ITIL), Version 3, 5, Volumes, http://www.itil-officialsite.com), eTOM (Enhanced Telecom Operations Map) framework (e.g., as described in TeleManagement Forum, “Enhanced Telecom Operations Map (eTOM)—The Business Process Framework,” http://www.tmforum.org/BestPracticesStandards/BusinessProcessFramework/1647/Home.html), or an ISO/IEC (International Organization for Standardization/International Electrotechnical Commission) 20000 (e.g., as described in Jenny Dugmore, “Achieving ISO/IEC 20000—The Differences Between BS 15000 and ISO/IEC 20000,” BSI Standards. ISBN 0580473481, 2006) is a best practices framework for IT service management.
Many best practices frameworks refer to processes as the main abstraction to define scoped work and how this work should be performed. However, since frameworks describe processes at a rather high level, the term “process” in these frameworks often refers to the scope of work (the “what”) rather than how this work is organized and performed. The latter has to be arranged by the organization that uses the framework causing ambiguity.
A common feature of best practices frameworks is that they summarize a large amount of experience gathered and refined over some period of time by domain experts, who define and describe the organization, structure and context of how work should be organized among people in a particular domain.
To improve organizational efficiency and repeatability of work in an enterprise (e.g., a company, an educational organization, a government agency, and so forth), it is desirable that best practices frameworks be followed by workers in their daily work. However, interactions between such workers are facilitated through conversations, collaboration and ad-hoc decision making. Traditional control-flow oriented process specifications are not appropriate to implement processes identified in best practices frameworks, especially in domains where high-skilled professionals work in contexts involving creativity and flexibility. Business processes, in their traditional definition, are rigid, and are not flexible and may not offer adequate support. Traditional processes do not adequately support interactions among people that are spontaneous, unforeseen and may not be followed in a strict order.
To bridge the gap between high level abstractions available in best practices frameworks and specific actions to be taken by individuals or organizations, to derive actionable tasks that can be automated, and/or to retain the flexibility of ad-hoc interactions among people while improving repeatability, a best practices support system according to some embodiments is provided.
In some implementations, the best practices support system supports process definitions from best practices frameworks in the form of templates that guide the overall organization of work. A template is a semi-structured construct, representing a best practices process, defined using a set of concepts and relationships taken from the best practices framework.
In some implementations, the best practices support system uses various concepts to model processes in a best practices framework. In addition, the best practices support system can support the creation of new templates using the concepts and can permit dynamic adjustments to existing templates.
In some implementations, the best practices support system provides workspaces through which conversations between individuals are mediated between people (or organizations) working together in the context of a business practices process. Workspaces are also used to share electronic work material such as documents.
The best practices support system can drive the interactions among people based on the templates, and can enable extension of the templates as part of normal interactions as workers carry out their tasks.
With the best practices support system, actionable tasks can be identified in best practices frameworks. Templates can be annotated with semantic information allowing them to be interpreted by the system, which can then be used for triggering actionable tasks. The triggered actionable tasks can be assigned to individuals (or organizations) to be performed by the individuals/organizations. In some implementations, the best practices support system uses an event-based mechanism to track the definition of tasks as well as their state of execution (progress). This enables flexible execution of activities that do not have to be in a fixed order.
Once the machine-readable template is formed, the best practices support system interprets (at 106) a portion of the template (where “portion” can refer to a subset less than the entirety of the template or to the entirety of the template) to link the portion of the template with logic that corresponds to an action that is to be taken by an individual, or group of individuals, or an organization in relation to the best practices framework. In some implementations, the logic can be in the form of executable code. In this manner, an automated mechanism is provided to define actions that are to be taken in response to corresponding trigger conditions for a best practices framework.
Execution of the logic (that has been linked to the interpreted portion of the template) is triggered (at 108) to perform the action in response to occurrence of a respective trigger condition. According to the foregoing, the best practices support system is able to make processes of a best practices framework actionable, where the processes are dynamic, ad-hoc, and not well-structured. A process is “ad-hoc” if it is possible that the process will be performed in a different way or tasks may be performed in a different order depending upon the project and the people involved. An “ad-hoc” process evolves over time as people perform tasks and, while doing this, create new tasks, based on which the overall process progresses.
As a result of performance of various actions, the template can be updated (as represented by feedback loop 110). Tasks 106 and 108 can then be repeated based on the updated template.
In some examples, a best practices framework can define IT services that are to be provided by an external service provider (external to a particular enterprise). Such an external service provider is considered an outsourcing service provider that is contracted to provide IT services on behalf of the enterprise. Examples of IT services include networking services, email services, or archiving services. Additionally, the services can include business services such as payroll services or accounting services. The best practices framework can thus consider both technical aspects and business aspects relating to provision of IT services by an external service provider. In other examples, the best practices framework can define customer support services.
The following is an example of a fragment of a document that describes a portion of the best practices framework for provision of customer support services. The portion of the best practices framework depicted below is for a customer management process.
In this example, the customer management process includes:
a customer policy
a maintenance of a customer and registration database
customer and registration categorization and risk assessment
customer evaluation and selection
processing of registrations
registration review, renewal and termination
management of customers and customer satisfaction
Implementation of customer service improvement plans
Maintenance of registration
A process description at the abstract level in the example above is relatively general and cannot be implemented directly. Such an abstract process description is first refined and supplemented with more detailed contextual information to arrive at a level of specificity that can actually be implemented to structure and perform work among people. For example, the abstract process description in the example above does not provide detailed guidance on how each of the tasks of the customer management process should be performed.
In accordance with some implementations, the best practices support system is able to enrich the example customer management process above with actionable information, by using a template-based technique as discussed in connection with
The template-based technique provided by the best practices support system according to some implementations introduces formality as well as flexibility by using templates as opposed to informal text that exist in typical best practices frameworks. Templates offer flexibility while providing the structure that is interpretable by the best practices support system. The template-based technique does not attempt to specify the relatively strict syntactical elements that typically are provided by conventional business process frameworks that focus on machine-executable definitions of processes and their steps. Conventional business process frameworks that attempt to implement best practices frameworks define a finite set of syntactical elements that are to be executed by a process execution engine. However, there is usually some level of difficulty in mapping elements of best practices frameworks into such conventional business process frameworks.
The best practices support system according to some implementations acknowledges that process refinement is to be provided. For example, the set of tasks that are to be performed for a particular process may change from project to project. As a result, a template can be refined to add a task, modify a task, or delete a task. Moreover, a template can be continually refined as people interact during a particular process associated with a best practices framework. As examples, refinement may occur when a task is performed and its status is updated in the template, or when a task is assigned by a manager to a person.
Refinement of a template can be accomplished by providing a pattern that is to be applied on the template. The pattern is interpreted by the best practices support system—for example, the pattern may instruct the best practices support system to drive a dialog with a person to capture further information (entered by a user due to prompting by the dialog), where this further information can be added to the template for refining the template.
As noted above, templates can contain various concepts that can be further sub-categorized into sub-concepts. Table 1 illustrates an example that lists various top-level concepts in the first column and corresponding sub-concepts in the second column. Properties of the respective concepts and sub-concepts are listed in the third column, and a fourth column provides some examples of the respective concepts and sub-concepts.
Table 1 above lists a categorization of concepts relating to human activities that are typically found in best practices frameworks. Two examples of the top-level concepts are “thing” and “activity,” which can often be associated with nouns and verbs (or phrases with nouns and verbs) in informal text found in documents associated with best practices frameworks. Other top-level concepts include “context,” “actor,” “role,” and “relationship.” Relationships among concepts lead to graphs, which can be used by the best practices support system as a way of formalizing and representing domain knowledge.
In Table 1, an example of a “thing” includes a customer or a registration. An example of an activity includes “organize a project,” “manage a team,” “prepare a report,” or “provide a dialog.”
General templates regarding a domain can be created centrally by domain experts and then shared with the best practices support system. Such general templates can then be copied later and refined for a particular purpose. As templates are used, they go through a life cycle from general to more refined. As experience is gained within a domain, the refined template can be shared and reused.
Interpretation (206) can then be applied onto the template, similar to task 106 in
For the example description of the customer management process depicted above, the conceptualization (200) of the customer management process description can result in the following output (where the underlined, bolded, and italicized text correspond to concepts that have been identified by the conceptualization of the best practices support system):
The customer management process should include:
a customer policy
a maintenance of a customer and registration database
customer and registration categorization and risk assessment
customer evaluation and selection
processing of registrations
registration review, renewal and termination
management of customers and customer satisfaction
implementation of customer service improvement plans
maintenance of registrations
The concepts identified above (associated with words or phrases that are underlined, bolded, and italicized) can be represented as a knowledge graph, as depicted in
After identifying the concepts, such concepts are mapped to predefined categories that are understood in the best practices support system. For example, the “customer and registration database” concept (308 in
In the
In some examples, the top-level concepts that are used by the best practices support system to define templates can be represented using a Resource Description Framework (RDF), as defined by W3C (World Wide Web Consortion).
The templates are to be made actionable to allow the best practices support system to drive activities between people in performing projects. This is achieved by augmenting the concepts in the templates by using interpretation patterns, which are applied to interpret concepts in the templates. While the concepts in a template describe information about a domain, an interpretation pattern describes actions that can be performed on such information.
An interpretation pattern is a defined structure of particular concepts for which actions can be performed by the best practices support system. The actions prescribed in an interpretation pattern (1) may be executed directly by the best practices support system, e.g., by driving a dialog with a user to refine a concept, (2) can lead to actions being performed by other systems (e.g., process engines), and/or (3) can be assigned to an individual (or a group of individuals).
Examples of general interpretation patterns are “refinement,” “creation,” and “execution,” for concepts such as “thing” or “activity.” Top-level concept categories with associated top-level interpretation patterns are built into the best practices support system up-front. As top-level concepts are refined, more concepts with specific interpretation patterns can be added. The notion of an interpretation pattern is a powerful notion for two reasons: (i) the interpretation pattern allows separation of the actionable aspect of the template from the concepts, and (ii) the interpretation pattern enables association of actions to any concept in the template at any level of detail.
As discussed, the processes in best practices frameworks are ad-hoc and may change at runtime depending on the context of projects. To support this dynamicity, refinement interpretation patterns are provided that allow for adding tasks, removing tasks, assignment of tasks, or performing status update of tasks. Refinement interpretation patterns can have a dialog asking questions to individuals to capture further information or update information in the template.
To support the execution of activities and the interactions among people, a set of built-in execution interpretation patterns can be defined for activity-related concepts. In particular, a mapping from activity-related concepts is provided to abstractions in a process definition and execution language. In other words, an execution pattern uses the mapping to generate a process definition for an activity template, and updates it as the template gets refined.
The execution interpretation pattern can cause presentation of a dialog in which individual roles and responsibilities are assigned to the tasks of a process. When actual actions are triggered for assigned roles, individuals behind those roles can receive a notification of actionable items about expected deliverables and time lines as well as the input material the individuals may have to use to perform tasks assigned to them.
The information repository 400 stores information used by the best practices support system. Such information includes ontologies 406, which define the concepts that are understood by the logic and the interpretation patterns that refer to the ontologies 408. The information repository 400 also includes interpretation patterns 410 as discussed above.
The information repository 400 also stores best practices framework documents 411, which describe best practices framework(s). Templates 412 that have been generated by the best practices support system are also included in the information repository 400.
The logic layer 402 includes a pattern interpreter 414 o load and interpret the interpretation patterns 410. Pattern interpretation is triggered by an event tracker 416 and an activity manager 418. Activities are triggered either as result of user interaction (collaboration) through the user interface portal 404 (e.g., a manager assigns a task to a person), or as the result of some condition becoming true (e.g., the due date for a deliverable has been reached). Events are associated with interpretation patterns, which describe the reaction to the event. The portal 404 allows interactions (collaboration) among individuals in performing a process associated with a best practices framework.
The activity manager 418 is an interface between the best practices support system and other systems, such as process execution engines. The activity manager 418 enables transfer of events captured by the event tracker 416 regarding the progress of an activity to a corresponding process engine, and to return changes in the process execution (e.g., creation of a new task in the workspace of another person) to the portal 404 of the best practices support system.
The portal 404 provides user interfaces to allow for user interaction with the best practices support system. The portal 404 performs at least some of the following general functions: presentation of concepts (information); creation and refinement of templates; initiation of activities; and presentation of information regarding the progress of activities to individuals.
The network interface 506 allows the computer system 500 to communicate over a network 508 with client devices 510, such as desktop computers, notebook computers, personal digital assistants, and so forth.
The computer system 500 can be a single computer node or a distributed arrangement of computer nodes.
The machine-readable Instructions of the module 502 are loaded for execution on a processor (or multiple processors) 504. A processor can include a microprocessor, microcontroller, processor module or subsystem, programmable integrated circuit, programmable gate array, or another control or computing device.
Data and instructions are stored in respective storage devices, which are implemented as one or more computer-readable or machine-readable storage media. The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; optical media such as compact disks (CDs) or digital video disks (DVDs); or other types of storage devices. Note that the instructions discussed above can be provided on one computer-readable or machine-readable storage medium, or alternatively, can be provided on multiple computer-readable or machine-readable storage media distributed in a large system having possibly plural nodes. Such computer-readable or machine-readable storage medium or media is (are) considered to be part of an article (or article of manufacture). An article or article of manufacture can refer to any manufactured single component or multiple components.
In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, implementations may be practiced without some or all of these details. Other implementations may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.