1. Field of the Invention
The present invention relates to Service System and, more particularly, to a system and method for determining staffing requirement of a Service Delivery System.
2. Background and Related Art
Service Delivery Systems (SDS) are most often labor intensive and the cost of service delivery highly dependent upon people assets. The cost of people assets in a human provided service is the majority of the overall cost of delivery of the service. However, optimizing labor costs alone may lead to suboptimal performance over the long term. As a result, quality improvement initiatives have been introduced into such systems in an attempt to consider long term quality.
Typical present day staffing methods and systems are primarily workload based. One of the difficulties with workload based focus is that it tends to sacrifice quality. For example, if SDS “A” and “B” both have essentially the same work volumes for their respective customers and “A” is not spending time on quality improvement efforts and “B” is spending a significant amount of time on quality improvement efforts, then the staffing requirement for SDS “B” would be higher than that of SDS “A”. This may result in SDS “A” being found to be overstaffed whereupon staff may be reduced notwithstanding that quality is not being addressed by SDS “A”.
Compliance with Service Delivery Frameworks (SDF) that drive predictable delivery outcomes and enable Continuous Improvements (CI) are essential to long term overall quality of services delivered and, thus, the on-going cost of delivery of the services. For example, a SDF may contain a Defect Prevention Process requiring technical staff to undertake Root Cause Analysis (RCA) on defects that are repeated in nature, and take necessary proactive actions to reduce such defects from the IT infrastructure. Failure to undertake such RCA investigations result in defect volume continuing to increase necessitating additional staff to handle the increased volume of defects.
Accordingly, methods and systems that work to optimize staffing are essential to both quality of service and profit margins. Such systems need to be able to balance labor costs and quality. To balance labor costs and quality requires an understanding of the interrelationship of quality and cost.
In accordance with embodiments of the present in invention, a SDF simulator is used in a simulation process to identify effective staffing levels of an SDS based on workload. In addition, operational quality is analyzed by measuring the level of compliance the SDS has with quality initiatives of the SDF, and the data from the above processes is used to identify Operational Quality aware SDS staffing recommendations.
In accordance with embodiment of the invention, a method for determining operational quality aware staffing requirements in service delivery systems, comprising: running a simulation over time of service delivery system service calls from multiple customers to determine performance results against the service level agreement and optimizing staffing levels while satisfying the service level agreement of the service delivery system; periodically measuring operational quality metrics against benchmarks in the service delivery system as taken over multiple periods of time to determine quality scores based upon the level of operational performance of the service delivery system related to each metric of said operational quality metrics; computing the threshold of acceptable quality score for each metric of the service delivery systems from the measurements taken in all service delivery systems; setting quality scores above the threshold as one of either a good quality score or a bad quality score and quality scores below the threshold as the other; computing overstaffing as the difference between the actual current staffing level and the optimal staffing level of a service delivery system so that when overstaffing is negative the service delivery system is other-staffed and needs more staffing and when overstaffing is positive the service delivery system has more staff than it needs; and computing the likelihood for each average operational quality metric of said operational metrics with respect to staffing in a population distribution analysis.
In accordance with embodiments of the invention, a method of determining operational quality aware staffing requirement in service delivery systems, comprising: running a simulation over time of service delivery system service calls from multiple customers to determine performance results against the service level agreement and optimizing staffing levels while satisfying the service level agreement of the service delivery system; periodically measuring the operational quality metrics against benchmarks in the service delivery system as taken over multiple periods of time to determine a quality score based upon the level of operational performance of the service delivery system related to each of the operational quality metrics; computing the average quality score for each metric from the measurements taken in all the service delivery system of the service delivery organization; setting average quality score for each metric as a threshold; setting quality scores above average as a bad quality score and quality scores below average as a good quality score; computing the degree of overstaffing as the difference between actual current staffing and the optimal staffing of a service delivery system so that when Overstaffing is negative the service delivery system requires additional staff and when Overstaffing is positive the service delivery system has more staff than it needs; and computing likelihood of a service delivery system being overstaffed vis-à-vis the quality scores of the various operational metrics in the service delivery system based on staffing and operational quality scores data from all service deliver systems in the service delivery organization.
In accordance with embodiments of the invention, a computer program product for determining operational quality aware staffing requirements in service delivery systems, said computer program product comprising: a computer readable storage medium; first program instructions for running a simulation over time of service delivery system service calls from multiple customers to determine performance results against the service level agreement and optimizing staffing levels while satisfying the service level agreement of the service delivery system; second program instructions for periodically measuring operational quality metrics related to a service outcome of staffing against benchmarks in the service delivery system as taken over multiple periods of time to determine quality scores based upon the level of operational performance of the service delivery system related to each metric of said operational quality metrics; third program instructions for computing the threshold of acceptable quality score for each metric of the service delivery systems from the measurements periodically taken over multiple periods of time from all service delivery systems; fourth program instructions for setting the quality scores above the threshold as one of either a good quality score a bad quality score and quality scores below the threshold as the other; fifth program instructions for computing overstaffing as the difference between the actual current staffing level and the optimal staffing level of a service delivery system so that when overstaffing is negative the service delivery system is other-staffed and needs additional staffing and when Overstaffing is positive the service delivery system has more staff than it needs; sixth program instructions for computing the likelihood data for each average operational quality metric of said operational metrics with respect to staffing in a population distribution analysis; and wherein said first, second, third, fourth, fifth and sixth program instructions are stored on said computer readable storage medium.
In accordance with embodiments of the present invention, a system for determining operational quality aware staffing requirements in service delivery systems, comprising: a simulation module for running a simulation over time of service delivery system service calls from multiple customers to determine performance results against the service level agreement and optimizing staffing levels while satisfying the service level agreement of the service delivery system; a measuring module periodically measuring operational quality metrics against benchmarks in the service delivery system as taken over multiple periods of time to determine quality scores based upon the level of operational performance of the service delivery system related to each metric of said operational quality metrics; an operational quality to staffing relationship analyzer for; computing the acceptable threshold quality score for each metric of the service delivery system from the measurements periodically taken over multiple periods of time from multiple service delivery systems; setting the quality scores above the threshold as one of either a good quality score or bad quality score and quality scores below the threshold as the other; computing overstaffing as the difference between the actual current staffing level and the optimal staffing level of a service delivery system so that when overstaffing is negative the service delivery system is other-staffed and needs additional staff and when overstaffing is positive the service delivery system has more staff than needed; and computing likelihood data for each average operational quality metric of said operational metrics with respect to staffing in a population distribution analysis.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which;
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied in any of a variety of ways, some of which will be described herein as a system, method or computer program product. Accordingly, aspects of the present 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 present 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 (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, 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 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 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. Portions of the program code may execute on the user's computer or terminal, and portions on intermediate and/or remote computers or servers. The remote computers may be connected to the intermediate and/or user's computer or terminal 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 present invention are described below with reference to system and 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 illustration, and combinations of blocks in the flowchart illustrations, 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 or system, 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 or system, other programmable data processing apparatus, or other devices, such as, storage devices, user terminals, or remote computers such as, servers, 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 or system, other programmable data processing apparatus, or other devices, such as, storage devices, user terminals, or remote computers such as servers, to cause a series of operational steps to be performed on the computer, computer system arrangement and/or other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, computer system arrangement and/or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
With reference to
Input/output devices are also connected to system bus 5 via User Interface Adapter 16 and Display Adapter 17. In this manner, a user is capable of inputting to the system via keyboard 19 or mouse 21 and receiving output from the system via display device 23. It is clear that other devices may be used to input information such as a Personal Computer, scanner and the like.
Implementation of the invention includes implementations as a computer system programmed to execute the method or methods described herein, and as a computer program product. According to the computer system implementation, sets of instructions for executing the method or methods may be resident in the ROM 7 or RAM 9, as shown in
Note that invention may describe terms such as comparing, analyzing, validating, selecting, identifying, or other terms that could be associated with a human operator. However, for operations described herein which form major part of the embodiments, no action by a human operator is present. The operations described are, in large part, machine operations processing electrical signals to generate other electrical signals.
With further reference to
The SDF also includes multiple tools and databases used to track information related to the various SDS pools, such as, demography, work load details (e.g. ticket data), Service Level Agreement (SLA) information, a time and effort tracking tool, a defect prevention tracking tool, a security and system currency tool, human resource databases, and the like. The tools act to provide the operational data of the SDSs.
SDS1 . . . SDSn pools, shown at 41 in
Again, with reference to
QS vs. Staffing Relationship Database 49 in
As soon as a SR arrives, the Queue Manager 61 assigns it to the matching Skill Level Queue 63 based upon the priority Pc assigned by the customer or modified based upon factors, such as, shortest service time. Thus, the priority associated with SRs in the Skill Level Queues may be based on the customer assigned priority of the SR but may not be identical. The Skill Level Queues 63 are prioritized. Priority of SRs in the Skill Level Queues depends on the policy adopted. Resource Allocator 65 may act to push the SR to the best SW and queue it in the work queue of the SW or the SR may wait in the Skill Level Queue 63 until it reaches the head of the queue and a SW with a matching skill becomes available and pulls it. Typically, the latter is used where minimum skill level is required for a SR by assigning the SR to the appropriate individual skill level SW 67.
Thus, in the latter mode, the SRs move from the Skill Level Queues to individual SWs queues as soon as they are assigned by Resource Allocator to the SW. In general, the Resource Allocator controls when to dispatch a SR from the Skill Level queues 63 to an individual SW queues 67. A SW typically completes working on a SR and takes the next SR to work on from the head of their queue. The time taken by a SW to complete the work on a SR follows a Lognormal distribution with mean r1 and standard deviation r2. Distributions are computed for each skill level and each severity of work. The distribution function τ(PidsXid) is learned by conducting statistics where each SW records the actual “touch time” devoted to each of the SRs and Pid is the priority of the SR and Xid is the required skill level of the SR.
The Runtime Monitor 69 collects statistics on the performance of the SDS against the SLAs as well as other factors and statistics and stores them in Storage 71. It may also feedback the statistics to Resource Allocator 65. Among other statistics, the output of a simulation run is the actual SLA attainment percentages for each customer.
Optimum staffing levels are computed by conducting a search over the space of SDS Configurations. This is done by entering data into the Workload Based SDS Simulation Module 43 varying the set of SWs in the SDS, the shift staffing levels and skills of SWs as a map from a SW to the maximum skill level SR that the SW can support. The remainder of the SDS parameters are fixed. This results of the optimization is to create an ideal staffing level that minimizes the staffing level of SW while satisfying SLA conditions. Optimization is implemented as an interactive heuristic search.
The above process is iterative with SRs arriving from customers and internal work over a period of time, such as, six (6) months. The resulting data is collected by step shown at block 83 from a Runtime Monitor, such as Runtime Monitor 69 in
An example of an operational metric may be rework caused by incorrect assignment to SW decisions. This would thus be a way of measuring SR assignment quality.
The performance of SDS against a metric is periodically measured based upon a benchmark that provides boundary conditions for a metric that define an ideal state when performing best and a worst state when performing worst. Values are assigned between 0 (ideal) and 1 (worst). The measured value assigned to a metric is the QS. Similarly, a threshold may be assigned for each metric such that QS above the threshold for a metric is a bad QS and below the threshold is a good QS. The QS for a process may be a weighted average QS of its metrics.
Operational Quality Analyzer 97 takes the operational quality metrics as measured from the operations of the various Service Delivery Systems 93 and computes a QS for each SDS and each operational metric. The operational metrics are identified according to the service outcome of interest. An example of a set of Operational metrics is shown in the left hand Column of
Again with reference to
An example of an outcome metric is labor costs which is measured by reduction in staffing requirements. To look at operational metrics measurements related to staffing, the following process is used by way of example for the set of metrics identified in
At the end of the same period, the optimal staffing requirements processed, as previously described, is used to compute the optimal staffing for the same SDSs. For each operational metric, the threshold is set as an average QS for the metric across the multiple SDSs. Thus, a Good QS for a SDS implies performing better than average and a Bad QS implies performing worse than average.
For the outcome metric of staffing requirements, Overstaffing is defined as the difference between actual current staffing and the optimal staffing of a SDS. A SDS is considered overstaffed if Overstaffing is positive, and other-staffed otherwise.
The results of the above outcome metric run are shown in
In the step shown by block 123, the optimal staffing levels from Workload Based SDS Simulation storage is retrieved. By the step of block 125, for each average operational metric Quality Score QS the threshold is set at the average QS. However, there are a variety of ways of computing the threshold of acceptable QS's. In the step of block 127, for each operational metric, all SDS's having a QS below the average are classified as “Good QS” and all SDS's having a QS above average are classified as a “Bad QS”.
In the step shown in block 129, all SDS's having staffing above the optimal staffing are classified as “Overstaffed” and all SDS's having staffing at or below the optimal staffing are classified as “Otherstaffed”. This step is followed by the step of block 131 wherein for each operational metric, the conditional probability of an SDS is computed as (a) being “Good QS” given “Overstaffed”, (b) being “Bad QS” given “Overstaffed”, (c) being “Overstaffed” given “Good QS” and (d) being “Otherstaffed” given “Bad QS”. An example of the output results of this computation is shown in the Population Distribution data chart of
In the step of block 133, the coefficient of correlation between quality scores of all SDSs that are (a) “Good QS” and “Overstaffed”, (b) “Bad QS” and “Overstaffed”, (c) “Overstaffed” and “Good QS” and (d) “Otherstaffed” and “Bad QS” is computed. An example of the results of this computation is shown in the Correlation Analysis chart of
In the step of block 135 of
The results from the process of
In another example, a simulations may be run for an “Overstaffed” condition where “overstaffed” is defined as Current staffing minus Optimal staffing. Because Optimal staffing increases with Higher QS, the “Overstaffed” quantity goes down. Thus, as shown in the “Operational Quality Aware Staffing Results” chart in the lower right hand corner of the interactive display screen of
The process shown by way of example in flow chart of
In step #5, based upon actual stored SDS work data, the estimated additional workload “W_A” required to improve “S_A” to bring it down to the desired performance levels is provided. This may be a series of incremental estimations “W_A” selected by the user and stored in the system to be accessed and used in the simulation runs to give corresponding levels of Quality Aware staffing. The process continues in step #6 by adding the estimated additional workloads “W_A” to “W” to obtain “W”’. If there are more operational metrics, the process goes back to step #2. Otherwise, the process moves to step #7. In step #7, the simulation is run on the series of “W's” to compute the levels of Optimal Quality Aware staffing “N_Q” corresponding to the added “W_A's”. This may be displayed on the Interactive Visualization unit 53 in
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising”, when used in this specification, specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.