A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates generally to methods and systems for evaluating and viewing data for project management.
Product and project development today poses unprecedented challenges. To stand out and succeed in competitive and crowded marketplaces, products must be continuously innovative and fresh. As short-lived market opportunities present themselves, product development efforts that once required years now must be executed in a matter of months.
In most of the established project management methodologies being used today, there are three areas that are deemed most important to be measured and managed in order to evaluate the health/status of a project:
For the first 2 items (Schedule and Cost), there are well defined measurement models that have been implemented by most of the project management tools available in the market today.
For schedules, a Schedule Performance Index (SPI) can be established as a measure of progress achieved compared to planned progress, e.g., where:
Schedule Performance Index=(Earned Value)/(Planned Value)
The Schedule Performance Index reports on how efficiently the project is progressing compared to planned progress.
For costs, a Cost Performance Index can be established that provides a measure of the value of work completed compared to the actual cost spent on the project, e.g., where:
Cost Performance Index=(Earned Value)/(Actual Cost)
The Cost Performance Index reports on how much earning has occurred for each dollar spent on the project.
However, conventional project management systems do not have an effective or standard way to implement a measurement model for the quality of a project. This is because conventional systems do not have an effective way to handle multiple types of quality values that may need to be considered for the quality measurement.
Therefore, there is a need for an improved method and mechanism to define and measure a quality performance index for multiple types of quality values.
Some embodiments of the invention provide a method and mechanism to implement a framework for defining multiple Quality Variables, where each quality variable corresponds to its own “weight” (influence factor), measurement definitions, control range values and normalization formula. The framework allows for calculating a composite Quality Performance Index (QPI) which is flexible enough to handle any number of quality variables.
Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims. Both the foregoing general description and the following detailed description are exemplary and explanatory, and are not intended to be limiting as to the scope of the invention.
The drawings illustrate the design and utility of embodiments of the present invention, in which similar elements are referred to by common reference numerals. In order to better appreciate the advantages and objects of embodiments of the invention, reference should be made to the accompanying drawings. However, the drawings depict only certain embodiments of the invention, and should not be taken as limiting the scope of the invention.
Various embodiments are described hereinafter with reference to the figures. It should be noted that the figures are not drawn to scale and that the elements of similar structures or functions are represented by like reference numerals throughout the figures. It should be noted that the figures are only intended to facilitate the description of the embodiments. They are not intended as an exhaustive description of the invention or as a limitation on the scope of the invention. In addition, an illustrated embodiment need not have all the aspects or advantages shown. An aspect or an advantage described in conjunction with a particular embodiment is not necessarily limited to that embodiment and can be practiced in any other embodiments even if not so illustrated. Also, reference throughout this specification to “some embodiments” or “other embodiments” means that a particular feature, structure, material, or characteristic described in connection with the embodiments is included in at least one embodiment. Thus, the appearances of the phrase “in some embodiment” or “in other embodiments” in various places throughout this specification are not necessarily referring to the same embodiment or embodiments. In addition, for the purposes of illustration and explanation, the present disclosure is described in various embodiments in the context of enterprise resource planning (“ERP”) applications. It is noted, however, that the invention is not limited in its scope to ERP applications, and indeed, may be applied to other types of applications as well.
The database corresponds to any type of computer readable mediums or storage devices. The computer readable storage devices comprise any combination of hardware and software that allows for ready access to the data within database. For example, the computer readable storage device could be implemented as computer memory or disk drives operatively managed by an operating system.
The system includes a framework for defining multiple Quality Variables, where each quality variable corresponds to its own “weight” (influence factor), measurement definitions, control range values and normalization formula. The framework allows for calculating a composite Quality Performance Index (QPI) which is flexible enough to handle any number of quality variables.
The measurement of actual values for these variables can be implemented in any suitable way. For example, the test run and test pass percentage can be captured directly from a test reporting system and the defect discovery and critical defects percentage can be captured from a defect reporting system and/or bugs database.
Conventional systems do not provide any defined way to measure planned values for these variables (which is used to calculate the QPI as described in more detail below). Embodiments of the invention provide an effective framework for the project managers to quickly define the planned values. The system receives some or all of the following items of information for each Quality Variable (e.g., provided by a project manager):
At 204, normalized data is determined for each quality variable. In some embodiments, for each individual Quality Variable to be included in the Quality Performance Index (QPI) calculation, the measured value is normalized on a scale similar to Schedule and Cost Performance Indices:
In some embodiments, the QPI for a quality variable is calculated using the following equation:
Quality Performance Index=(Actual Value Measured)/(Planned Value)
Thereafter, at 206, a composite/overall quality performance index value is obtained. The composite value combines the normalized data for the individual quality variable values, where the combination takes into account any weights that have been established for the quality variables.
As an illustrative example of an embodiment of the invention, consider how the quality performance index can be calculated for the quality variable pertaining Test Run Percentage. The following sets forth an example for the weight, measurement definitions, control range values, and normalization configuration for this quality variable:
The following shows an example of pseudocode utilized to implement a formula that can be used to calculate the planned value for the Test Run Percentage on any given day:
The following chart illustrates examples of planned values based on the data listed in above table:
As noted above, the Quality Performance Index for Test Run Percentage on any given date can be calculated as:
Quality Performance Index=Actual Value Measured/Planned Value
The QPI can similarly be calculated for each of the plurality of Quality Variables. The overall QPI (composite Quality Performance Index) is calculated using the weighted average formula.
For example, assume that there are four Quality Variables are denoted by Q1, Q2, Q3, Q4. The respective individual QPIs calculated using the model above are QPI1, QPI2, QPI3, QPI4. The respective weights for the four quality variables are W1, W2, W3, W4. The following pseudocode utilized to implement the formula can be used to calculate the overall/composite Quality Performance Index:
[(QPI1*W1)+(QPI2*W2)+(QPI3*W3)+(QPI4*W4)]
Where W1+W2+W3+W4=1
With this formula, there is a potential that one Quality Variable might have an overbearing effect on the calculation of the overall QPI. In spite of the weights, there can be cases where the QPI for one quality variable can be so high that it might mask the concerns on one or more other quality variables. Hence, a modified version of the pseudocode used to implement the formula above was used for implementation in some embodiments:
The formula listed above is an example for an implementation where a set of four quality variables was used. However, as listed previously, the framework is flexible enough to be extended to any number of quality variables.
The following is an example of pseudocode used to implement a generic formula for n quality variables:
The collection engine 401 is configured to collect information needed to perform quality analysis. The collection engine may be configured to retrieve threshold/lower limit values for a quality variable, upper limit/pass criteria for a quality variable, date ranges for a quality variable, actual measured values for a quality variable, normalization rules for a quality variable, and weight distribution rules for calculating composite weighted average quality performance index (QPI) values, which will be described in greater detail below.
Additionally, the collection engine 401 may be configured to schedule the different tasks needed to generate a composite quality performance index value including scheduling when QPI calculations for quality variables are to be performed, when normalization of QPI of quality variables are to be performed, when composite weighted average QPI values are to be calculated, and when composite weighted average QPI values are to be presented. The collection engine 401 may schedule such tasks based on an prioritization scheme defined by a user, or may schedule such tasks in a load-balanced manner to efficiently utilize resources for generating a composite quality performance index value.
The calculation engine 403 may be configured to identify quality variables and to calculate a quality performance index (QPI) for a quality variable using information collected by the collection engine.
Initially, the calculation engine identifies a quality variable for which a QPI is to be calculated as shown at 501. The quality variable will be associated with a number of parameters that are used for calculating a QPI. For example, a quality variable may be associated with a threshold/lower limit, a pass criteria/upper limit, and a date range.
The calculation engine first retrieves the threshold/lower limit for the quality variable as shown at 503. For example, the quality variable may pertain to a test run percentage, where the threshold/lower limit for the test run percentage is 0%, which indicates that a minimum number of tests that are run are 0%.
The calculation engine may then retrieve the pass criteria/upper limit for the quality variable as shown at 505. For example, where the quality variable pertains to a test run percentage, the pass criteria/upper limit may be 100%, which indicates that 100% of tests must be run to meet the pass criteria.
Next, the calculation engine may retrieve a date range for the quality variable as shown at 507. The date range indicates the start date and end date for a particular project having that quality variable. For example, the date range may indicate that the project is to start on Jan. 1, 2013 and end on Jun. 30, 2013.
The calculation engine then utilizes these parameters to calculate a planned value for a quality variable as shown at 509. The planned valued provides an indication of the projected value of a quality variable at a given date. For example, the planned value may indicate that on Feb. 21, 2013, the projected percentage of tests that are to have been run is 17%.
The planned value may be calculated using any number of different formulas. One example of pseudocode utilized to implement a formula that may be used for calculating the planned value for a quality variable can be found below:
By using the formula above, the planed value for the percentage of tests run quality variable will be 17% as of Feb. 1, 2013. The planned value will then be compared to the actual measure value for the quality variable for calculating a QPI for the quality variable, which will be discussed in additional detail below.
Once the planned value for the quality variable is calculated, then the actual measured value for the quality variable is retrieved as shown at 511. The actual measured value for the quality variable represents the measured value of the quality variable at a given date, rather than the projected value of the quality variable at the given date.
The QPI for the quality variable may then be calculated using the planned value for the quality variable and the actual measured value of the quality variable as shown at 513. For example, the QPI may be calculated by dividing the actual measured value for the quality variable on a given date by the planned value for the quality variable on the given date. Where the actual measured value of the projected percentage of tests run quality variable is 34% as of Feb. 1, 2013 and the panned value of the projected percentage of tests run quality variable is 17%, then the QPI for that quality variable will be 2.
The calculation engine then determines whether any additional quality variables remain as indicated at 515. If there are quality variable remaining to be calculated, then the calculation engine returns to 501 where it identifies another quality variable to be calculated. If there are no additional quality variables to be calculated, then the calculation engine has completed its calculations for a given project and ends as shown at 517. After calculating QPIs for any number of quality variables, the calculation engine may store those values for additional processing.
A normalization engine 405 may also be implemented within the framework for quality analysis to normalize QPIs for quality variables. Normalization involves adjusting a QPI for a quality variable to fit a common scale, such that different QPIs for different quality variables may be compared against each other.
The normalization engine then retrieves normalization rules for the quality variable as shown at 603. Each quality variable may be associated with a set of normalization rules for normalizing the QPI associated with the quality variable such that multiple QPIs for different quality variables may be compared using a common scale. Depending on the quality variable being normalized, a different set of normalization rules may be applicable.
Once the normalization engine retrieves the normalization rules for the quality variable, it applies the normalization rules to the QPI for that quality variable to generate a normalized QPI for that quality variable as shown at 605. The normalization engine then makes a determination as to whether any other quality variables are to be normalized as shown at 607. If there are additional quality variables to be normalized, then the normalization engine returns to 601 where it retrieves the QPI for another quality variable. If there are no additional quality variables to be normalized, then the normalization engine stores those values for additional processing.
A composite weighted average engine 407 may also be implemented within the framework for quality analysis to generate a composite weighted average QPI for any number of quality variables relevant to the project under evaluation. Generating a composited weighted average QPI involves assigning weights to different quality variables based on their importance to the project under evaluation.
Initially, the normalized QPIs for the quality variables under evaluation are retrieved as shown at 701. The normalized QPIs for the different quality variables were previously calculated and stored by the normalization engine and may be subsequently retrieved by the composite weighted average engine.
The weight distribution rules to be applied to each quality variable may then be retrieved as shown at 703. For example, assume that four quality variables Q1, Q2, Q3 and Q4 are under evaluation and that normalized QPIs of QPI1, QPI2, QPI3 and QPI4 have been calculated for each quality variable. The weight distribution rules may simply indicate that weights W1, W2, W3 and W4 are to be assigned to the respective QPIs and that the composite weighted average QPI is calculated using the following formula: [(QPI1*W1)+(QPI2*W2)+(QPI3*W3)+(QPI4*W4)].
Alternatively, the weight distribution rules may indicate that a modified formula is to be used to limit the potential that one quality variable may have an overbearing effect on the calculation of the overall QPI. Pseudocode for implementing such a formula may look like:
Once the weight distribution rules have been retrieved, then the composite weighted average QPI may be calculated by applying the weight distribution rules to the normalized QPIs for the different quality variables under evaluation as shown at 705. The composite weight average engine may then store those values for additional processing.
Lastly, a presentation engine 409 may be implemented within the framework for quality analysis to present composite weighted average QPI information as well as normalized QPI information for a user. Both a current composite weighted average QPI and historical composite weighted average QPIs may be presented to the user. Similarly, both current normalized QPI information and historical normalized QPI information may be presented to the user.
The presentation engine may then present current and historical composite weighted average QPIs for the project as shown at 803. The presentation engine may present any number of historical composite weighted average QPIs depending on the type of information that the user is looking for.
Next, the presentation engine may retrieve current and historical normalized QPIs for individual quality variables for the given project as shown at 805. The presentation engine may retrieve any number of historical QPIs for individual quality variables depending on the amount of information the user is looking for
The presentation engine may then present current and historical normalized QPIs for individual quality variables for the given project as shown at 807. The presentation engine may present any number of historical composite weighted average QPIs depending on the type of information that the user is looking for.
Therefore, what has been described is an approach that efficiently provides a framework for defining multiple Quality Variables, where each quality variable corresponds to its own “weight” (influence factor), measurement definitions, control range values and normalization formula. The framework allows for calculating a composite Quality Performance Index (QPI) which is flexible enough to handle any number of quality variables.
The present approach provides a composite weighted formula for the QPI that can take into account multiple quality variables (QVs) that need to be measured in order to evaluate the quality on a project. The approach can account for the fact that these different variables have varying influence (weight) on the overall quality over the duration of the project.
In addition, the invention can handle multiple dimensions of measurements, where different quality variables (QVs) correspond to different scales of measurement (e.g. some variables will be measured as % complete, others will be measured as absolute numbers, each variable will have different acceptable ranges of measurements for the project, etc.). These different dimensions of measurements can be normalized in order to calculate a single composite value.
According to one embodiment of the invention, computer system 1400 performs specific operations by processor 1407 executing one or more sequences of one or more instructions contained in system memory 1408. Such instructions may be read into system memory 1408 from another computer readable/usable medium, such as static storage device 1409 or disk drive 1410. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and/or software. In one embodiment, the term “logic” shall mean any combination of software or hardware that is used to implement all or part of the invention.
The term “computer readable medium” or “computer usable medium” as used herein refers to any medium that participates in providing instructions to processor 1407 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1410. Volatile media includes dynamic memory, such as system memory 1408.
Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
In an embodiment of the invention, execution of the sequences of instructions to practice the invention is performed by a single computer system 1400. According to other embodiments of the invention, two or more computer systems 1400 coupled by communication link 1415 (e.g., LAN, PTSN, or wireless network) may perform the sequence of instructions required to practice the invention in coordination with one another.
Computer system 1400 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1415 and communication interface 1414. Received program code may be executed by processor 1407 as it is received, and/or stored in disk drive 1410, or other non-volatile storage for later execution.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. For example, the above-described process flows are described with reference to a particular ordering of process actions. However, the ordering of many of the described process actions may be changed without affecting the scope or operation of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.
The present application claims the benefit of priority to U.S. Provisional Application No. 61/809,622, entitled “METHOD AND SYSTEM FOR IMPLEMENTING A COMPOSITE QUALITY PERFORMANCE INDEX” (Attorney Docket No. ORA130850-US-PSP) filed on Apr. 8, 2013, which is hereby incorporated by reference in its entirety.
| Number | Date | Country | |
|---|---|---|---|
| 61809622 | Apr 2013 | US |