This invention relates to capacity planning of resources, such as planning of a resource's time.
Businesses of all types generally attempt to use their existing resources in the most efficient and organized manner. For example, a professional consulting business may attempt to fill the schedule of each consultant (a resource) with client-related work between the hours of 8:00 AM and 5:00 PM so as to use the full capacity of time provided by that consultant. Similarly, a technology service business may attempt to schedule a skilled technician (a resource) as a field service technician (servicing/repairing products at various locations) two days per week and as a call center agent (providing technical support via telephone or internet communications) three days per week. Such a schedule for the skilled technician may efficiently distribute the technician's capacity of time. In another example, a manufacturing plant may use a single machine (a resource) to manufacture several different products, but the machine must be shut down for a period of time when new tooling must be set-up for the manufacture each of the different products. Thus, the machine's capacity to build the different products may be efficiently scheduled by reducing the number of tooling changes.
Conventional scheduling systems may permit an operator to schedule a resource's time to an assignment having concrete date and time facts. For example, a conventional system may schedule an assignment to a skilled technician to work as a field service technician on Monday from 9:00 AM to 6:00 PM and then to work as a call center agent on Tuesday from 8:00 AM to 5:00 PM. The concrete date and time facts for this assignment permit the system to reserve the worker's time on Monday and Tuesday for the specified tasks. In another example, a conventional system may schedule an assignment for a professional consultant to work on a client's project from 8:00 AM to 5:00 PM on Monday, June 16. Because the date and time facts are concrete, the conventional system may reserve the consultant's time.
Problems arise when a request for a resource's time does not include concrete date and time facts. If, for example, a request for a consultant's time specifying only that the consultant must spend twenty hours in the month of April working on a particular project, the required concrete date and time facts would be lacking. Some conventional systems may not be able to handle such a non-concrete assignment. Other may automatically schedule such a non-concrete assignment in a potentially inefficient manner (e.g., scheduling one hour per day for the first twenty work days in April even though the consultant is already scheduled at 100% capacity on one or more of those days).
Certain implementations of the invention provide a resource planning system or method for receiving a scheduling request for a resource's time where the scheduling request includes a date range and the estimated amount of time needed from the resource, but does not include concrete date and time facts. This first scheduling request may be refined by a second scheduling request, which specifies concrete date and time facts to schedule a portion of the resource's time that was originally requested by the first scheduling request. In such implementations, the resource's time may be scheduled in an efficient manner without over-scheduling or double-booking the resource's time.
In one implementation, a method of scheduling use of a resource includes receiving a first scheduling request for a resource. The first scheduling request specifies that the resource is to be scheduled for a requested amount of time sometime within a requested time period-the requested amount of time being less than a maximum time amount that the resource is available during the requested time period. The method further includes receiving a second scheduling request for the resource that refines the first scheduling request. The second scheduling request specifies that a portion of the requested amount of time is to be scheduled in a specific time slot within the requested time period. The method also includes scheduling in an electronic schedule the portion of the requested amount of time in the specific time slot, and scheduling in the electronic schedule a remaining portion of the requested amount of time within the requested time period except within the specific time slot.
The systems and techniques described herein may provide any or all of the following advantages. Improved scheduling of a resource. Improved determination of a resource's workload. Improved use of a scheduling program. Improved scheduling of concrete and non-concrete requests for use of a resource. Providing that the impact of a non-concrete scheduling request on a resource's schedule properly takes into account a concrete refinement of that non-concrete request. Providing that, when a non-concrete scheduling request is refined by a concrete request, the remainder of the non-concrete request is properly distributed in the resource's schedule. Providing that, when a non-concrete scheduling request is refined by a concrete request, the remainder of the non-concrete request is distributed in the resource's schedule to avoid overscheduling the resource.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
FIGS. 2A-C are graphical representations of a resource's time capacity in accordance with an implementation of the invention.
FIGS. 3A-C are graphical representations of a resource's time capacity in accordance with another implementation.
Like reference symbols in the various drawings indicate like elements.
Referring to
The resource planning application 122 is capable of receiving requests for a resource's time. For example, a consulting firm may use the resource planning application 122 to manage the schedules of consultants (resources). In such a situation, a client or a scheduling manager may request that a particular consultant—any consultant having particular qualifications—work on project for a certain number of hours. The resource planning application 122 may receive non-concrete requests that include a date range and the estimated amount of time needed from the resource, but does not include concrete date and time facts. For example, the non-concrete request may ask for a consultant to work for forty hours (i.e., the estimated amount of time) on a project at any time in the month of January (i.e., date range of January 1-31). This non-concrete request may be later refined by a subsequent concrete request, which specifies concrete date and time facts to reserve at least a portion of the resource's time that was originally requested by the non-concrete request. Continuing with the previous example, the concrete request may ask for the consultant to work on a particular aspect of the project for eight hours on January 15 during the time slot of 8:00 AM to 4:00 PM, thus permitting the remaining thirty-two hours from the original request to be served on other days in January. By permitting the resource's time to be initially reserved with a non-concrete request and then later refined with a concrete request, the resource's time may be scheduled in an efficient manner without over-scheduling or double-booking.
Still referring to
In some implementations, the computer system 100 may be a server system and the remote computer system(s) 170 may be remote workstations with which the server system 100 maintains network connections. The server system 100 includes memory that has the resource planning application 122 and the resource database 124 stored thereon. The resource planning application 122 and the resource planning application 172 of the remote workstation system 170 may receive information from the database 124 and likewise transmit information to the database 124. Such an implementation may be used, for example, by businesses where more than one manager or human resources professional has the authority to schedule a worker's time. In such circumstances, that worker's availability information is stored in the resource database 124, and each manager may use a personal workstation system 170 to schedule a portion of that worker's available time using a resource planning application 172. Because all of the resource planning applications 172 (at the different workstation systems 170) receive information from one resource database 124 on the server system 100, a manager at one workstation system 170 may have access to the worker's time availability information as modified by another manager on another workstation system 170. In one example, a manager that intends to schedule a service technician to work in a technical support call center on either Thursday or Friday would be able to know that the service technician was previously scheduled by a different manager to work as a field service technician on Thursday.
FIGS. 2A-C are a conceptual example illustrating operations in a resource planning application. Particularly, these figures show how a non-concrete request for a resource's time may be received and scheduled, followed by the receipt and scheduling of a concrete refinement thereof. In this example, the resource's total availability over three days—here, June 10, 11, and 12—is schematically illustrated in date range 200. The number of hours that can be scheduled each day are measured by the horizontal axis 210—in this example, the resource is available for eight hours each day (8:00 AM-1:00 PM). The amount of the resource's capacity that is being used is measured against the vertical axis 220, in this example marked with 0% and 100%) levels. Such characterizations of the resource's available time may be included with the availability information of the resource database 124 or may be implemented by the electronic schedule for that resource.
In the graphic representation of the resource's capacity, the resource would be fully utilized if scheduled to 100% capacity for each day. For example, if a professional consultant (a resource) is available for eight hours on June 10, and a client requests that the consultant work on a project for eight hours that day, the resource is fully utilized (100%) capacity. On the other hand, if the consultant is available for eight hours on June 10, but no clients have requested a portion of the consultant's available time, the resource is not fully utilized for that day (0% capacity). If a client has requested the consultant to work on a project that requires only four hours on June 10, the impact on the consultant's availability would be equivalent to the resource being used at 50% capacity for that day ([4 hours of scheduled time]/[8 hours of available time]=50% use of total availability). Thus, the consultant would be able to spend four hours on the client's project while the remaining four hours would be available for another work project or, if no other project is scheduled, for doing the nonclient-related work (possibly, with no direct revenue to the business).
Referring to
Referring to
Referring to
When the non-concrete request (sixteen hours) is refined by the concrete request (eight hours), there are eight hours remaining from the non-concrete request. These hours need to be distributed in the date range 200 to give a realistic idea of how much of the resource's capacity is still available. If the remaining eight hours were distributed evenly throughout the three-day range 200, the resource would be scheduled in excess of its 100% capacity on June 11. The remaining eight hours are therefore scheduled while taking the portion 240 from the existing concrete assignment into account. That is, the eight hours of concrete assignment scheduled on June 11 are subtracted from the resource total availability, and the remainder of the non-concrete request (eight hours) is distributed elsewhere in the date range 200. In so doing, the resource planning application accounts for the portion 240 of time reserved by the concrete request and modifies the resource's availability information. Then, the resource planning application redistributes the remaining eight hours into portions 251 and 252 using the modified availability information. Thus, the resource planning application schedules the non-concrete portions 251 and 252 into the electronic schedule, but not in the time slots reserved by the concrete request.
As shown in
A non-concrete request can be handled also when a portion of the resource's time is already reserved due to a previously-accepted concrete request. The previously described FIGS. 2A-C were a conceptual example illustrating how a non-concrete request for a resource's time may be received and scheduled, followed by the receipt and scheduling of a concrete refinement thereof. FIGS. 3A-C are similar in that the number of hours that can be scheduled each day are measured by the horizontal axis 310, but in this example, the resource is available for four hours each day (12:00 PM-4:00 PM). FIGS. 3A-C are also similar to the previously described FIGS. 2A-C in that the amount of the resource's capacity that is being used is measured against the vertical axis 320.
As shown in
Referring to
Referring to
As shown in
After scheduling the concrete refinement in the electronic schedule, the resource planning application redistributes the remaining three hours from the non-concrete request (seven hours) that were not accounted for by the concrete refinement (four hours). The application does not distribute the remaining three hours into three 1-hour portions (one portion for each day), which would cause the resource to be overbooked on August 13 (scheduled at 125% capacity). Rather, the resource planning application accounts for the portion 340 reserved by the concrete refinement and the previously-accepted portion 325 reserved by the separate concrete request by updating the resource's availability information. Then, the resource planning application redistributes the remaining three hours into portions 351 and 352 using the updated availability information. Thus, the resource planning application schedules the non-concrete portions 351 and 352 into the electronic schedule, but not in the time slot reserved by the previously-accepted concrete request (12:00-3:00 PM on August 12) or by the concrete refinement (12:00-4:00 PM on August 13). In this example, the remaining three hours from the non-concrete request are distributed into a portion 351 on August 12 and a portion on August 14 that have equal heights on the vertical axis 320.
The graphic representations of the resource's capacity in FIGS. 2A-C and 3A-C provide examples of receiving non-concrete requests for a resource's time and receiving subsequent concrete refinements, but the invention is not limited to such examples. Many implementations of the invention may receive the non-concrete requests and the subsequent concrete refinements and then distribute the time differently from the examples described above.
Referring to
Optionally, the method 400 may also include receiving in step 420 all time slots in which the resource is available within the specific date range. Depending on the type of availability information stored in the resource database or the format of the electronic schedule, the resource's availability of time may be maintained as a set of time intervals. For example, the resource database may store the resource's availability information in fifteen-minute intervals (e.g., 8:00-8:15 AM, 8:15-8:30 AM, . . . , 4:45-5:00 PM) such that an assignment may be scheduled to occupy one or more of these intervals. In such an implementation, the resource planning application may receive all unassigned time slots in the specific range, which may be combined to reflect the resource's total availability in that date range.
The method 400 further includes receiving in step 430 a second scheduling request that is a refinement of the first scheduling request and includes a concrete request for a portion of the requested time in a specific time slot of the resource's available time. Continuing with the previous example in which the first scheduling request was for sixteen hours within the dates of July 1-8, the second scheduling request may include concrete date and time facts such as a request for eight hours (out of the originally requested sixteen hours) to be scheduled on July 2 from 12:00-8:00 PM. In this implementation, the resource planning application may refer to the resource's availability to verify that the resource has sufficient capacity on July 2.
The method 400 includes scheduling in step 440 in an electronic schedule the portion of the requested time in the specific time slot according to the second scheduling request. Referring the previous example, the concrete request included a request for eight hours on July 2 from 12:00-8:00 PM, and that time slot would be assigned in the electronic schedule so as to reserve that interval of time according to the second scheduling request.
The method 400 also includes scheduling in step 450 in the electronic schedule the remaining portion of the time requested by the first scheduling request. The remaining portion of time is scheduled within the specific date range, but not in the specific time slot that was scheduled according to the second scheduling request. In one implementation, the resource planning application may receive an update of all time slots in which the resource is available within the specific date range, yet the specific time slot is not included in this updated set because it was reserved according to the second scheduling request. As such, the remaining portion of the time requested by the first scheduling request may be distributed into this set of available time slots without scheduling the resource to operate at a capacity in excess of 100% on any given date. Continuing with the previous example, the remain eight hours (that was not accounted for in the second scheduling request) would be scheduled into the electronic schedule between July 1 and July 8, but not in the specific time slot (July 2 from 12:00-8:00 PM) reserved according to the second scheduling request.
The previously described implementations of the invention refer to the resource's time in terms of hours on a given date, but the invention is not limited to such implementations. Rather, a resource planning application may schedule the resource's time in terms of seconds, minutes, hours, shifts, days, or any other suitable time units.
In addition, some implementations have been described to include a professional consultant or a service technician as the “resource” that has available time. The resource planning application is not limited to such implementations. For example, the resource may be a machine, a person such as a worker, a tool, a workstation, or any other resource that may be fully utilized by efficient scheduling.
The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the invention can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
The invention can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
A number of implementations of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other implementations are within the scope of the following claims.