Electronic communication has made it increasingly easier for large companies, such as those with thousands (often, tens of thousands) of workers and/or consultants (who, for the purposes of simplicity, may be referred to as “resources”), to maintain steady streams of workflow across scattered offices and locations. In other words, the increasing irrelevance of geographical constraints has permitted large businesses to assign work tasks to resources in diverse locations on the basis of different practical factors (to be further understood and appreciated herein), as if the workers/consultants were all housed under one roof or along the same hallway.
Typically, in such a context, business process modelling provides a visual platform via which the structure and behavior of business processes can be communicated to stakeholders. Apart from the basic process structure that includes a set of activities and flow constructs, a complete business process model also normally captures information such as resource requirements, task duration, cost information, resource availability schedules and process constraints.
Typical resource-to-task modelling (that is, the general modelling of the assignment of available resources to tasks requiring resources) involves repeatable activities and determinations such that similar or analogous resource-to-task mappings can easily be repeated across processes within a given enterprise. Normally, a business analyst spends considerable time in business process discovery and data collection related to resource-to-task assignments. However, while simulation results in conventional modelling can highlight resource shortages, they have deprived users of an additional degree of utility since they neglect to suggest alternative assignments for resources.
In summary, one aspect of the invention provides a method comprising: assimilating tasks from a plurality of business processes for resource assignment; assimilating information on available resources for assignment to the tasks; assimilating historical information on resource assignment to tasks; dynamically acquiring new resource information; assigning resources to tasks based on the assimilated historical information and the dynamically acquired new information; outputting a plan of resource assignment to tasks, the plan of resource assignment comprising a first plan and a second plan, the first plan being unrelated to the dynamically acquired new information and the second plan being related to the dynamically acquired new information.
Another aspect of the invention provides an apparatus comprising: one or more processors; and a computer readable storage medium having computer readable program code embodied therewith and executable by the one or more processors, the computer readable program code comprising: computer readable program code configured to assimilate tasks from a plurality of business processes for resource assignment; computer readable program code configured to assimilate information on available resources for assignment to the tasks; computer readable program code configured to assimilate historical information on resource assignment to tasks; computer readable program code configured to dynamically acquire new resource information; computer readable program code configured to assigning resources to tasks based on the assimilated historical information and the dynamically acquired new information; computer readable program code configured to output a plan of resource assignment to tasks, the plan of resource assignment comprising a first plan and a second plan, the first plan being unrelated to the dynamically acquired new information and the second plan being related to the dynamically acquired new information.
An additional aspect of the invention provides a computer program product comprising: a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising: computer readable program code configured to assimilate tasks from a plurality of business processes for resource assignment; computer readable program code configured to assimilate information on available resources for assignment to the tasks; computer readable program code configured to assimilate historical information on resource assignment to tasks; computer readable program code configured to dynamically acquire new resource information; computer readable program code configured to assigning resources to tasks based on the assimilated historical information and the dynamically acquired new information; computer readable program code configured to output a plan of resource assignment to tasks, the plan of resource assignment comprising a first plan and a second plan, the first plan being unrelated to the dynamically acquired new information and the second plan being related to the dynamically acquired new information.
For a better understanding of exemplary embodiments of the invention, together with other and further features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying drawings, and the scope of the claimed embodiments of the invention will be pointed out in the appended claims.
It will be readily understood that the components of the embodiments of the invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations in addition to the described exemplary embodiments. Thus, the following more detailed description of the embodiments of the invention, as represented in the figures, is not intended to limit the scope of the embodiments of the invention, as claimed, but is merely representative of exemplary embodiments of the invention.
Reference throughout this specification to “one embodiment” or “an embodiment” (or the like) means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” or the like in various places throughout this specification are not necessarily all referring to the same embodiment.
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the various embodiments of the invention can be practiced without one or more of the specific details, or with other methods, components, materials, et cetera. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
The description now turns to the figures. The illustrated embodiments of the invention will be best understood by reference to the figures. The following description is intended only by way of example and simply illustrates certain selected exemplary embodiments of the invention as claimed herein.
It should be noted that the flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, apparatuses, methods and computer program products according to various embodiments of the invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Referring now to
As shown in
PCI local bus 50 supports the attachment of a number of devices, including adapters and bridges. Among these devices is network adapter 66, which interfaces computer system 100 to LAN, and graphics adapter 68, which interfaces computer system 100 to display 69. Communication on PCI local bus 50 is governed by local PCI controller 52, which is in turn coupled to non-volatile random access memory (NVRAM) 56 via memory bus 54. Local PCI controller 52 can be coupled to additional buses and devices via a second host bridge 60.
Computer system 100 further includes Industry Standard Architecture (ISA) bus 62, which is coupled to PCI local bus 50 by ISA bridge 64. Coupled to ISA bus 62 is an input/output (I/O) controller 70, which controls communication between computer system 100 and attached peripheral devices such as a as a keyboard, mouse, serial and parallel ports, et cetera. A disk controller 72 connects a disk drive with PCI local bus 50. The USB Bus and USB Controller (not shown) are part of the Local PCI controller (52).
As will be appreciated herein, in accordance with embodiments of the invention, intelligent resource assignments are made based on similarity of activities across processes. Resource constraints such as availability and cost are incorporated into the model, and can be populated from existing repositories Information present in a user registry is then leveraged, in accordance with embodiments, to complete the resource view of the process model. Further, in embodiments, real time resource details are used to run realistic simulations of human workflow based on current organizational structure, while simulation results provide suggestions for alternative resource assignments in order to maximize throughput.
Reviewing some general background, conventional business process modelling has involved the allocation of work items to resources on the basis of previous execution history. Accordingly, for example, a process model assigns a task to a resource who previously successfully completed the same or similar tasks most often. As historical data are involved, this type of resource allocation is static as it does not rely on changing parameters in the present.
Another type of conventional resource allocation, where no access to historical data is involved, is based on the position of resources within an organization, and their relationship with other users. For instance, allocation rules can be defined here in the manner of “task is performed by superior of X”. This also has resulted in static information in conventional models, in that any updates to such information rarely if ever reach the models in sufficient time to be of optimal assistance.
Conventional business process modelling also involves the application of constraints to models, but these are applied only on a per-process basis. Conflicting resource constraints thus are difficult to resolve, especially in the absence of support for resolving such conflicts at design time.
By way of stark contrast, there is broadly contemplated herein, in accordance with embodiments of the invention, the receipt of multiple business process models and resource constraints for each of the models, wherein these are then consolidated to more fully optimized business process modelling. Additional resource constraints governing goals of the business unit or organization are also received in embodiments of the invention, as well as resource registry information, (e.g., LDAP [lightweight directory access protocol] information) in addition to resource information such as resource availability and cost, etc. In embodiments of the invention, historical resource-to-task mapping is also assimilated as well as performance characteristics of resources.
In accordance with embodiments of the invention, an optimal allocation of resources is determined along with alternatives of resource assignments. A user is then permitted to validate the assignment via simulating human workflow steps, and the user registry is monitored changes, whereby resource-to-task mapping is dynamically re-determined as appropriate. (For the purposes of discussion, “user” may be considered to be an individual or individuals who actually run a process modelling tool to conduct business process modelling, as opposed to resources considered for tasks in the modelling.)
As shown, process modelling tool 202 in an example embodiment receives input from several sources, including (but not necessarily limited to): a database or other data source 204 containing information about resource availability, qualifications, cost and/or other resource attributes; a LDAP/user registry 206; a resource task mapping repository 208; and manual input 210 as may be provided by a user.
Process modeling tool 202 includes, in an example embodiment, an intelligent constraint mapper 212 that serves to collect and consolidate information from the aforementioned sources 204/206/208/210. As such, database 204 provides resource constraints to mapper 212, that is, information governing the extent to which a resource may be employed in a process and their qualifications therefor. LDAP/user registry 206, on the other hand, is different from the other sources in that, in accordance with at least one embodiment of the invention, it contains information on organizational hierarchy. For instance, resource properties such as job role, department, manager, etc., are stored in this input source (206) in accordance with at least one embodiment.
Resource task mapping repository 208, on the other hand, inputs task assignments that previously had been applied and thus impart intelligent mapping suggestions based on previously modeled process data.
Finally, any additional constraints, as deemed appropriate, are entered in an example embodiment via manual input (210). Examples of such additional constraints could include, but by no means are limited to, skill levels, qualification, special needs, etc., which may not be part of a standard set of properties stored in the LDAP/user registry 206.
In at least one embodiment of the invention, process modelling tool 202 then undertakes two actions based on information consolidated via intelligent constraint mapper 212, namely, business process modeling (214) and business process simulation (216). In at least one embodiment of the invention, for effective business process modeling, the process modeling provides suggestions for role assignment computed based on the data available in the various input sources. On the other hand, business process simulation 216 serves to to suggest alternative best choices for resource assignment based on the resource availability at a given point of time.
Process mappings (as will be understood more fully herebelow with reference to
In accordance with an embodiment of the invention, the business process simulation 216 results in intelligent alternative suggestions (218) for resource mapping, as will be more fully appreciated herebelow.
As shown, in accordance with conventional arrangements, typical simulation results 318 will yield Jack's assignment to each of the tasks A-1, B-1 and C-1. (By way of brief clarification, a task is a single unit of work within a process, whereas a process can be composed of one or more such tasks. In the context of embodiments of the invention, a task does not exist by itself so much as is a part of a business process.)
It should also be clarified and appreciated that in each of the examples of
Thus, the conventional example of
The disclosure now turns to processes, in accordance with embodiments of the invention, as shown in
This updating can take place at any time so that by the time a process simulation is run, the results 518 newly take into consideration the change in Jamie's ranking for Task B-1. Accordingly, a new simulation will remove David from Task B-1 as shown and replace him with Jamie, as—after Jack is assigned to Task A-1—Jamie would be the next specialist down the list in 508 with a ranking of 1. Accordingly, David then replaces Jamie for task C-1 as he now is the “best available” (or in this case, only) candidate to take over the task, despite having a ranking of 2. It should thus be appreciated, in accordance with at least one embodiment of the invention, that the algorithm indeed aim to maximize and diversify the distribution of resources across tasks, such that as many different resources are assigned to tasks as possible, even if a resource with a ranking of 1 is not always available for a task. In other words, if resources of ranking 1 are currently assigned to other tasks, the algorithm will choose the next best option, which would be a ranking 2 resource that is currently available (that is, not currently assigned to any task).
As shown in
In brief recapitulation, it will be appreciated that embodiments of the invention permit, advantageously, the pooling of unused capacities of multiple resources to create flexible execution plans with adjustable effort boundaries for atomic tasks. While nominally atomic tasks are associated with employing a single resource, embodiments of the invention permit multiple individuals to collaborate on a task at execution time, while making adjustments to estimated effort to account for collaboration/transaction costs. As a result of employing a planning engine in accordance with embodiments of the invention, it is possible to complete more tasks on time and avoid penalties, which can lead to being able to accept more tasks and increase revenue, reduce the idle time of resources and promote more collaboration across team members to thereby improve future organizational performance.
It should be noted that aspects of the invention may be embodied as a system, method or computer program product. Accordingly, aspects of the invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java®, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer (device), partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
This disclosure has been presented for purposes of illustration and description but is not intended to be exhaustive or limiting. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiments were chosen and described in order to explain principles and practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated.
Although illustrative embodiments of the invention have been described herein with reference to the accompanying drawings, it is to be understood that the embodiments of the invention are not limited to those precise embodiments, and that various other changes and modifications may be affected therein by one skilled in the art without departing from the scope or spirit of the disclosure.