One or more embodiments of the present invention relate generally to systems and techniques for project portfolio management. More particularly, the invention relates to improved mechanisms for distinguishing between competing proposals that include equivalent requirements.
Enterprises undertake activities to achieve their various objectives, and such activities are typically organized into projects. A group of projects to be undertaken by an enterprise, or the total of all projects being undertaken or considered by an enterprise, may be referred to as a project portfolio, and the optimization and selection of project proposals, and the management of projects that are underway, is referred to as project portfolio management. A well-defined project is defined at its inception so as to achieve specified objectives using specified resources. Proposals to accomplish a specific set of objectives may be selected from among competing proposals based on the resources they require and the costs of those resources. Resources may be defined in terms of materials, labor, time, and other elements, and optimization may be performed to identify combinations that will achieve the desired objectives at the lowest resource cost. The optimization of project proposals may be undertaken by any of a number of mechanisms, many of which are standardized and convenient for use. Project proposals may be evaluated based at least in part on their impact on the total project portfolio capacity of an enterprise, that is, the total resources available for projects.
In one embodiment of the invention, a method comprises translating an original proposal directed toward achieving an objective into a set of at least two substitute proposals, in a case in which the original proposal presents a choice between at least two equivalent sets of resource requirements. The translation yields one proposal for each set of resource requirements. The method further comprises performing optimization on a set of proposals including the set of substitute proposals, to yield an optimized solution, wherein the optimized solution is represented in terms including at least one of the substitute proposals. The method further comprises translating the optimized solution to a set of proposals taken from the original proposals.
In another embodiment of the invention, a method comprises translating an original proposal directed toward achieving an objective into a set of at least two substitute proposals, in a case in which the original proposal presents a choice between at least two equivalent sets of resource requirements. The translation yields one proposal for each set of resource requirements. The method further comprises performing optimization on a set of proposals including the set of substitute proposals, to yield an optimized solution. The optimized solution is represented in terms including at least one of the substitute proposals.
In another embodiment of the invention, a method comprises performing optimization on a set of proposals to yield an optimized solution. The set of proposals comprises a set of substitute proposals resulting from translation of an original proposal into the set of substitute proposals. The original proposal presents a choice between at least two equivalent sets of resource requirements and wherein the set of substitute proposals comprises one substitute proposal for each set of resource requirements. The method further comprises translating the optimized solution to a set of proposals taken from the original proposals.
In another embodiment of the invention, an apparatus comprises at least one processor and memory storing computer program code. The memory storing the computer program code is configured to, with the at least one processor, cause the apparatus to at least translate an original proposal directed toward achieving an objective into a set of at least two substitute proposals, in a case in which the original proposal presents a choice between at least two equivalent sets of resource requirements. The translation yields one proposal for each set of resource requirements. Optimization is performed on a set of proposals including the set of substitute proposals, to yield an optimized solution, wherein the optimized solution is represented in terms including at least one of the substitute proposals. The optimized solution is translated to a set of proposals taken from the original proposals.
In another embodiment of the invention, a computer readable medium stores a program of instructions. Execution of the program of instructions by a processor configures an apparatus to at least perform optimization on a set of proposals to yield an optimized solution. The set of proposals comprises a set of substitute proposals resulting from translation of an original proposal into the set of substitute proposals. The original proposal presents a choice between at least two equivalent sets of resource requirements and wherein the set of substitute proposals comprises one substitute proposal for each set of resource requirements. The optimized solution is translated to a set of proposals taken from the original proposals.
In another embodiment of the invention, a computer readable medium stores a program of instructions. Execution of the program of instructions by a processor configures an apparatus to at least translate an original proposal directed toward achieving an objective into a set of at least two substitute proposals, in a case in which the original proposal presents a choice between at least two equivalent sets of resource requirements. The translation yields one proposal for each set of resource requirements. Optimization is performed on a set of proposals including the set of substitute proposals, to yield an optimized solution, wherein the optimized solution is represented in terms including at least one of the substitute proposals. The optimized solution is translated to a set of proposals taken from the original proposals.
In another embodiment of the invention, a computer readable medium stores a program of instructions. Execution of the program of instructions by a processor configures an apparatus to at least perform optimization on a set of proposals to yield an optimized solution. The set of proposals comprises a set of substitute proposals resulting from translation of an original proposal into the set of substitute proposals. The original proposal presents a choice between at least two equivalent sets of resource requirements and wherein the set of substitute proposals comprises one substitute proposal for each set of resource requirements. The optimized solution is translated to a set of proposals taken from the original proposals.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Embodiments of the present invention recognize that evaluation of competing proposals to achieve a specified set of objectives may involve the evaluation of alternative proposals involving alternative sets of requirements that are equivalent between alternatives. Embodiments of the invention further recognize that the use of an enterprise's standard or preferred optimizer may be desired, but special configuration of optimizers to address equivalent sets of requirements is not common. Embodiments of the invention further recognize that equivalent sets of requirements may create differences in the overall cost and impact of alternative proposals, and that addressing these differences in selection can lead to a more informed choice between competing proposals.
Proposals may be evaluated based on the resource requirements they present, evaluated in terms of resource constraints. For example, a proposal may require “tester” resources of 30 person-months and “Java developer resources of 50 person-months,” and so on. Another proposal may require “tester” resources of 25 person-months and “C++ developer” resources of 45 person months, and so on. In an example, total available “tester” resources in a portfolio may be 70 person months, and total available “C++ developer” resources may be 80 person-months.
In some cases, a proposal may present two or more alternative equivalent resource requirements—that is, a category of requirements of a proposal may be satisfied in any of two or more different ways. For example, “testing” requirements of a particular proposal may be able to be satisfied either with a tester experienced in performance testing with LoadRunner or a person experienced in performance testing with QALoader.
In one or more embodiments, therefore, the invention provides mechanisms to process proposals with equivalent resource requirements before optimization, and to process solutions returned by optimization so that the solutions are presented in to is of the original proposals.
In one or more embodiments of the invention, therefore, proposals with equivalent resource requirements may be translated into substitute proposals and their interdependencies. These substitutes may then be processed using a standard optimizer that is not specially adapted to address equivalent requirements. Further translation may then be performed to translate an optimal solution returned by the optimizer into the terms of the original proposals.
At step 108, an optimizer is invoked to perform optimization on the substitute proposals with their logical dependencies to generate an optimal solution. At step 110, the returned optimal solution to the substitute proposals is translated to a solution in terms of the original proposals.
At step 202, for a particular project, expressed in terms of a set of objectives to be achieved, input is received in terms of proposals, their relationships, and their resource requirements. At step 204, for each proposal Ei with no equivalent resource requirement, a substitute proposal is generated by copying the attributes of Ei to the attributes of the substitute proposal.
At step 206, for each proposal Ei with an equivalent resource requirement, which may suitably be defined as members of a set {ERi1, ERi2, . . . , ERin}, n substitute proposals may be generated, suitably defined as members of a set {SERi1, SERi2, . . . , SERin}with attributes being calculated for each substitute proposal based on the original proposal attributes. At step 208, for every two substitute proposals corresponding to the same original proposal, an exclude relationship is generated between the substitute proposals. At step 210, for each pair of substitute proposals (SEi, SEj), for which a requires or excludes relationship exists between their original proposals, a corresponding require or exclude relationship is generated between the substitutes.
At step 212, an optimizer is invoked to process the input as translated by the steps 204-210. If no optimal solution can be achieved, the process proceeds to step 214 and a notification is presented that no optimal solution is available. If an optimal solution can be achieved, the process proceeds to step 216 and the optimal solution is translated to an optimal solution presented in terms of the original proposals. At step 218, the optimal solution is returned.
Relevant attributes of the proposals are as follows:
Relevant attributes of the proposals are as follows:
The substitute proposals illustrated in
The optimized solution attributes are presented below:
The optimized solution selects development of a native sales dashboard, and this choice excludes integration of a third party dashboard tool. The specific implementation of the development of the native sales dashboard is the development using FusionCharts. Thus, the table above does not include proposal A, and proposal B requires 2 J2EE staff and 2 FusionCharts staff. The statistics for the solution are as follows:
Reference is now made to
The data processing device 700 includes a data processor (DP) 706, and a memory (MEM) 708 that stores data 710 and one or more programs (PROG) 712.
At least one of the PROGs 712 is assumed to include program instructions that, when executed by the associated DP, enable the electronic device to operate in accordance with the exemplary embodiments of this invention as was described above in detail.
In general, the exemplary embodiments of this invention may be implemented by computer software executable by the DP 706, or by hardware, or by a combination of software and/or firmware and hardware. The interactions between the major logical elements should be obvious to those skilled in the art for the level of detail needed to gain an understanding of the broader aspects of the invention beyond only the specific examples herein. It should be noted that the invention may be implemented with an application specific integrated circuit ASIC, a field programmable gated array FPGA, a digital signal processor or other suitable processor to carry out the intended function of the invention, including a central processor, a random access memory RAM, read only memory ROM, and communication ports for communicating between the various devices, units or terminals that incorporate combinations of such functions.
The MEM 708 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The DP may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) and processors based on a multi-core processor architecture, as non-limiting examples.
At least one of the memories is assumed to tangibly embody software program instructions that, when executed by the associated processor, enable the electronic device to operate in accordance with the exemplary embodiments of this invention, as detailed by example above. As such, the exemplary embodiments of this invention may be implemented at least in part by computer software executable by the DP 706 of the data processing device 700 or by hardware, or by a combination of software and hardware.
Various embodiments of the present invention improve over the prior art by resolving a proposal allowing a choice of equivalent resource requirements and allowing for an optimization that allows for a selection between the equivalents.
The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
This patent application is a continuation of U.S. patent application Ser. No. 13/861,803, filed on Apr. 12, 2013, which is incorporated herein by reference in its entirety to provide continuity of disclosure.
Number | Date | Country | |
---|---|---|---|
Parent | 13861803 | Apr 2013 | US |
Child | 13970775 | US |