A business environment can involve interactions among people, including people within the same organization or people in different organizations. An organization can be a company, an educational organization, a government agency, any department or division thereof, or others. The interactions among people can be complex to understand and manage.
Some embodiments are described with respect to the following figures:
In accordance with some embodiments, a business activity management mechanism or technique is provided to allow for dynamic adaptation of a business activity. Dynamic adaptation of the business activity involves creation and updating of the first business activity in an ad-hoc and collaborative manner as the business activity executes. “Dynamic” adaptation means that the adaptation can be performed at any time during definition and progression (execution) of a business activity. Adaptation of the business activity in a collaborative manner refers to adaptation based on collaboration among multiple users. Ad-hoc adaptation of the business activity refers to definition and updating of the business activity that does not involve a predefined definition of the business activity, such that the business activity can be continually defined on the fly during execution of the business activity.
A “business activity” refers to a collection of tasks or other discrete pieces of work, where the business activity involves interactions among people (two or more users). Examples of business activities include data entry, human resource management, outsourcing management, project development, or other types of activities. A business activity refers to an activity that can be performed by an organization or by a collection of organizations. Examples of organizations include companies, education organizations, government agencies, departments or divisions of such organizations, or other types of organizations.
Conventionally, predefined and fixed descriptions or models of business activities are usually defined to perform business activity management. However, such predefined and fixed descriptions or models of business activities cannot be used to support interactions among people in an ad hoc and flexible manner. Typically, interactions among people are ad-hoc, dynamic, and complex. Individuals often use productivity tools (e.g., word processing tools, spreadsheet tools, etc.) in performing business activities, which can add to complexity and may result in reduced efficiency. Moreover, best practices are often defined to provide guidelines regarding performance of business activities. Best practices refer to a collection of established and documented techniques, processes, activities, and/or systems that are more effective at delivering a target outcome than other techniques, processes, activities, and/or systems. However, best practices may not be followed by individuals working on business activities due to the ad-hoc nature of collaboration among the individuals.
In accordance with some embodiments, to allow for more flexible business activity management, a business activity manager is provided that allows for dynamic adaptation of business activities based on ad-hoc collaboration among users involved in the business activities. In some implementations, the business activity manager includes a user portal, a business activity adapter, and a business activity orchestrator.
The business activity manager according to some implementations allows for an efficient and flexible way of defining, orchestrating, and adapting ad hoc and dynamic business activities that involve interactions among people. The ability to collaboratively update the business activity allows multiple users to perform the update(s) in a relatively efficient manner. In some implementations, fixed or rigid models of business activities do not have to be predefined, and users do not have to be tasked with manipulating such models, which can be complex and difficult to understand or use. The business activity manager is able to capture information as people work on a business activity such that the business activity can form and manage any model on the behalf of users.
The definitions of business activities, and identification of inter-dependencies among business activities, as well as dynamic modifications of any dependency model relating to the business activities, are performed on the fly by the business activity manager during execution of the business activities. The definition/modification of a business activity is triggered by events that result from high-level actions performed by people using various productivity tools and as a team (collaboratively). Events can also be triggered by people themselves as they collaborate and this collaboration involves interaction with other people. “Productivity tools” refer to tools that are typically provided to users to perform various tasks or other pieces of work, such as word processing tools, spreadsheet tools, email tools, calendaring tools, project management tools, and/or other types of tools.
A process of business activity management according to some embodiments is depicted in
A business activity can involve multiple members of a team. As the business activity executes, based on orchestration by the business activity orchestrator, the team members can determine that the business activity should be updated, such as by adding tasks, updating tasks, removing tasks, adding a group of tasks, removing a group of tasks, updating a group of tasks, adding a step to a particular task, removing a step from a particular task, updating a step in a particular task, adding a team member, removing a team member, and/or allowing a user to join a team that is working on the business activity.
The business activity adapter 206 enables definition of a new business activity, and also allows for updating of the business activity at run time (during execution of the business activity). The business activity orchestrator 208 keeps track of the execution of a business activity, and automatically coordinates the flow of tasks and steps of the business activity among people based on dependencies between tasks and task groups of the business activity. A “task group” refers to a group of tasks that have been logically associated with each other.
In addition, a business activity repository 210 is provided in the business activity manager 200, where the business activity repository 210 stores information 212 relating to business activities definitions as well as on-going execution of business activities. The business activity repository 210 can also store templates 214 used for creation of business activities.
The business activity adapter 206, business activity orchestrator 208, and business activity repository 210 are considered to be part of a business activity manager service 205 of the business activity manager 200. The business activity manager service 205 is able to communicate with the user portal 202 through the interface layer 204.
The user portal 202 includes user interfaces 212 that can execute at corresponding client devices associated with different users. Examples of client devices include desktop computers, notebook computers, personal digital assistants, or other types of devices. The interface layer 204 wraps and exposes the functionality of the business activity manager 200 to allow for ease of access of the business activity manager 200 by external client devices through the user interfaces 212. For example, each of the user interfaces 212 can be in the form of a wizard that supports user interaction. Other types of interactive user interfaces 212 can be used in other implementations.
In some examples, the interface layer 204 can wrap and expose the functionality of the business activity manager 200 as a web service (such that users are presented with web-based content, such as web pages, to allow interaction between the users and the business activity manager service 205).
In some implementations, the interface layer 204 includes a set of application programming interfaces (APIs). The APIs can be called to perform various actions with respect to business activities, such as defining a business activity, updating a business activity, deleting a business activity, and so forth. An API is a routine invocable to perform a target action.
Once a new business activity is created and executing, the business activity can be updated (at 306) as the business activity executes. In some implementations, the updates of business activities can be performed using API (Application Programming Interface) calls to the interface layer 204 of
The following are some examples of updates that can be performed using respective API calls. Note that specific characteristics regarding the listed types of updates are described for purposes of example. In other examples, the updates can have other characteristics, or there can be additional or alternative types of updates.
A business activity can be updated by adding a task to the business activity. Each task has a set of properties such as start-date, due-date, end-date, status, actor identifiers, documents, dependsOn, and type. Actor identifiers identify the persons involved with the task; an actor identifier can also specify a role of the person. Possible roles can include “responsible” (a person assigned this role is responsible for performing the task), “accountable” (a person assigned this role is ultimately accountable for the successful completion of the task), “consulted” (a person assigned this role can be asked to assist with the task), and “informed” (a person assigned this role is to be informed of a status of the task), as some examples. The status of a task is one of “allocated” (the task has been created), “started” (the task has started), “finished” (the task has completed), or “inactive” (the task is not active). Documents associated with a task are the documents that are used, manipulated or generated by the task. A task can be of two types: “human” or “automated.” By default tasks are defined as type “human” (which means that the task is performed by a human). If a task is defined as type “automated” (which means the task is automatically performed), then an API call can be made to a web service or other service at runtime to perform the task.
The property “dependsOn” contains the list of other tasks or task groups that this task depends on. There are two main types of dependencies: mandatory (either OR or AND) and notification. With the mandatory type, the dependent task cannot be started unless the depended-on task is finished. With the notification type, upon the completion of the depended-on task the actors of dependent tasks are notified. Note that the mandatory dependency defines ordering constraints on the execution of tasks or task groups, while the notification type does not define ordering constraints.
Another type of business activity update involves updating the properties of a task. Properties such as start-date and end-date are filled automatically. Other properties such as status, actor identifiers, documents and dependsOn can be modified by a user. A user updates a task's properties through the user portal 202.
Another type of business activity update involves adding a task group. A task group includes a set of tasks or other task groups. The task group can be a placeholder for a set of tasks for which the details of the tasks are not known yet. A user can add a task group. A task group that is added has a parent, which either can be a task group or the business activity. A task group has the properties of start-date, due-date, end-date, status, actor identifiers, and documents. A task group can have a status of “defined,” “started,” “finished,” or “inactive.” A user who creates the task group is by default added to the list of actor identifiers with the role of “accountable.”
Another type of business activity update involves removing a task group. Removing a task group triggers an event so that a message is sent to all persons in the list of actor identifiers of this task group and all the tasks (groups) that depend on this task group to inform them of the request for this task group's deletion. The message is visible in an activity workspace in the user portal (an “activity manager” is discussed further below); also, the message can be sent by email. The message asks the recipients to react if they object to the removal of the task group. If no one objects to the removal of this task group within a predefined time period, this task group is removed from the business activity. The dependency list of tasks (or task groups) that depend on the removed task group is updated. Note that any removed task group is assigned the status of “inactive,” which means that it is not part of ongoing business activity. The inactive task group is not shown in any workspace but exists in the history of the business activity in the business activity repository 210. The (previously removed) task group can be restored to the “active” status via the user portal 202.
Another type of business activity update is removing a task, which is similar to removing a task group, except just an individual task is removed.
Another type of business activity update is adding a step. A step is the smallest unit of work to accomplish some part of a task. A user can create a step associated with a task. By default the steps for a task are ordered according to an order of their execution. A step has the properties of start-date, end-date, due-date, type, status, and actor identifiers. By default all steps are assigned to people (identified by the corresponding task's actor identifiers) who are “responsible” or “accountable.” Similar to a task, a step can be of type “human” or “automated.”
Another type of business activity update is removing a step. Removing a step is similar to removing a task. All persons who have either the “responsible” or “accountable” role for the task are notified for possible objection, and if no objection is raised, the step is removed from the list of steps of the corresponding task and the step's state is updated to “inactive.”
Another type of business activity update is updating a step, which enables a user to update properties of a step including start-date, due-date, and status.
Another type of business activity update is a membership request to join a business activity, which allows a user to request to join a team working on a business activity. The membership request is sent to the person(s) with an “accountable” role in the business activity for approval. After approval, a workspace is created for the person.
Another type of business activity update is adding or removing a team member, which allows the person(s) with “accountable” role in the business activity to send an invitation to a new person to join the business activity or to remove the person from the business activity. In case the person is removed, the workspace of the person is assigned the status of “inactive” and this person is removed from actor identifiers of relevant tasks.
Referring again to
For ease of creating other business activities, an existing business activity that is running can be abstracted and saved to create (at 310) an activity template for subsequent use. An activity template (or more simply “template”) is an activity definition in which the highest level task groups and tasks are defined. Details regarding the execution or progress of business activities (and assigned roles) are removed from the template, with task group, task, and step definitions saved. The templates (214 in
As shown in
For a particular task allocated to a team member, the personal workspace 402 can show the list of all tasks (or task groups) that the particular task depends on, as well as all tasks (or task groups) that depend on the particular task. The personal workspace 402 for a task can provide a “last updates” section where all the latest changes related to the particular current task are shown (changes to the tasks or task groups that the particular task depends on as well as completion/update status of the steps of the particular task). Through this personal workspace 402, the team member can add, remove, and/or update task groups, tasks, and steps within tasks.
The user interface 212 can also present an activity workspace 404 provided to all team members so that the team members can see the status and progress of the business activity. The activity workspace 404 is a common workspace presented in various user interfaces 212 of the corresponding team members. While the activity workspaces 404 in corresponding user interfaces 212 show common information to the team members of the business activity, the personal workspaces 402 can depict different information relevant to corresponding team members.
The activity workspace 404 can also be used by the team members to update the definition of the business activity, through use of the business activity adapter 206 (
The following describes specific examples in the context of business outsourcing, where outsourcing refers to a first organization engaging a second organization to perform target business activity(ies). The first organization is the outsourcing organization, while the second organization is the outsourced organization. Outsourcing personnel of the outsourcing organization uses the user portal 202 (
The business activity manager 200 can ask the outsourcing personnel whether the new business activity is defined based on a template. For example, the business activity manager 200 can present a list of templates for selection by the outsourcing personnel. If a template is selected, then the new business activity is created based on the selected template.
Below is an example definition of a template which can be stored in the business activity repository 210:
If a template is used, task group(s) and/or task(s) of a previous business activity (represented by the selected template) are presented in a user interface 212 of the user portal 202. The presented task group(s) and/or task(s) can be updated by the outsourcing personnel, and additional task group(s), task(s), and step(s) can be added.
During creation of the business activity, team members can also be added. Team members can include personnel from both the outsourcing and outsourced organization. A business activity is considered “active” from the moment that the business activity is defined.
Some implementations of the business activity manager 200 provide some of the following benefits. Runtime adaptation of on-going business activities can be performed, such that predefinition of business activities does not have to be provided, and the definitions of business activities can be updated as the business activity is ongoing (during execution). The business activity manager 200 enables definition of ad-hoc business activities that are not well-structured. The business activity manager 200 allows defining business activities as they are being performed during their day-to-day operations.
The business activity manager 200 provides a flexible technique in which business activity definition is performed in a collaborative manner between team members. This technique allows capturing the knowledge and expertise of all team members in conducting the business activity.
Consensus-based task update and removal can be provided. The business activity manager 200 provides a consensus based technique through which certain changes including the removal of tasks (groups) and steps are performed based on agreement among the team members.
The business activity manager 200 is able to monitor the progress of tasks and steps and can analyze the dependencies between them to enable the start of other tasks and notify people of their progress.
Business activity knowledge can be captured as templates for subsequent use, to allow improved efficiency. This allows the capturing of the knowledge of other people for sharing when performing similar business activities in the future.
The user interfaces 212 of the user portal 202 (
Machine-readable instructions discussed above are loaded for execution on a processor (e.g., 502). 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 multiple 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.