The present invention relates to a data processing method and system for validating a model, and more particularly to a technique for validating a model and optimizing service delivery.
Known methods of modeling information technology (IT) service delivery systems include an explicit use of one type of model (e.g., queueing model or discrete event simulation model). Other known methods of modeling IT service delivery systems use multiple models to build best of the breed models (i.e., select one model from a bank of models through the use of an arbitrator based on arbitration policies), hybrid models (e.g., using agent-based models and system dynamics models to represent different aspects of a system), and staged models (e.g., building a deterministic model first, and then building a stochastic model to capture stochastic behaviors).
In first embodiments, the present invention provides a method of validating a model. The method includes a computer collecting data from a system being modeled. The method further includes the computer constructing first and second models of the system from the collected data. The method further includes, based on the first model, the computer determining a first determination of an aspect of the system. The method further includes, based on the second model, the computer determining a second determination of the aspect of the system. The method further includes the computer determining a variation between the first and second determinations of the aspect of the system. The method further includes the computer receiving an input for resolving the variation, and in response, the computer deriving a model of the system that reduces the variation.
In second embodiments, the present invention provides a method of modeling a service delivery system. The method includes a computer system collecting data from the service delivery system. The method further includes the computer system constructing first and second models of the service delivery system from the collected data. The method further includes, based on the first model, the computer system determining a first staff utilization of the service delivery system across one or multiple pools. The method further includes, based on the second model, the computer system determining a second staff utilization of the service delivery system across the one or multiple pools. The method further includes the computer system determining utilization errors based on variations between the first and second staff utilizations across the one or multiple pools. The method further includes the computer system deriving an initial recommended model based on the utilization errors. The method further includes the computer system receiving performance indicating factors for performance across the one or multiple pools. The method further includes the computer system determining trend differences by comparing the initial recommended model and the performance indicating factors. The method further includes the computer system deriving a subsequent recommended model based on the trend differences. The subsequent recommended model reduces at least one of the utilization errors and the trend differences.
In third embodiments, the present invention provides a computer system including a central processing unit (CPU), a memory coupled to the CPU, and a computer-readable, tangible storage device coupled to the CPU. The storage device contains program instructions that, when executed by the CPU via the memory, implement a method of modeling a service delivery system. The method includes the computer system collecting data from the service delivery system. The method further includes the computer system constructing first and second models of the service delivery system from the collected data. The method further includes, based on the first model, the computer system determining a first staff utilization of the service delivery system across one or multiple pools. The method further includes, based on the second model, the computer system determining a second staff utilization of the service delivery system across the one or multiple pools. The method further includes the computer system determining utilization errors based on variations between the first and second staff utilizations across the one or multiple pools. The method further includes the computer system deriving an initial recommended model based on the utilization errors. The method further includes the computer system receiving performance indicating factors for performance across the one or multiple pools. The method further includes the computer system determining trend differences by comparing the initial recommended model and the performance indicating factors. The method further includes the computer system deriving a subsequent recommended model based on the trend differences. The subsequent recommended model reduces at least one of the utilization errors and the trend differences.
In fourth embodiments, the present invention provides a computer program product including a computer-readable, tangible storage device having computer-readable program instructions stored therein, the computer-readable program instructions, when executed by a central processing unit (CPU) of a computer system, implement a method of modeling a service delivery system. The method includes the computer system collecting data from the service delivery system. The method further includes the computer system constructing first and second models of the service delivery system from the collected data. The method further includes, based on the first model, the computer system determining a first staff utilization of the service delivery system across one or multiple pools. The method further includes, based on the second model, the computer system determining a second staff utilization of the service delivery system across the one or multiple pools. The method further includes the computer system determining utilization errors based on variations between the first and second staff utilizations across the one or multiple pools. The method further includes the computer system deriving an initial recommended model based on the utilization errors. The method further includes the computer system receiving performance indicating factors for performance across the one or multiple pools. The method further includes the computer system determining trend differences by comparing the initial recommended model and the performance indicating factors. The method further includes the computer system deriving a subsequent recommended model based on the trend differences. The subsequent recommended model reduces at least one of the utilization errors and the trend differences.
Embodiments of the present invention generate a model of an information technology service delivery system, where the model self-corrects for inaccuracies by integrating multiple models. By deriving a single, consistent, validated model that reduces the effect of combining data from multiple highly variable data sources, which include data that often has low levels of accuracy, practitioners may use the derived model to optimize the service delivery process.
Embodiments of the present invention recognize that modeling an IT service delivery system using known techniques is challenging because of system data that is incomplete, inaccurate, has uncertainties, has a large variation and/or is collected from multiple sources, and because of difficulties in building an accurate service model. Embodiments of the present invention acknowledge and reduce the effect of multiple sources of variation in the modeling process by using multiple models simultaneously and feedback loops for self-validating the modeling accuracy, without an arbitrator. The integration of multiple models and feedback loops to self-validate for modeling inaccuracy may ensure a derivation of a single model that reduces overall variation, which helps practitioners optimize the service delivery process.
Embodiments of the present invention use multiple models and feedback loops to improve modeling accuracy in order to provide an optimization of a system, such as an IT service delivery system (a.k.a. service delivery system). A service delivery system delivers one or more services such as server support, database support and help desks. Modeling consistency is checked across the multiple models, and feedback loops provide self-correcting modeling adjustments to derive a single consistent and self-validated model of the service delivery system. A reasonably accurate model of the service delivery system is provided by embodiments disclosed herein, even though data for the model is collected from multiple, highly variable sources having incompleteness and inaccuracies. The modeling technique disclosed herein may use the multiple models without requiring staged models, hybrid models, or the generation of best of breed models using an arbitrator. Although systems and methods described herein disclose a service delivery system, embodiments of the present invention contemplate models of other systems that are modeled based on inaccurate and/or incomplete data, such as manufacturing lines, transportation facilities and networks.
The detailed description is organized as follows. First, the discussion of
Model equivalency enforcement module 110 performs a second consistency check based on trend differences revealed by comparing attributes of the initial recommended model with performance indicating factors across one or multiple pools of resources (e.g., groups or teams of individuals, such as a group of technicians or a group of system administrators). Hereinafter, a pool of resources is also simply referred to as a “pool.” If model equivalency enforcement module 110 determines that consistency based on the trend differences is lacking, then module 110 provides a feedback loop back to multiple model construction module 106, which makes adjustments to one or more of the multiple models, and the consistency checks by the model conciliation module 108 and the model equivalency enforcement module 110 are repeated. If model equivalency enforcement module 110 determines that there is consistency based on the trend differences, then module 110 derives a subsequent recommended model 114. Model validation system 104 uses recommended model 114 to generate an optimization recommendation 116 (i.e., a recommendation of an optimization of the system being modeled).
Model validation system 104 may use additional feedback from a functional prototype (not shown) of the service delivery system to determine how well an implementation of optimization recommendation 116 satisfies business goals. If the business goals are not adequately satisfied by the implementation, then model validation system 104 provides a feedback loop back to multiple model construction module 106, which makes further adjustments to the models, and model validation system 104 repeats the checks described above to derive an updated recommended model 114. Model validation system 104 uses the updated recommended model 114 to generate an updated optimization recommendation 116.
The functionality of the components of system 100 is further described below relative to
The data collected in step 202 may be incomplete and may include a large amount of variation and inaccuracy. For example, the data may be incomplete because some system administrators (SAs) may not record all activities, and the non-recorded activities may not be a random sampling.
In step 204, multiple model construction module 106 (see
In step 206, model conciliation module 108 (see
In step 208, model conciliation module 108 (see
In step 210, model conciliation module 108 (see
In step 212, model conciliation module 108 (see
Although not shown in
In step 216, based on the model derived in step 214, model validation system 104 (see
Similar to the data collected in step 202 (see
In step 304, multiple model construction module 106 (see
In one embodiment, the full-scale model constructed in step 304 is the discrete event simulation model, which is based on work types and arrival rate, service times for work types, and other factors such as shifts and availability of personnel. One secondary model constructed in step 304 may be based on the queueing formula, is based on arrival time and service time, and uses a formula for utilization (i.e., mean arrival rate divided by mean service rate) and Little's theorem. Another secondary model constructed in step 304 may be a system heuristics model that is based on pool performance and agent behaviors. For example, the system heuristics model may be based on tickets per SA and T&M participation rate.
In step 306, model conciliation module 108 (see
In one example, a secondary model run in step 306 is based on a queueing formula considering ticket/non-ticket, business hours and shift, where arrival rate is equal to (weekly ticket volume+weekly non-ticket volume)/(5*9), where service rate is equal to 1/(weighted average service time from both ticket and non-ticket)*(total staffing), and where utilization is equal to arrival rate/service rate. Another secondary model run in step 306 is a system heuristics model, where utilization is equal to (ticket work time/SA/Day as adjusted by the volume of the ticketing system+non-ticket work time/SA/Day)/9. It should be noted that the numbers 5 and 9 are included in mathematical expressions in this paragraph based on an embodiment in which the SAs are working 5 days per week and 9 hours per day.
In step 308, model conciliation module 108 (see
If model conciliation module 108 (see
Returning to step 310, if model conciliation module 108 (see
In step 314, model conciliation module 108 (see
In step 316, model equivalency enforcement module 110 (see
After step 316, the process of
In step 320, model equivalency enforcement module 110 (see
If model equivalency enforcement module 110 (see
Returning to step 320, if model equivalency enforcement module 110 (see
In step 324, model equivalency enforcement module 110 (see
In step 326, based on the recommended model designated in step 324, model validation system 104 (see
In step 328, model validation system 104 (see
Returning to step 328, if model validation system 104 (see
In step 334, model validation system 104 (see
In step 336, model validation system 104 (see
In step 338, model validation system 104 (see
If model validation system 104 (see
If model validation system 104 (see
Memory 404 may comprise any known computer-readable storage medium, which is described below. In one embodiment, cache memory elements of memory 404 provide temporary storage of at least some program code (e.g., program code 414) in order to reduce the number of times code must be retrieved from bulk storage while instructions of the program code are carried out. Moreover, similar to CPU 402, memory 404 may reside at a single physical location, comprising one or more types of data storage, or be distributed across a plurality of physical systems in various forms. Further, memory 404 can include data distributed across, for example, a local area network (LAN) or a wide area network (WAN).
I/O interface 406 comprises any system for exchanging information to or from an external source. I/O devices 410 comprise any known type of external device, including a display device (e.g., monitor), keyboard, mouse, printer, speakers, handheld device, facsimile, etc. Bus 408 provides a communication link between each of the components in computer system 102, and may comprise any type of transmission link, including electrical, optical, wireless, etc.
I/O interface 406 also allows computer system 102 to store information (e.g., data or program instructions such as program code 414) on and retrieve the information from computer data storage unit 412 or another computer data storage unit (not shown). Computer data storage unit 412 may comprise any known computer-readable storage medium, which is described below. For example, computer data storage unit 412 may be a non-volatile data storage device, such as a magnetic disk drive (i.e., hard disk drive) or an optical disc drive (e.g., a CD-ROM drive which receives a CD-ROM disk).
Memory 404 and/or storage unit 412 may store computer program code 414 that includes instructions that are carried out by CPU 402 via memory 404 to validate a model and optimize service delivery using multiple models and feedback-based approaches. Although
Further, memory 404 may include other systems not shown in
Storage unit 412 and/or one or more other computer data storage units (not shown) that are coupled to computer system 102 may store modeling information 112 (see
As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, an aspect of an embodiment of the present invention may take the form of an entirely hardware aspect, an entirely software aspect (including firmware, resident software, micro-code, etc.) or an aspect combining software and hardware aspects that may all generally be referred to herein as a “module”. Furthermore, an embodiment of the present invention may take the form of a computer program product embodied in one or more computer-readable medium(s) (e.g., memory 404 and/or computer data storage unit 412) having computer-readable program code (e.g., program code 414) embodied or stored thereon.
Any combination of one or more computer-readable mediums (e.g., memory 404 and computer data storage unit 412) may be utilized. The computer readable medium may be a computer-readable signal medium or a computer-readable storage medium. In one embodiment, the computer-readable storage medium is a computer-readable storage device or computer-readable storage apparatus. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus, device or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes: 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 a tangible medium that can contain or store a program (e.g., program 414) for use by or in connection with a system, apparatus, or device for carrying out instructions.
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, electromagnetic, 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 a system, apparatus, or device for carrying out instructions.
Program code (e.g., program code 414) 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 (e.g., program code 414) for carrying out operations for aspects of the present 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. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. Instructions of the program code may be carried out entirely on a user's computer, 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, where the aforementioned user's computer, remote computer and server may be, for example, computer system 102 or another computer system (not shown) having components analogous to the components of computer system 102 included in
Aspects of the present invention are described herein with reference to flowchart illustrations (e.g.,
These computer program instructions may also be stored in a computer-readable medium (e.g., memory 404 or computer data storage unit 412) that can direct a computer (e.g., computer system 102), other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions (e.g., program 414) stored in the computer-readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowcharts and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer (e.g., computer system 102), 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 (e.g., program 414) which are carried out on the computer, other programmable apparatus, or other devices provide processes for implementing the functions/acts specified in the flowcharts and/or block diagram block or blocks.
The flowcharts in
While embodiments of the present invention have been described herein for purposes of illustration, many modifications and changes will become apparent to those skilled in the art. Accordingly, the appended claims are intended to encompass all such modifications and changes as fall within the true spirit and scope of this invention.
This application is a continuation application claiming priority to Ser. No. 13/342,229 filed Jan. 3, 2012.
Number | Date | Country | |
---|---|---|---|
Parent | 13342229 | Jan 2012 | US |
Child | 14318739 | US |