Large organizations frequently have a multitude of projects ongoing at any one time. Project and portfolio management (PPM) tools have been developed to help these organizations in managing resources, e.g., time, people, money, equipment, etc., for their various projects. HP PPM Portfolio Management, available from Hewlett-Packard Company, Palo Alto, Calif., USA, is one example of a PPM tool.
Oftentimes, PPM tools offer the ability to enter an indication of project health, or to calculate an indication of project health using business rules, for each project. However, manually entering an indication of project health, or calculating an indication of project health using business rules, each suffer limitations in assessing project health.
For the reasons stated above, and for other reasons that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for alternative methods and apparatus for assessing health of projects.
In the following detailed description of the present embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments of the disclosure which may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the subject matter of the disclosure, and it is to be understood that other embodiments may be utilized and that process or mechanical changes may be made without departing from the scope of the present disclosure. The following detailed description is, therefore, not to be taken in a limiting sense.
Projects that are delivered late, run over budget and/or fail to meet customer or client expectations can have significant monetary and reputation costs. Potential delivery failure is often undetected by, or hidden from, management. Furthermore, projects can move from healthy to critical rapidly and without notice. Consequently, escalations may not occur until projects reach a critical state. Without advanced warning of critical situations, leadership may be unable to be proactive and take mitigating or preventative actions to reduce the number of critical situations or their severity.
Project and Portfolio Management (PPM) tools allow management to view the health of projects. For example, the health of a project may be represented via red/amber/green color indicators, where green may represent a healthy project, amber may represent a project in trouble, and red may represent a project in a critical state. Other indicators may also be used, such as a scale of 1 to 10 or the like representing various levels of health. Indicators may also be used to represent different aspects of project health. In addition to an indicator representing overall project health, there may also be indicators for issue health, schedule health, cost health or health of some other project portion. Project health typically may be entered manually or it may be calculated using business rules.
With the manual process of assessing project health, the health status may be updated after review of the project, typically by the project manager. This approach has several limitations. For example, such manual processes may not provide early prediction of delivery failure for the project. Human error may also affect the assessment, e.g., a project manager, especially an inexperienced one, might not notice that there is a problem at the time of assessment. Such manual assessments are also subjective and may be inconsistent between different assessors. Similarly, it may be difficult to do a finer-grained assessment of a project's health manually, i.e., with more granularity than a red, amber or green health status, given a project's complexity. In addition, while the minutiae of the project data may indicate trouble, such interpretation of the minutiae may not be apparent to, or feasible for, a project manager. The frequency of assessing the health of projects may be random and sporadic if performed manually. And manual assessment takes up management time and, therefore, may incur significant monetary cost.
With the business rule process of assessing project health, business rules, often manually entered, examine and combine the values of a variety of project metrics, such as the number of issues raised, milestones missed or the ratio between actual and planned costs or effort hours. This approach also has limitations. For example, it may require expert knowledge to create the rules and maintain them, which can be time consuming and costly. It may be difficult, if not impracticable, to go through and analyze thousands of projects in order to construct accurate rules. And while default rules can be provided by the PPM tool, or even by a central project management office, these may not be the best fit for a particular organization, or a particular department or subdivision of an organization. In rapidly changing business environments and technology, these rules can become outdated, making them inaccurate in assessing project health. And while some PPM tools provide the ability to utilize business rules to assess project health, in practice, the facility to apply business rules in PPM tools is not always used, with project and portfolio management often resorting to manually entering project health in lieu of developing adequate rules.
Various embodiments described herein include methods of assessing health of projects using classifiers. Machine learning research has led to classifiers, such as statistical linear classifiers, capable of making a classification decision on the basis of a set of observed examples, i.e., training data. Statistical linear classifiers do this by determining the value of a linear combination of features of interest in relation to the training data. Examples of statistical linear classifiers might include spam filters. Other examples of classifiers include quadratic classifiers, kernel estimation classifiers, Bayesian network classifiers, k-nearest neighbor (kNN) classifiers, etc. Classifiers are well understood in the art and the embodiments are not limited to a specific classifier.
In general, for various embodiments, classifiers are trained with historical data, i.e., the training data, taken over a number of time intervals, for a number of projects. A health score is assigned to each project at each time interval. The time intervals may be periodic, e.g., daily or weekly, or they may be variable, e.g., taken at project milestones or other non-periodic basis. In addition, the time intervals may be the same for all projects of the training data, or one or more projects of the training data may use different time intervals than one or more other projects of the training data.
The health score of each given project at each given time interval is deemed to be correct. For example, the health scores can be manually verified or calculated using business rules. Because the classifiers are trained with historical data, the health scores can take into account the ultimate success or failure of the project. For example, although a business rule calculation, or a manual verification made without the advantage of hindsight, may determine the project health to have a particular value at a particular time interval, that particular value might be adjusted up or down based on the ultimate level of success or failure, respectively, of that project at its final time interval.
The training data may be randomly selected over a broad range of projects. Alternatively, the training data may be tailored to one or more specific types of projects. Thus, a classifier could be trained for a specific industry, department, technology, etc., rather than generic projects. A classifier could be pre-trained with data not necessarily of an organization intending to use the classifier. Because classifiers continue to learn through additional data, even pre-trained classifiers will tend to adapt themselves to the environment in which they are used. Thus, while two different entities may start out with the same pre-trained classifier, the classifier for each entity will tend to become more accurate at classifying that entity's projects as that entity enters additional data into the classifier.
In various embodiments, a project (or portions of a project, or a portfolio of projects) is viewed as a set of “features” that describe it and, optionally, its history. These features can represent the kind of data that may be collected in a PPM system, or the kinds of attributes that may be included in their business rules. However, project features are not limited to either of these and can include any attribute of a project that can be either quantified or classified.
Some features may not change over the project's lifetime (e.g. project type, name, start date, etc.), while others may (e.g., the amount of time spent working on each item so far, the number of issues raised, departments involved, etc.). A feature can also be a relationship between other features. For example, planned values such as cost, effort or staffing can be compared to actual values, and the discrepancy used as a feature. A feature can further be a delta between some feature at the current time and that feature at a previous time. Furthermore, a feature can be a vector representing values of a project metric or attribute over time.
For various embodiments, a classifier is initially trained using data that includes, for each project, and for a number of time intervals, the set of features and the correct (i.e., deemed to be correct) classification of the metric or indicator of interest, for example, a health indicator. The classifications in the training data may, for example, have been produced manually, or using existing business rules, or by some other means.
For a project in progress, the classifier may take project features and map them directly to the desired metric or indicator, e.g., project health. The classification may be a category, such as red or amber or green for a health indicator, or it may be finer grained, up to and including the point where it is possible to rank all projects according to their classification from healthiest to least healthy. The classification may also represent a prediction of the desired metric for a future time period.
Automatic re-classification can be triggered by various events, for example, time or a change in the value of one or more project features. Such trigger events can be configured by a system administrator or other user. For some embodiments, the metric classification produced by the trained classifier can be manually overridden. The classifier can be configured to re-train upon trigger events including such updated, manually-confirmed data.
Some embodiments allow for configuration of which metrics will be calculated and tracked for a given project, or group of projects. Examples are health metrics such as overall project health, issue health, schedule health, cost health, or other metrics.
One or more classifiers may be utilized in a PPM system, and each may be trained on its own particular set of features. The classifiers may, optionally, be arranged in layers. For example, an overall project health classifier may have as input features the output from a schedule health classifier, an issue health classifier and a cost health classifier. Similarly, a portfolio health classifier, concerned with a portfolio of one or more projects, may have as input the output from the overall project health classifier.
In general, features may be selected to have some relationship to whether a project is considered successful or not, e.g., difference between planned and actual cost or time, number of milestones met, type of project, size of project, departmental or geographic spread of participants, etc. However, embodiments described herein permit the use of virtually any definable feature to train a classifier. A trained classifier would often be able to indicate which features have little or no statistical correlation to the desired metric, and those features could then be removed from consideration. Examples of additional features include whether a project is behind schedule, e.g., when completed work (earned hours) is less than scheduled work (planned hours); whether a project is over accomplished hours, e.g., when actual hours exceed completed work (earned hours); whether a project is over budget, e.g., when actual cost exceeds completed cost (earned value); and whether a project is over budget billable, e.g., when billable cost exceeds the completed cost billable (earned value billable).
The computing device 102 may represent a variety of computing devices, such as a network server, a personal computer or the like. The computing device 102 may further take a variety of forms, such as a desktop device, a blade device, a portable device or the like. Although depicted as a display, the output devices 104 may represent a variety of devices for providing audio and/or visual feedback to a user, such as a graphics display, a text display, a touch screen, a speaker or headset, a printer or the like. Although depicted as a keyboard and mouse, the user input devices 106 may represent a variety of devices for providing input to the computing device 102 from a user, such as a keyboard, a pointing device, selectable controls on a user control panel, or the like.
Computing device 102 typically includes one or more processors 108 that process various instructions to control the operation of computing device 102 and communicate with other electronic and computing devices. Computing device 102 may be implemented with one or more memory components, examples of which include a volatile memory 110, such as random access memory (RAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM) and the like; non-volatile memory 112, such as read-only memory (ROM), flash memory or the like; and/or a bulk storage device 114. Common examples of bulk storage devices include any type of magnetic, optical or solid-state storage device, such as a hard disc drive, a solid-state drive, a magnetic tape, a recordable/rewriteable optical disc, and the like. The one or more memory components may be fixed to the computing device 102 or removable.
The one or more memory components are computer-usable media to provide data storage mechanisms to store various information and/or data for and during operation of the computing device 102, and to store computer-readable instructions adapted to cause the processor 108 to perform some function. One or more of the memory components contain computer-readable instructions adapted to cause the processor 108 to perform methods in accordance with embodiments of the disclosure. One or more of the memory components contain a data set for use with embodiments of the disclosure. As used herein, a computer-usable medium is a tangible, non-transitory medium in which data may be stored, and from which stored data may be later retrieved. Although the computing device 102 is depicted to be a single entity in
Where health of one or more sets of projects, is of interest, each set containing one or more projects, a portfolio classifier 228 may be added. The portfolio classifier 228 receives the output of the project health classifier 226 as input. In addition to receiving input from the project health classifier 226, the portfolio health classifier 228 may further receive input from a data set, such as described with reference to
The following examples will be used to provide additional detail as to how a classifier may be trained in accordance with embodiments described herein, and how such a trained classifier might be used to assess the health of a given aspect of a project. In a first example, one or more completed projects are split into a number of time intervals {t1, t2, . . . , tj}, for example, weeks. As noted above, the choice of time interval is configurable and at the discretion of a system administrator or other user. For each of the completed projects, p, a training element, ep,t, (Eq. 1) is generated for each interval t that the project was active. The data for each training element is the feature vector Fp,t (Eq. 2) that represents selected features of the project, and the correct (i.e., deemed to be correct) classification, cp,t of the metric of interest, e.g., project health:
e
p,t=(Fp,t, Cp,t) (Eq. 1)
The complete training set consists of such a training element for all intervals t and for all of the completed projects, p. This set is used to train a classifier.
For projects in progress, at any given interval t, the trained classifier is given the feature vector Fp,t, representing the selected features of the project, and provides a classification of the metric, cp,t, e.g., project health.
In this embodiment, the feature vector, Fp,t, represents a snapshot of project p at time t, and includes all n relevant feature values for project p at time t:
F
p,t
=f
p,t=(f1,p,t, f2,p,t, . . . , fn,p,t) (Eq. 2)
In a second example, project history is utilized to extend the embodiment of the first example. In this manner, the data for each training element, ep,t (Eq. 1), includes the history of the project up to and including time t. For projects in progress, the trained classifier is given the history of the project up to and including the current time, Fp,t (Eq. 3), and provides a classification of the desired metric, cp,t, for the current time period, t. For example, compared to the first example, the feature vector for each time period, Fp,t, is changed to:
F
p,t=(fp,1, fp,2, . . . , fp,t) (Eq. 3)
In a third example, the data for each training element, ep,t (Eq. 1), represents how individual project features are changing at time t, along with the correct (i.e., deemed to be correct) classification of the desired metric, cp,t. The feature vector, Fp,t (Eq. 4), represents the set of deltas of features of the project between the current time, t, and a previous time, t−x. The time t−x may represent an immediately preceding time period, i.e., t−1, or some other preceding time period, i.e., t−2, t−3, t−4, etc. Thus, compared to the first example, the feature vector for each time period, Fp,t, is changed to:
F
p,t=((f1,p,t−f1,p,t−x), (f2,p,t−f2,p,t−x), . . . , (fn,p,t−fn,p,t−x)) (Eq. 4)
For projects in progress, the trained classifier is given the deltas of the project features for that given time, Fp,t (Eq. 4), and provides a classification of the desired metric, cp,t.
In a fourth example, a prediction of the metric for the next time period is provided. The data for each training element, ep,t (Eq. 5), includes the history of the project up to time t−1, and the correct (i.e., deemed to be correct) classification of the desired metric (e.g., project health) in period t.
e
p,t=(Fp,t−1, cp,t) (Eq. 5)
F
p,t−1=(fp,1, fp,2, . . . , fp,t−1) (Eq. 6)
For projects in progress, the trained classifier is given the history of the project up to the current time, and provides a projected classification of the desired metric, cp,t+1, in the next, i.e., future, time period. Prediction in this manner can be used to complement the prior three examples, such as to provide an early warning of project health.
Although the preceding four examples were discussed in relation to project health, training and use of classifiers for other health aspects, such as schedule health, issue health and cost health (e.g., addressing portions of a project), and portfolio health (e.g., addressing sets of one or more projects) can be performed in a like manner, with features selected to address the specific health aspects. Furthermore, where more than one classifier is used, such as depicted in
Although specific embodiments have been illustrated and described herein it is manifestly intended that the scope of the claimed subject matter be limited only by the following claims and equivalents thereof.