A portfolio of projects may need to be generated based on a dynamic allocation of available resources. The resources may include temporal, labor, and economic constraints. Generally, several hundreds of large and complex projects may need to be planned and managed, and may typically involve thousands of employees and contractors. Resources available to plan and manage such projects may need to be dynamically adaptable based on several factors, such as changing business priorities, unstable economic conditions, changing labor capacity, changing budgetary constraints, and so forth.
Businesses are frequently faced with a task of prioritizing, selecting and assigning multiple projects, while optimizing utilization of available resources, such as, human resources, budgetary constraints, and time constraints. Generally, several hundreds of large and complex projects may need to be planned and managed, and may typically involve thousands of employees and contractors. Such optimization may need to be performed under constantly changing constraints. The changing constraints reflect the dynamic consumption of resources (budget and labor) over time. For example during the ramp-up phase of a project architects, business consultants, and certain developers and testers are required. During the development phase mostly developers are required. Finally, at the ramp-down phase of the project, testers and business consultants are required.
Business priorities may be constantly shifting to meet changing market conditions. Some proposed projects may have clear tangible financial benefits, including lowered costs and/or increased revenue. Other projects may not have a direct dollar impact but may still be very important (e.g. improving customer satisfaction, addressing legal and/or regulatory requirements, or investing in R&D that could have huge future payoffs). Some projects may have a clearly defined business sponsor ranking that may or may not correspond to a quantifiable “benefit” valuation. Various weighting schemes may be utilized to assign value or scoring to projects, based on a range of characteristics such as return of investment (“ROI”), strategic alignment, or project duration. Additionally, there may be a wide range of practical and/or political implications with regards to trade-offs and choices that must be made when selecting any given project portfolio.
Many factors may be considered during portfolio planning, such as resourcing, available funding, corporate priorities, sponsor attitudes, and/or business impact. An inability to efficiently optimize over such factors may translate into millions of dollars of lost opportunity. Existing practices to prioritize, select and assign project portfolios are typically manual, and therefore cumbersome, requiring ‘Planners’ to navigate through multiple spreadsheets—with potentially inconsistent data.
Generally, optimization of project portfolios may be difficult since available resources may be scarce, there may be a large number of combinations of projects to select and schedule optimally within the limited available resources. Additionally, there may be several conflicting objectives to be considered when selecting a portfolio. Accordingly, there may be a need to optimize the trade-offs between these conflicting objectives. Generally, optimization of a project portfolio may be a manual and time consuming process, with a lot of room for sub-optimal results leading to waste and delays in projects. Many potentially useful portfolio scenarios may not be considered due to the enormous complexity of manipulating dozens or hundreds of projects involved, along with all their interlocking dependencies and resource requirements. With an increasing demand to increase responsiveness to changing business needs, time may be of essence to comprehensively examine all the possibilities. A lack of analytical methods may exacerbate such problems, may further prevent optimization, and may have a negative impact on a business in terms of lowering productivity and missing windows of opportunity for deploying high impact projects.
As described in various examples herein, project portfolio generation based on a dynamic allocation of resources is disclosed. These are iterative techniques for selecting a portfolio that better optimizes a portfolio value for the portfolio in consideration of potentially conflicting and competing objectives, while still satisfying constraints. Analytical methods for selection and scheduling of a project portfolio are disclosed, such that the trade-offs among various conflicting objectives are optimized, while multiple constraints are satisfied. These constraints may include, for example, headcount (differentiated by skills and role), budget (differentiated by various types of costs such as, for example, IT labor, business labor, and non-labor), project precedence, project initiation and/or completion date windows, and portfolio shaping preferences.
As described herein, project portfolio generation based on a dynamic allocation of resources is disclosed. One example is a system including a data processor, a resource allocator, and a portfolio planner. The data processor accesses resource allocation data including a plurality of projects, a portfolio shaping preference, a plurality of constraints and a plurality of objectives, wherein the resource allocation data is indicative of resources that are potentially available for allocation to the plurality of projects, and activates, based on the portfolio shaping preference, a sub-plurality of the plurality of constraints and a sub-plurality of the plurality of objectives. The resource allocator generates at least one project portfolio based on the sub-plurality of constraints and the sub-plurality of objectives, wherein the at least one project portfolio includes a sub-plurality of the plurality of projects, and is based on a dynamic allocation of the resource allocation data. The portfolio planner schedules the sub-plurality of the plurality of projects, and provides the at least one project portfolio to a computing device via a graphical user interface.
This process may be continued iteratively until a desired portfolio is selected, where portfolios are regenerated using the first and/or second optimization models after, for instance, modifying the constraints, the bounds, and/or the prioritization of the objectives.
In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific examples in which the disclosure may be practiced. It is to be understood that other examples may be utilized, and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims. It is to be understood that features of the various examples described herein may be combined, in part or whole, with each other, unless specifically noted otherwise.
System 100A includes a data processor 104 to access resource allocation data 102. The resource allocation data 102 constitutes a scenario that a decision maker may want to analyze and optimize. Resource allocation data 102 includes a plurality of projects, a portfolio shaping preference, a plurality of constraints and a plurality of objectives, wherein the resource allocation data is indicative of resources that are potentially available for allocation to the plurality of projects. The portfolio shaping preference is a portfolio shaping preference that may be utilized to generate the at least one project portfolio via a resource allocation model. The portfolio shaping preference may include logic and/or steps required before, during, and/or after the resource allocation model is applied. For example, the portfolio shaping preference may perform a time window estimation before the resource allocation model is applied. As another example, the portfolio shaping preference may perform capacity shortage detection during the application of the resource allocation model. Also, for example, the portfolio shaping preference may include provision of suggestions to correct any detected capacity shortage after the application of the resource allocation model. In one example, the portfolio shaping preference may include at least one of a Pareto optimization model (“POM”), a multiple-criteria ranking optimization model (“MCRM”), and a basic optimization model (“BOM”). These portfolio shaping preferences are described in further detail herein. The resource allocation model is the underlying mathematical model that generates feasible solutions by optimizing at least one objective of the plurality of objectives, subject to at least one constraint of the plurality of constraints.
In one example, resource allocation data 102 includes structural data and configurable data. In one example, structural data may include at least one of:
In one example, the configurable data may include:
In one example, the plurality of constraints may include a soft constraint that may be violated. The soft constraint may include, for example, Project Portfolio Mix constraints that may enable the decision maker to shape an optimized portfolio by, for example, defining upper and lower bounds on a percentage (respect to the overall projects selected in a portfolio) of number (cost, or FTE) of selected projects in a particular project category (e.g. investment area, IT-organization, Executive Sponsor). For example, the decision maker may want to ensure that at least 20% of the FTE of selected projects corresponds to R&D investment area, and/or wants to ensure that at least 10% of the selected projects corresponds to Human Resources (“HR”) Senior Vice President Executive sponsor, and/or wants to ensure that at most 30% of the quarterly budget allocated to selected projects corresponds to a particular organization. Accordingly, the decision maker may create a portfolio mix tailored to business requirements.
As another example, the soft constraint may include, for example, Projects Cost Smoothing constraints that may allow the decision maker to smooth a difference between project costs scheduled at some month and project costs scheduled at a following month. When such constraints are applied to labor project costs, they may help ensure appropriate labor utilization.
Also, for example, the soft constraint may include Budget constraints that may ensure that the consumption of budget by the projects selected in the portfolio do not exceed the Budget limits specified. Budget may be differentiated by various types of costs such as, for example, in Information Technology (“IT”) related projects, Labor IT costs, Non-Labor IT costs, Total IT costs, Business costs, and Total costs. As another example, the soft constraint may include Labor Capacity constraints that may ensure that the consumption of headcount by the projects selected in the portfolio do not exceed the Labor Capacity limits specified. FTE may be differentiated by skills and role.
In one example, system 100A may detect an infeasibility of the soft constraint. In one example, system 100A may correct the detected infeasibility of the soft constraint. For example, system 100A may detect and correct budget shortages by attempting to optimize portfolios based on the budget constraints in the resource allocation data 102. As another example, system 100A may detect and correct labor shortages by attempting to optimize portfolios based on the Labor Capacity constraints in the resource allocation data 102.
In one example, the plurality of constraints includes a hard constraint that may not be violated. The hard constraint may include, for example, Project Release and Due dates constraints that may ensure that if the project is selected, the start time of the project will be between the time window defined by the Release and Due dates.
Also, for example, the hard constraint may include project alternatives such as Exclusive Or (“XOR”) constraints that may ensure that at most one project among a set of projects is selected. For example, there may be several alternative options for deploying the same project, and the XOR constraint may be defined over this set of options to enforce selection of at most one of these options. Alternative options of the same project may be defined in terms of FTE requirements, alternative cost structures, time windows of opportunity, and so forth.
In one example, system 100A may detect and correct FTE capacity shortages by attempting to optimize portfolios based on the labor capacity constraints, the XOR constraints, and so forth. In one example, a set of alternative options may be defined to deploy a project, and enforce selection of at most one of such alternative options.
As another example, the hard constraint may include If and Only If (“IFF”) constraints that may ensure that all projects in a Program of related projects are selected or none are selected.
Also, for example, the hard constraint may include decision maker project preference constraints that may ensure that regardless of the optimization objective, either a project is always selected or the project is never selected. Additionally, the Decision Maker may stipulate when a project must start when selected.
As another example, the hard constraint may include Project Temporal constraints ensure that may ensure that a set of related projects follow minimum time lags and/or precedence relations if selected. For example, Project P2 may start after completing 80% of project P1.
The plurality of constraints may be determined based on a type of business, a type of project, and so forth. For clarity of exposition, the following collections of objects may he identified:
Example parameters that may be utilized in the plurality of constraints and the plurality of objectives may be enumerated as follows:
Given a release date λp, duration dp and due date εp of a project p ∈ , plus the minimum time lag δpp′ between a pair of projects (p,p′) ∈ E, a temporal analysis may be performed to obtain time windows of each project. That is, ESp-earliest start, EFp-earliest finish, LSp-latest start, LFp-latest finish of project p.
Example decision variables that may be utilized in the plurality of constraints and the plurality of objectives may be enumerated as follows:
In one example, the plurality of constraints includes Constraint (2-1) that allows the decision-maker to directly select projects; while Constraint (2-2) makes it possible to directly de-select projects.
yp=1 ∀p ∈ U (2-1)
yp=0 ∀p ∈ V (2-2)
The plurality of constraints (3) through (5) shape the mix of projects in terms of organizations, executive sponsors and investment areas. Specifically, Constraint (3-1) enforces the number of projects in IT organization g to be at least θg1 of all the selected projects. Constraint (3-2) states that the percentage of headcount of FTE with role/capability r required by all projects in IT organization g must be no less than θg2 of that required by all the selected projects. Constraint (3-3) ensures that the percentage of budget type b required by all projects in g must be no less than θg3 of that required by all the selected projects. Constraints (4-1) through (4-3) specify these constraints in a similar way with respect to executive sponsors; Constraints (5-1) through (5-3) are for investment areas. The counterparts of these constraints enforcing maximum percentage may be expressed using the upper bound percentages
Σp∈Pyp ∀g ∈ G (3-1)
Σp∈P(yp·Σt=0d
Σp∈P(yp·Σt=0d
Σp∈Pyp ∀s ∈ S (4-1)
Σp∈P(yp·Σt=0d
Σp∈P
Σp∈Pyp ∀a ∈ A (5-1)
Σp∈P(yp·Σt=0d
Σp∈P(yp·Σt=0d
Constraint (6) models the ail-or-nothing constraint for each set of projects m ∈ M. That is, all the projects in m must be simultaneously selected or none of them is selected.
yp=yp′ ∀m ⊂ M, p,p′ ∈ m (6)
Constraint (7) enforces the XOR constraint for each set of projects n ∈ N. That is, at most one of the projects in n may be selected. This constraint makes it possible to select different options of the same project. Suppose a project has a set n of different modes (options) to be executed, which may differ in benefit, duration, and resource usage. The decision-maker would like to select a best option among the |n| alternatives. To support such decision, |n| replicates of the same project may be created, with each replicate carrying the data information associated with the option.
Σp∈nyp≦1 ∀n ⊂ N (7)
Constraint (8) schedules the activities of a selected project to start at exactly one time period, i.e. once started an activity cannot be interrupted. This is also known as the non-preemption assumption. This is a hard constraint. This constraint ensures that a project cannot be interrupted after it is begun. When yp=0, there is no need to schedule project p (its starting time is fixed to be zero). Likewise, Constraint (8-1) ensures that a project (if selected) ends at exactly one time period.
Σt=ES (8)
Σt=EF (8-1)
Constraints (9) guarantees the minimum time lag between a pair of projects (p,p′), i.e. project p′ cannot start until at least δpp′, time units after project p starts, when both p and p′ are selected. This is a hard constraint.
Associated with each Constraint (9) is an if-then type of logical constraint (9-1) implied by (9). That is, when there exists a temporal relationship between a project pair (p,p′) ∈ E, project p′ (the successor) cannot be selected unless project p (the predecessor) is selected. This is a hard constraint.
Constraint (10) satisfies the release date (i.e. the earliest possible starting date) of each project. Feasibility may be achieved even if project p is not selected (yp=0). For projects with fixed time windows, their starting times may be fixed to be their earliest release dates (Constraint 10-1).
Σt=ES (10)
Σt=ES (10-1)
Constraint (11) enforces the due date of each project if the project is selected.
Σt=ES (11)
Constraint (12) models the renewable resource (e.g., FTE headcounts) constraint with varying time-dependent capacities. The left-hand-side computes total requirement of renewable resource r by all the active projects in time period t.
Σp∈Στ=max{ES
Constraint (13) computes the finishing time of each project as a function of its starting time and duration.
Σt=EF (13)
Constraints (14) through (16) specify the domain of decision variables.
xpt ∈ {0, 1} ∀p ∈ , t ∈ {ESp, . . . , LSp} (14)
yp ∈ {0, 1} ∀p ∈ , (15)
zpt ∈ {0, 1} ∀p ∈ , t ∈ {EFp, . . . , LFp} (16)
Constraint (17) computes the absolute value of the difference of projects cost scheduled at month t and month t+1, during months within quarter q. The auxiliary variables capture the absolute value of the difference, where δabqt+>0 if the difference is positive and δabqt−>0 if the difference is negative. The following terms may be added to the appropriate objective function in order to allow cost smoothing during portfolio optimization:
PNLTY*(δabqt++δabqt−)
where PNLTY is an appropriate penalty value for cost smoothing violations.
Σt∈T
In one example, the plurality of constraints includes a time-phased resource constraint. Instead of getting a benefit (reward, positive cash inflow) at one time point of a project (e.g., the beginning or the finish), time-phased benefit is a more general case where benefit may be gained during project execution based on labor constraints (e.g., differentiated by role and capabilities), and budget constraints (e.g., differentiated by various type of costs such as labor IT costs, non-labor IT costs, business costs, and so forth). This is often the case in real life service project delivery, as well as in other industry domains including construction, production and R&D.
For example, a company may receive a nominal payment $1M three months before the project completion, i.e., in Q3. This is illustrated by the numeral “−3”. The company may receive a nominal payment $2M at project completion, i.e., in Q4. This time is illustrated by the numeral “0”. The company may receive a nominal payment $0.5M one month after project completion, i.e., in Q5. This time is illustrated by the numeral “+1”. The company may receive a nominal payment $4M two months after project completion, i.e. in Q5. This time is illustrated by the numeral “+2”.
In one example, to keep the formulation being linear, new time-indexed binary decision variables may be associated with the dummy tasks. For example, let Ψp be a set of benefit periods (e.g., dummy tasks) of project p. Each dummy task ψ ∈ Ψp may have a benefit of πpψ and an offset of opψ relative to the completion of project p. In one example, the offset opψ may be negative, more specifically, opψ ∈ [−dp, +∞). That is, the earliest potential benefit period may be assumed to be the time when the project is started. A binary decision variable zpψt may be defined such that zpψt=1 if and only if dummy task ψ of project p starts at time period t.
Realizing that offset periods relative to project completion times may go beyond a planning horizon T, the planning horizon T may be extended to T′ to cover all possible offset periods. Accordingly, the magnitude of the extended planning horizon, represented by |T′|, may be bounded by the maximum offset
plus |T|. Accordingly,
Based on such factors, the following constraint (18) may compute the start time of a dummy task:
Σt∈T′t·zpψt=Σt=ES, ψ ∈ Ψp (18)
where, for project p ∈ , with
representing a set of candidate projects to be considered, zpψt is the binary decision variable, LSp is the latest start, ESp is the earliest start, dp is a duration, opψ is the offset, and xpt=1 is time indexed binary decision variable. It equals to 1 if project p ∈
starts at time period t; and 0 otherwise.
An objective function maximizing the total time-phased discounted benefit may be expressed as:
MaxΣψ∈Ψ
where the parameter πpψ may be a project valuation related to any type of objective, not necessarily direct and/or indirect financial benefit, and a is a positive discounting factor.
In one example, the plurality of constraints includes a time-phased budget constraint:
Constraint (19) takes care of the time-phased budget constraints with varying budgeting periods and capacities. Each capacity constraint may be enforced based on arbitrarily defined periods q, each of which contains a predefined set of time periods t. This allows the decision-maker more flexibility in terms of planning and capacity rationalization.
In one example, the time-phased budget constraint is different from a time period scale in a planning horizon. A budgeting period may be flexibly defined to be different from the time period scale considered in the planning horizon. For example, suppose the time period is a month, a budgeting period may be defined as a Quarter (including three months).
In one example, the plurality of objectives includes:
Max Σt=EF
Max Σt=EF
Max Σt=EF
where EFp is the earliest finish, and LFp is the latest finish of project p, φpo is a score of project p in objective o ∈ O, zpt=1 is a time indexed binary decision variable, which equals to 1 if project p ∈ finishes at time period t; and 0 otherwise. Also, ωp is a weighted score of project p. This score may incorporate multiple criteria with their corresponding weights to reflect their relative importance.
In one example, different single objective functions may be utilized. For example, objective function (C-2) maximizes the discounted total portfolio score of the objective o ∈ O, assuming the value of a project (e.g., ranking, project score) is achieved at the completion of the project. Another role of the discounting term α is to avoid unnecessary delayed start of a project with respect to its earliest start time. As another example, a variant objective function (C-3) is to maximize the discounted total weighted score of the portfolio. Also, for example, objective function (C-4) optimizes the discounted total ranking of portfolio. In one example, directly minimizing the total priority ranking may not be the best solution, since an obvious optimal solution would be to not select any projects, which may be associated with an “optimal” ranking of zero. To resolve this issue, the priority ranking may be recoded such that a higher ranking value means higher priority, i.e. p′p=Γ−ρp, where Γ is an arbitrary number satisfying Γ≧max{ρp, ∀p ∈ }+1.
Referring again to
System 100A includes a resource allocator 106 comprising a resource allocation model 106A to generate at least one project portfolio 108A based on the sub-plurality of constraints and the sub-plurality of objectives, wherein the at least one project portfolio 108A includes a sub-plurality of the plurality of projects, and is based on a dynamic allocation of the resource allocation data. In one example, the resource allocation model 106A generates the at least one project portfolio 108A by optimizing a portfolio value based on the portfolio shaping preference and the sub-plurality of objectives, while satisfying the sub-plurality of constraints. In one example, the portfolio value may be an aggregate of project values included in the portfolio. In one example, the portfolio value may be an aggregate of weighted project values included in the portfolio. In one example, the at least one project portfolio 108A may be based on a dynamic allocation of the resource allocation data to the extent that it cannot be further optimized based on the sub-plurality of objectives and the sub-plurality of constraints. In one example, the resource allocation model 106A optimizes the portfolio value based on objectives under differing bounds of the sub-plurality of objectives while satisfying the sub-plurality of constraints. In one example, the resource allocation model 106A optimizes the portfolio value based on a priority of objectives of the sub-plurality of objectives while satisfying the sub-plurality of constraints.
In one example, the portfolio value that is optimized may be a total net present value (“NPV”) of benefits derived from effectuating the projects of the portfolio, in monetary or other terms. Optimizing the portfolio value may include maximizing the portfolio value, such as maximizing the NPV of the benefits, by optimally scheduling the projects in relation to the resources that the projects use to be completed. Such optimal scheduling is referred to as optimizing the portfolio. Accordingly, there is a portfolio value for each project portfolio that is generated, and a corresponding optimization of each portfolio in terms of how the projects of each portfolio are scheduled with respect to resource utilization.
System 100A includes portfolio planner 110 to schedule the sub-plurality of the plurality of projects, and to provide the at least one project portfolio 108A to a computing device via a graphical user interface.
In one example, the portfolio planner 110 may receive an indication that the at least one project portfolio 108A is not selected. In one example, modified resource allocation data 102 may be accessed via the data processor 104. In one example, the modified resource allocation data may include a modification of a constraint of the sub-plurality of constraints, including an addition or removal of another constraint to the sub-plurality of constraints. In one example, the modified resource allocation data may include a modification of an objective of the sub-plurality of objectives, including an addition or removal of another objective to the sub-plurality of objectives. In one example, the modified resource allocation data may include second project portfolio shaping preference. The data processor 104 accesses the modified resource allocation data, and the resource allocator 106 generates a second project portfolio based on the modified resource allocation data.
In one example, the first resource allocation model 106B may generate the baseline project portfolio 108B by optimizing a portfolio value based on objectives under differing bounds of the sub-plurality of objectives while satisfying the sub-plurality of constraints. In one example, the second resource allocation model 106C may generate a second project portfolio 108C by optimizing the portfolio value based on a priority of objectives of the sub-plurality of objectives while satisfying the sub-plurality of constraints.
In one example, system 100B may work in tandem with system 100A. For example, referring to
In one example, the portfolio planner 110 further receives one a first indication that another portfolio has been selected or a second indication that the another portfolio has not been selected, where the another portfolio is based on a comparison of the baseline project portfolio 108C and the second project portfolio 108C. In one example, the second project portfolio 108C generated by the second resource allocation model 106C may be considered as a baseline portfolio 108B that may be subsequently selected from, modified, regenerated, and so on, to yield the another portfolio for actual implementation. Of the sub-plurality of the plurality of projects, each of which may have been classified in accordance with the sub-plurality of objectives, each portfolio may include different combination of projects from the sub-plurality of the plurality of projects. In general, the first resource allocation model 106B may be used to generate the baseline project portfolio 108B by optimizing the portfolio value considering one or several objectives while satisfying the constraints. For instance, to generate the baseline portfolio 108B, the first resource allocation model 106B may consider maximizing total direct benefit under constraints 1 to 19, i.e. the first resource allocation model 106B may consider a BOM portfolio shaping preference. The second resource allocation model 106C may consider an MCRM portfolio shaping preference where three objectives in order of preference are considered, for example, maximize total direct benefit, maximize total project ranking, and maximize total project strategic alignment, with constraints 1 to 19.
The selection of a portfolio is directed at an efficient allocation of the resource allocation data. For example, suppose that the second resource allocation model 106C generates the second project portfolio 108C with same total direct benefit as the baseline project portfolio 108B, but more projects are included in the second project portfolio 108C, then the second project portfolio 108C might be considered as the baseline portfolio, i.e. it will be re-labeled as the baseline project portfolio 108B. Also, for example, suppose that after further review there is a project with high impact strategic value not included in the baseline project portfolio 108B or the second project portfolio 108C, then a new scenario (e.g., portfolio shaping preference) may be created where this project with high strategic value may be preferentially selected, i.e. the second resource allocation model 106C will generate a new second project portfolio 108C. As another example, if the second project portfolio 108C does not significantly decrease the total benefit from the baseline project portfolio 108B, then the second project portfolio 108C may be designated as a new baseline portfolio 108B, and the first resource allocation model 106B may be replaced by the second resource allocation model 106C. This process may continue until the second project portfolio 108C generated by the second resource allocation model 106C cannot further improve the baseline project portfolio 108B generated by the first resource allocation model 106B, thus ensuring the efficient allocation of the resource allocation data.
In one example, the first resource allocation model 106B and the second resource allocation model 106C may be selected from the group consisting of POM, MCRM and BOM. For example, the first resource allocation model 106B and the second resource allocation model 106C may be the POM. Also, for example, the first resource allocation model 106B and the second resource allocation model 106C may be the MCRM. As another example, the first resource allocation model 106B and the second resource allocation model 106C may be the BOM. As described herein, combinations of these models may be utilized as well. For example, the first resource allocation model 106B may be one of the POM, MCRM or BOM, and the second resource allocation model 106C may he one of the POM, MCRM or BOM, but different from the first resource allocation model 106B, thereby providing six possible choices for combinations.
Referring to
In one example, the BOM portfolio shaping preference maximizes the NPV of benefits derived from a selected portfolio, while satisfying the constraints. The constraints that may be considered by the resource allocation model based on the BOM portfolio shaping preference are Constraints (1) through (19), and the constraints may include project release and due date constraints, budget and labor constraints, minimum percentage of selected projects of a particular grouping or groupings of projects.
The BOM portfolio shaping preference is a single objective mixed linear-integer programming problem. Instances of the single objective that may be optimized by the BOM portfolio shaping preference follow
Arbitrary single objectives may be optimized as long as a project valuation is determined. This project valuation reflects the impact that a project has on the single objective. The BOM portfolio shaping preference constraints include the soft and hard constraints as described herein. Nonstructural constraints may be considered as soft constraints by the BOM portfolio shaping preference. That is, artificial variables may be added to the soft constraints allowing the constraints to be violated at a high penalty. In one example, the BOM portfolio shaping preference identifies a feasible collection of portfolios, and further identifies an optimal portfolio of the feasible collection of portfolios based on a single objective of the plurality of objectives.
Any inconsistencies in the BOM model may be resolved by adding artificial variables to the labor constraints and budget constraints, with appropriate penalties in the objective function, to resolve the inconsistencies.
In one example, the POM portfolio shaping preference generates the at least one project portfolio 108A based on trade-offs between conflicting objectives of the plurality of objectives. In one example, the portfolio shaping preference is the POM portfolio shaping preference that is based on a BOM model. In one example, the resource allocation model 106 generates the at least one project portfolio 108A by optimizing the portfolio value in consideration of a pair of conflicting objectives under differing bounds thereof. This pair of objectives may include a first objective and a second objective. A decision maker may be interested in a pair of conflicting objectives and may want to optimize the tradeoffs between these pair of conflicting objectives. Although a scenario with two conflicting objectives is described herein, these ideas may be easily extended to the n-conflicting objectives case, for n>2.
Accordingly, in the case of the POM portfolio shaping preference the output of the resource allocator 106 is a single at least one project portfolio 108A that optimizes the tradeoff between two objective functions under consideration, where the single at least one project portfolio 108A is the portfolio in the efficient frontier of the two objective functions under consideration at a minimum distance to an ideal portfolio. The ideal portfolio provides an optimal objective function value of the first objective function and an optimal objective function value of the second objective function. Generally, the at least one project portfolio 108A may be based on a minimal distance to optimal objective function values of n conflicting objective functions.
Generally, the POM portfolio shaping preference computes a discrete set of feasible portfolios, i.e. satisfying all the BOM constraints, in the Pareto Efficient Frontier that optimize the trade-off between the conflicting objectives. The POM portfolio shaping preference then computes an “ideal” which would correspond to an ideal portfolio that would simultaneously maximize the n objectives. The ideal portfolio corresponds to the optimal objective function values when optimizing the BOM model with respect to each of the n objectives in conflict. Note that if there is a feasible portfolio that is optimal for all n objectives, then the n objectives are not really in conflict and the ideal portfolio is an optimal portfolio for all the n objectives.
To determine a feasible portfolio that optimizes the tradeoffs between the n objectives respect to the ideal portfolio, the portfolio in the Pareto Efficient Frontier that is at a minimum distance to the ideal portfolio is identified.
The POM may be implemented via the following pseudo code, restricted to two objectives in this example:
The For-Loop defines the grid for the tradeoffs between obj_1 and obj_2. The granularity of this grid is a configurable parameter. Note that Z1 is the optimal objective function value respect to the objective function obj_1. Also note that Z_0.0 is the optimal objective function value respect to the objective function obj_2, we then define Z2=Z_0.0. The ideal point in the Cartesian space of the objectives where the first coordinate is defined by the values of objective function obj_1 and the second coordinate is defined by the values of objective function obj_2, is then defined as (Z1, Z2).
In one example, in solving the ith optimization problem in the For-Loop, the optimal portfolio may be represented as P_i, and therefore Z_i=Max obj_2 (P_i). Also note that the objective function obj_1 evaluated at P_i is obj_1 (P_i). Therefore the points in the Cartesian space of the objectives determined by the For-Loop defines the Pareto Efficient Frontier with the optimal trade-offs of the two conflicting objectives. Each point i in the Pareto Efficient Frontier is defined as (obj_1 (P_i), Z_i), for i=1, 0.8, . . . , 0.0. The step size may be more detailed and may be configured by a user, however a more detailed POM may take longer to compute.
The portfolio in the Pareto Efficient Frontier that optimizes the trade-offs between the two conflicting objectives is the one at a minimum distance with the ideal point. The POM portfolio shaping preference may sort the portfolios in the Pareto Efficient Frontier shortest distance first and largest distance last.
In another example, the resource allocation model 106A (of
For example, the decision-maker may have a priority order for the set of objectives and may sort the objectives in order of preference, most important objective first. For example
In this example, the portfolio shaping preference is the MCRM based on BOMs. Generally, the MCRM portfolio shaping preference generates the at least one project portfolio 108A based on a priority of objectives of the sub-plurality of objectives while satisfying the sub-plurality of constraints. Accordingly, in the case of the MCRM portfolio shaping preference, the output of the resource allocator 106 is a single at least one project portfolio 108A that respects the hierarchy of preference of the various objective functions under consideration, optimizing one objective function at a time while respecting the optimal objective function values of more preferred objectives. The resource allocation model 106A first solves a BOM model that has the most important objective as the objective function and it considers the constraints. Then the MCRM portfolio shaping preference solves a second BOM model that has the second most important objective as the objective function. It defines the most important objective as a constraint and forces this constraint to be equal to the optimal value when solving the first BOM model, and it considers the BOM constraints.
The MCRM portfolio shaping preference continues in this fashion until it solves the last BOM model that has the least important objective as the objective function. It defines all the previous objectives as constraints and forces these constraints to be equal to the optimal value when solving the previous BOM models, and it considers the BOM constraints. These equality constraints may be relaxed and considered as inequalities and a user defined tradeoff may be considered. For example, between objective OBJ(i) and OBJ(i-1) a tradeoff of 10% might be allowed, that is when optimizing OBJ(i) we only ensure that 90% of the optimal value of OBJ(i-1) is achieved.
The MCRM considers the same constraints as the BOM. The MCRM first finds a portfolio that maximizes the most important objective. In one example, the objectives may be arbitrarily defined by the user. In a second iteration, the MCRM fixes the optimal value of the most important objective and maximizes the second most important objective. For a third iteration, the MCRM fixes the optimal values of the first most important and second most important objectives as constraints in the model, and finds a portfolio that maximizes the third most important objective. In a final iteration, the MCRM fixes the optimal value of all objectives except the least important objective as constraints in the model, and finds the at least one project portfolio 108A that maximizes the least important objective.
Note that any minimization model may be transformed into a maximization problem, so talking about maximization models does not limit the description herein.
The MCRM may be implemented via the following pseudo code:
where Z_i and Z_i are the optimal values of the objective function obj_i and obj_j respectively.
As described herein, the selection of a portfolio is directed at an efficient allocation of the resource allocation data. In one example, if the at least one project portfolio 108A (of
Accordingly, the decision maker may perform sensitivity analysis for the portfolios based on such an iterative process. Sensitivity analysis may also be performed, for example, when forcing inclusion (or exclusion) of a project and checking its impact with respect to the various objectives and Key Performance Indicators (“KPI”). In one example, during sensitivity analysis, the decision maker may create inconsistencies with the resources available (budgets and/or FTE). System 100A may detect such inconsistencies, and may correct the budget and/or FTE available in order to satisfy the decision maker preferences during the sensitivity analysis.
In one example, the portfolio planner 110 of system 100A and/or system 100B selects or removes a project of the sub-plurality of projects included in the at least one project portfolio 108A, and provides project data for the selected or removed project. In one example, the project data may include at least one of a project identifier, a project name, a start date, and a finish date. In one example, the portfolio planner 110 may generate an output table indicating which projects have been selected and the start time of each selected project. The output table may contain the following fields: Project ID, Project Name, Start Date, and Finish Date. In one example, the portfolio planner 110 may generate at least one report based on the output table, where the reports analyze the efficient allocation of the resource allocation data. In one example, the portfolio planner 110 of system 100A and/or system 100B schedules the sub-plurality of projects included in the at least one project portfolio 108A. In one example, the portfolio planner 110 may schedule the sub-plurality of projects based on the output table.
Processor 302 includes a Central Processing Unit (CPU) or another suitable processor. In one example, memory 304 stores machine readable instructions executed by processor 302 for operating processing system 300. Memory 304 includes any suitable combination of volatile and/or non-volatile memory, such as combinations of Random Access Memory (RAM), Read-Only Memory (ROM), flash memory, and/or other suitable memory. In one example, resource allocation data 314 may be accessed via input devices 310, and the at least one project portfolio may be provided by output devices 312. In one example, modified resource allocation data may be accessed via input devices 310. In one example, the at least one project portfolio and the second portfolio may be provided via the output devices 312.
Memory 304 stores instructions to be executed by processor 302 including instructions for a data processor 306, a resource allocator 308, and a portfolio planner 316.
In one example, processor 302 executes instructions of data processor 306 to receive resource allocation data 314, the resource allocation data 314 including a plurality of projects, a portfolio shaping preference, a plurality of constraints and a plurality of objectives, wherein the resource allocation data is indicative of resources that are potentially available for allocation to the plurality of projects. In one example, the resource allocation data 314 includes structural data and configurable data In one example, the plurality of constraints includes a soft constraint that may be violated. In one example, the plurality of constraints includes a hard constraint that may not be violated. In one example, the plurality of constraints includes a time-phased resource constraint, and a time-phased budget constraint. In one example, the plurality of objectives includes at least one of a return of investment function, objective function, project score, project ranking, and project benefit. In one example, an objective of the plurality of objectives may be associated with an objective score indicative of relevance of a project to the objective. In one example, the portfolio shaping preference may be selected from the group consisting of a POM portfolio shaping preference, a MCRM portfolio shaping preference, and a BOM portfolio shaping preference.
In one example, processor 302 executes instructions of data processor 306 to activate, based on the portfolio shaping preference in the resource allocation data 314, a sub-plurality of the plurality of constraints and a sub-plurality of the plurality of objectives. In one example, processor 302 executes instructions of data processor 306 to load the resource allocation data 314 into an appropriate portfolio resource allocation model. For example, if the portfolio shaping preference is the BOM, then an appropriate single objective and relevant constraints may be loaded into a structured dataset that may be utilized by the resource allocation model applicable for the BOM.
Processor 302 also executes instructions of the resource allocator 308 to generate at least one project portfolio. In one example, processor 302 executes instructions of the resource allocation model 308A included in the resource allocator 308 to generate the at least one project portfolio based on the sub-plurality of constraints and the sub-plurality of objectives, wherein the at least one project portfolio includes a sub-plurality of the plurality of projects, and is based on a dynamic allocation of the resource allocation data. In one example, processor 302 executes instructions of the resource allocation model 308A included in the resource allocator 308 to generate the at least one project portfolio by optimizing a portfolio value based on the portfolio shaping preference and the sub-plurality of objectives, while satisfying the sub-plurality of constraints. In one example, memory 304 may store the at least one project portfolio.
In one example, processor 302 executes instructions of a portfolio planner 316 to schedule the sub-plurality of the plurality of projects, and provide the at least one project portfolio to a computing device via a graphical user interface. In one example, processor 302 executes instructions of the portfolio planner 316 to receive an indication that the at least one project portfolio is not selected. In one example, processor 302 executes instructions of a portfolio planner 316 to prompt the data processor 306 to access modified resource allocation data.
In one example, processor 302 executes instructions of the portfolio planner 316 to prompt the resource allocator 308 to generate a second project portfolio based on the modified resource allocation data. For example, processor 302 executes instructions of the resource allocator 308 to generate at least one project portfolio based on a first resource allocation model by optimizing a portfolio value based on the portfolio shaping preference and the sub-plurality of objectives, while satisfying the sub-plurality of constraints, wherein the at least one project portfolio includes a sub-plurality of a plurality of projects. In one example, processor 302 executes instructions of the resource allocator 308 to generate a second project portfolio based on a second resource allocation model by optimizing the portfolio value based on the portfolio shaping preference and the sub-plurality of objectives, while satisfying the sub-plurality of constraints, wherein the at least one project portfolio includes a sub-plurality of a plurality of projects.
In one example, processor 302 executes instructions of the portfolio planner 316 to provide the at least one project portfolio and the second project portfolio, and to receive one of a first indication that the at least one project portfolio is selected or the second project portfolio is selected, or a second indication that neither of the at least one project portfolio or the second project portfolio is selected. In one example, the first resource allocation model may be the resource allocation model 308A and the baseline project portfolio may be the at least one project portfolio. The resource allocator 308 may generate a second project portfolio based on the second resource allocation model, the second resource allocation model based on the modification of the resource allocation data 314. In one example, the portfolio planner 316 may provide the at least one project portfolio and the second project portfolio via the graphical user interface.
In one example, the at least one project portfolio generated by the first resource allocation model may be considered as a baseline portfolio that may be subsequently selected from, modified, regenerated, and so on, to yield a desired portfolio for actual implementation. Of the sub-plurality of the plurality of projects, each of which may have been classified in accordance with the sub-plurality of objectives, each portfolio may include different combination of projects from the sub-plurality of the plurality of projects. In general, the first resource allocation model may be used to generate the at least one project portfolio by optimizing the portfolio value considering one or several objectives while satisfying the constraints.
In one example, if the at least one project portfolio, or one of the at least one project portfolio or the second project portfolio is selected for actual implementation, then the process terminates. Otherwise, an iterative approach is performed, as indicated by the dashed arrow in
In one example, the first portfolio shaping preference and the second portfolio shaping preference may be selected from the group consisting of POM, MCRM and BOM. For example, the first and second portfolio shaping preferences may be the POM. Also, for example, the first and second portfolio shaping preferences may be the MCRM. As another example, the first and second portfolio shaping preferences may be the BOM. As described herein, combinations of these portfolio shaping preferences may be utilized as well. For example, the first portfolio shaping preference may be one of the POM, MCRM or BOM, and the second portfolio shaping preference may be one of the POM, MCRM or BOM, but different from the first portfolio shaping preference, thereby providing six possible choices for combinations.
In one example, processor 302 executes instructions of the portfolio planner 316 to select or remove a project of the sub-plurality of projects included in the at least one project portfolio, and provide project data for the selected or removed project. In one example, the project data may include at least one of a project identifier, a project name, a start date, and a finish date. In one example, the portfolio planner 316 may generate an output table indicating which projects have been selected and the start time of each selected project.
In one example, processor 302 executes instructions of the portfolio planner 316 to schedule the sub-plurality of projects included in the at least one project portfolio. In one example, the portfolio planner 316 may schedule the sub-plurality of projects based on the output table.
Input devices 310 include a keyboard, mouse, data ports, and/or other suitable devices for inputting information into processing system 300. In one example, input devices 310 are used to access resource allocation data 314, including modified projects, portfolio shaping preferences, constraints and objectives. Output devices 312 include a monitor, speakers, data ports, and/or other suitable devices for outputting information from processing system 300. In one example, output devices 312 are used to output the at least one project portfolio, and/or the second portfolio.
Processor 402 executes instructions included in the computer readable medium 410. Computer readable medium 410 includes data access instructions 412 of the data processor 404 to receive resource allocation data, the resource allocation data including a plurality of projects, a portfolio shaping preference, a plurality of constraints and a plurality of objectives, wherein the resource allocation data is indicative of resources that are potentially available for allocation to the plurality of projects. Computer readable medium 410 includes activation instructions 414 of the data processor 404 to activate, based on the portfolio shaping preference, a sub-plurality of the plurality of constraints and a sub-plurality of the plurality of objectives.
Computer readable medium 410 includes portfolio generation instructions 416 of resource allocator 406 to generate at least one project portfolio. In one example, computer readable medium 410 includes portfolio generation instructions 416 of the resource allocation model 406A to generate the at least one project portfolio based on the sub-plurality of constraints and the sub-plurality of objectives, wherein the at least one project portfolio includes a sub-plurality of the plurality of projects, and is based on a dynamic allocation of the resource allocation data. In one example, computer readable medium 410 includes portfolio generation instructions 416 of the resource allocation model 406A to generate the at least one project portfolio by optimizing a portfolio value based on the portfolio shaping preference and the sub-plurality of objectives, while satisfying the sub-plurality of constraints.
As described herein, in one example of the iterative portfolio optimization process, a first portfolio shaping preference and a second portfolio shaping preference may be selected from the group consisting of POM, MCRM and BOM. For example, the first and second portfolio shaping preferences may be the POM. Also, for example, the first and second portfolio shaping preferences may be the MCRM. As another example, the first and second portfolio shaping preferences may be the BOM. As described herein, combinations of these portfolio shaping preferences may be utilized as well. For example, the first portfolio shaping preference may be one of the POM, MCRM or BOM, and the second portfolio shaping preference may be one of the POM, MCRM or BOM, but different from the first portfolio shaping preference, thereby providing six possible choices for combinations.
Computer readable medium 410 includes portfolio providing instructions 418 of the portfolio planner 418 to provide the at least one project portfolio to a computing device via a graphical user interface.
Computer readable medium 410 includes iterative instructions 420 of the data processor 404, the resource allocator 406, and portfolio planner 418 to execute the instructions to receive, activate, generate, and provide, until a project portfolio is selected.
Computer readable medium 410 includes project scheduling instructions 422 of the portfolio planner 418 to schedule the sub-plurality of projects included in the selected project portfolio.
At 506, the at least one project portfolio is provided to a computing device via a graphical user interface. At 508, upon non-selection of the at least one project portfolio, a second project portfolio based on modified resource allocation data is iteratively regenerated and provided, until the second project portfolio is selected.
As described herein, in one example of the iterative portfolio optimization process, a first portfolio shaping preference and a second portfolio shaping preference may be selected from the group consisting of POM, MCRM and BOM. For example, the first and second portfolio shaping preferences may be the POM. Also, for example, the first and second portfolio shaping preferences may be the MCRM. As another example, the first and second portfolio shaping preferences may be the BOM. As described herein, combinations of these portfolio shaping preferences may be utilized as welt For example, the first portfolio shaping preference may be one of the POM, MCRM or BOM, and the second portfolio shaping preference may be one of the POM, MCRM or BOM, but different from the first portfolio shaping preference, thereby providing six possible choices for combinations.
In one example, the iteratively regenerating and providing the second project portfolio includes providing the at least one project portfolio and the second project portfolio, and receiving an indication that one of the at least one project portfolio and the second project portfolio is selected.
In one example, the iteratively regenerating and providing a second project portfolio includes designating the at least one project portfolio as a baseline project portfolio, generating a second project portfolio based on a second portfolio shaping preference, the second portfolio shaping preference based on the modified resource allocation data, and providing the baseline project portfolio and the second project portfolio. In one example, the method further includes receiving, via the graphical user interface, one of a first indication that another project portfolio is selected or a second indication that the another project portfolio is not selected, where the another project portfolio is based on a comparison of the baseline project portfolio and the second project portfolio.
In one example, the method further includes selecting or removing a project of the sub-plurality of projects included in the at least one project portfolio, and providing project data for the selected or removed project. In one example, the project data includes at least one of a project identifier, a project name, a start date, and a finish date.
In one example, the method further includes scheduling the sub-plurality of the plurality of projects included in the at least one project portfolio. In one example, the method further includes scheduling the sub-plurality of the plurality of projects included in the a second project portfolio
In one example, the portfolio shaping preference includes at least one of a Pareto optimization model (“POM”) portfolio shaping preference, a multiple-criteria ranking optimization model (“MCRM”) portfolio shaping preference and a basic optimization model (“BOM”) portfolio shaping preference.
In one example, the resource allocation data includes structural data and configurable data.
In one example, the plurality of constraints includes at least one of a soft constraint that may be violated, and a hard constraint that may not be violated. In one example, the plurality of constraints includes the soft constraint, and the method further includes detecting an infeasibility of the soft constraint. In one example, the method further includes correcting the detected infeasibility of the soft constraint. In one example, the method further includes providing a modified constraint that corrects the detected infeasibility of the soft constraint
In one example, a budget shortage may be detected. In one example, the budget shortage may be corrected. In one example, a FTE capacity shortage may be detected. In one example, the FTE capacity shortage may be corrected.
In one example, the plurality of constraints includes a time-phased resource constraint, and a time-phased budget constraint. In one example, the time-phased budget constraint is different from a time period scale in a planning horizon.
In one example, the plurality of objectives includes at least one of a return of investment function, objective function, project score, project ranking, and project benefit. In one example, the objective function may be associated with an objective score indicative of relevance of a project to the objective.
In one example, the plurality of objectives includes any measurable objective function.
In one example, the project value of a project in a portfolio may be defined before, during, and/or after completion of the project.
Examples of the disclosure provide a generalized system for project portfolio generation based on a dynamic allocation of resources. The systems and methods described herein allow multi-objective optimization of a project portfolio with time-phased resource constraints, such as labor constraints (e.g., differentiated by role and capabilities), and budget constraints (e.g., differentiated by various type of costs such as labor IT costs, non-labor IT costs, business costs, and so forth). The systems and methods described herein enable optimization of any objective as long the project valuation respect to the objective is defined.
The systems and methods described herein provide flexibility in project portfolio generation based on a dynamic allocation of resources, including, for example, enabling varying budget constraints based on arbitrary decision maker defined budgeting period; addressing trade-offs between two conflicting objectives of the plurality of objectives while considering resources capacity limits; enabling project value to be defined not only at the period of the completion of the project but also at periods before and after completion of the project; enabling simultaneous optimization of the selection and the scheduling of a project portfolio; allowing the decision maker to specify windows of opportunity where a project may start and complete; allowing the decision maker to perform sensitivity analysis; allowing the decision maker to fix the start time of a project when selected: allowing shaping of a portfolio with decision maker defined upper and lower bounds on the percentage; allowing for a scenario wherein all projects in a Program of related projects are selected or none are selected; allowing for Project Temporal Constraints to ensure that a set of related projects follow minimum time lags or precedence relations if selected; and enabling real time re-scheduling decision making due to the fast response time of finding an optimal portfolio. The systems and methods described herein may automate lengthy and cumbersome manual processes, for example, based on spreadsheet analyses.
Although specific examples have been illustrated and described herein, a variety of alternate and/or equivalent implementations may be substituted for the specific examples shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific examples discussed herein. Therefore, it is intended that this disclosure be limited only by the claims and the equivalents thereof.