Quantitative Methods for Software Selection and Evaluation
Michael S. Bandor
Technical
Note
CMU/SEI-2006-TN-026
Acquisition Support Program
Unlimited distribution subject to the copyright.
Acknowledgments
I would like to thank the following Software Engineering Institute (SEI) personnel for their assistance in reviewing and producing this technical note: Mary Ann Lapham, Harry Levinson, Bud Hammons, Linda Levine, Suzanne Couturiaux, and John Foreman.
1 Software Package Selection
Many organizations are attempting to save costs by integrating third-party, commercial off-the-shelf (COTS) packages (e.g., component libraries or extensions) or complete COTS-based solutions (e.g., enterprise resource planning [ERP] applications). The methods used to identify a set of possible candidate solutions are, for the most part, rather subjective. The individual or individuals performing the evaluation have various, distinct experiences that will factor into the decision process, either consciously or subconsciously. To have a successful COTS evaluation, a formal process is needed to properly evaluate COTS products and vendors supplying them [SEI 05]. In this instance, the term formal means having an established and documented process to perform the selection and evaluation activities in a consistent, repeatable manner.
1.1 Initial Selection
How does an organization conduct the initial research into products that might be candidates for use on their project? How is the initial selection performed? Some organizations use an "intuitive approach" to select the initial list of products. This approach uses an individual who has had past experience with the product or who has "heard good things" about the product. An inappropriate selection strategy for COTS products can lead to adverse effects. It could result in a short list of COTS products that may not be able to fulfill the required functionality; in addition, it might introduce overhead costs in the system integration and maintenance phases [Leung 02].
One successful method for selecting products is the use of a selection team. When selecting a COTS component,1 the use of a team of technical experts—systems/software engineers and several developers—is recommended. When selecting a COTS-based system,2 however, the inclusion of business domain experts and potential end users is recommended [Sai 04]. The use of a team virtually eliminates a single-person perspective or bias and takes into account the viewpoints and experiences of the evaluators in the selection and evaluation process.
Table 1 describes several approaches that can be used to conduct the initial market research.
Table 1: Approaches for Conducting the Initial Market Research
| Vendor surveys | The survey is designed to evaluate the usefulness to the vendor of the request for proposal (RFP) and related documents. It also provides information about the vendors themselves [Sai 04]. |
| Vendor white papers | A significant number of vendors will produce "white papers" giving information about their products and, sometimes, case-study information related to successful implementation. |
| Product/component technical specifications | In the case of most COTS components (e.g., libraries, graphics packages) and COTS-based solutions, the vendor will have detailed technical information available for review. The technical specifications may or may not list specific constraints. |
| Representation at key information technology (IT) conferences | The larger the vendor, the more visible they will be in the marketplace. This visibility is especially evident at IT conferences. If you are researching a vendor-specific solution, find out if the vendor sponsors or is present at one or more large conferences. Attending a conference allows you to talk directly to competing vendors and affords you the opportunity to talk with other users of the product and other companies that provide additional support for the product (e.g., product extensions). |
| Communication with other customers using the product/component | The satisfaction of other customers using the product can provide additional insight you might not be able to get through other methods (e.g., customer/technical support issues related to the product). |
| Conducting a pre-bid conference | This type of event (sometimes referred to as an "industry day") allows potential vendors to visit your organization to discuss your needs and how their products might fulfill the stated requirements. Again, this type of event affords your organization the opportunity to ask the vendor questions directly. |
As an example of using these approaches, the Carnegie Mellon Software Engineering Institute (SEI) used the vendor-survey approach, among several others listed, to select a new ERP application. The SEI needed to replace a long-lived, faltering budget system that was built internally and had many shortcomings relating to the budget and business goals of the SEI. The system required substantial modifications to accommodate several new needs created by the advent of a new Oracle ERP system in use by Carnegie Mellon University [Sai 04]. In a case of "practicing what you preach," the SEI put into practice the principles taught in the COTS-Based Systems for Program Managers and COTS Software Product Evaluation for Practitioners training courses. The approach and subsequent results were captured in the technical note, COTS Acquisition Evaluation Process: Preacher's Practice [Sai 04].
In this documented example, the SEI evaluation team established some high-level criteria and capability statements, along with some basic expectations. A grading scale (shown in Table 2 [Sai 04]) was established by the evaluation team for the vendors to rate their own products against the specified criteria.
Table 2: Vendor Self-Evaluation Scale—Sample
Sai identified some interesting characteristics of this process:
- Evaluators felt respected by the level of participation afforded.
- Evaluators were allowed to evaluate not only criteria that mapped to their field of expertise but also other aspects of the proposal if they chose.
- Core technical staff members voiced happiness about being involved in the process.
- A common understanding of the capabilities of the solution existed.
- Most evaluators turned in valuable evaluation comments.
- Scores appeared to be based on the evaluators' understanding of the proposal.
- Experts were used to review the proposals for better understanding.
- New questions were generated for the vendors' clarifications.
Other useful mechanisms for performing initial evaluations are the use of pilot programs and obtaining a trial-use copy of the product being evaluated. These mechanisms allow an organization to evaluate the robustness3 of the product, critical aspects of the system, and the tailoring and customization capabilities of the product [SEI 05]. They also demonstrate how well the product works in the target environment and allow the organization to determine what tradeoffs are necessary in the evaluation criteria.
1.2 Evaluation Criteria
When evaluating a possible software solution, most organizations are likely to consider the ability of the product to meet the functional requirements. Although it is a significant first step in the evaluation process, this should not be the only criterion that is considered. Two additional criteria that should be considered are intangible factors and risk.
1.2.1 Intangible Factors
Intangible factors are not the traditional "quality" factors (e.g., the various "-ilities"), but rather factors that are programmatic decisions (i.e., decisions that can or will affect the overall program during its life span) and that have an effect on the system utilizing the software. Most of the decisions also depend on intangible factors that are difficult to quantify. According to Litke and Pelletier, some costs can be identified up-front, but others—the ones that organizations need to worry about for the long term—are hidden. Some examples of intangible factors cited by Litke and Pelletier and DeVries are shown in Table 3 [Litke 02], [DeVries 05].
Table 3: Examples of Intangible Factors
1.2.2 Risk
Risk4 is another element that should be part of the selection criteria. Many of the risks associated with system management and operation are not in your direct control. Each vendor that plays a role in the design, development, acquisition, integration, deployment, maintenance, operation, or evolution of part (or all) of your system affects the risks you face in your attempt to survive cyber attacks, accidents, and subsystem failures [Lipson 01]. Some possible risk factors that should be considered are listed below:
- Is the company well established?
- What is the longevity of the company?
- Is there support (training, developer, etc.) offered?
- Is your vendor flexible enough to make changes in the middle of development?
- Is the vendor financially stable?
- How mature is the technology used?
Another risk to consider is the volatility of the COTS components. COTS-based systems are always subject to the volatility of the COTS components (i.e., frequency with which vendors release new versions of their products). Expect volatility to increase exponentially with time and the number of components used [Lipson 01].
After a product or component has been selected, continuous risk management5 should be applied for the life cycle of the system that uses it. Continuous risk management is especially important if the product or component is being used as part of a framework.6 Unlike other software-selection decisions, the selection of a framework is a long-term decision—possibly lasting 10-15 years [Fayad 00]. After a final selection has been made, the risks associated with the product or component should be fed back into the risk management plan.
One method for mitigating the risk is to perform continual vendor-based risk evaluations. This type of evaluation focuses only on the vendor or vendors supplying the third-party components. Continual risk evaluation is especially important if the component is a critical part of the system life cycle for a mission-critical system [Lipson 01]. This activity should also be addressed as part of a risk management plan.
2 Evaluation Methods
After you have determined your selection criteria, you will need a mechanism to score and compare the potential products for suitability. One tool that is well suited to this task is a decision analysis spreadsheet.
2.1 Decision Analysis Spreadsheet
A decision analysis spreadsheet allows an organization to compare various products by using the selection criteria and assigning a weighted value to the criteria [Litke 02]. The product with the best score (based on the values) is the preferred product. There are two variations on this method. The first variation can be seen in Table 4 [Litke 02]. This example shows two products (System 1 and System 2) being compared based on a range of criteria (Items A through I). Each criterion has its own weight, and the individuals performing the evaluation assign a raw value to each product, which results in a weighed score. The weighted scores are then totaled and compared. The key to this method is that the total weights must add up to 100%.
Table 4: Decision Analysis Spreadsheet: Example 1
The second variation uses subgroups of criterion. An example of this variation can be seen in Table 5. Each subgroup is further decomposed one level further and weights are assigned. Again, the total of the weights for the subgroup must add up to 100%. The score for this variation differs slightly in that the final score for the subgroup is calculated by multiplying the total weighted score for each of the subcriteria by the total weighted value for the subgroup. In the example shown in Table 5, the subgroup weight is 20%, and the weighted value for System 1 is 18% (90% of 20%). The key to this variation is not to overly decompose the requirements. Start with the high-level groupings and decompose the criteria by only one additional level.
Table 5: Decision Analysis Spreadsheet: Example 2
2.2 Scoring Values
The key to using a decision analysis spreadsheet is the raw score values. By using a defined and understood set of discrete values, the subjectivity of the evaluation is significantly reduced. In the prior examples, the raw values were based on the information shown in Table 6 [Litke 02]. There are only five values used, ranging from 1.0 to -1.0 in increments of 0.5. Note the use of negative values and the effects on the scoring. Instead of just assigning a value of 0, the use of negative values permits the application of a "penalty" value where not meeting the criterion would be detrimental.
There are many different methods for deriving risk values, but descriptions of these methods are out of scope for this report. Additional references on risk can be found in the bibliography. Regardless of which risk calculation method you choose to follow, it is important to keep in mind that the scoring mechanism presented above is based on a "higher is better" score, and most risk calculations are based on a "lower is better" score. The two methods should be used individually and not combined into a single score for evaluation purposes.
Table 6: Example Legend for Scoring Requirements
Alternative fully satisfies business requirement or decision criterion. |
|
Alternative partially satisfies business requirement or decision criterion. |
|
Unknown or null/balanced (The alternative neither satisfies nor dissatisfies business requirement or decision criterion.) |
|
Alternative partially dissatisfies business requirement or decision criterion. |
|
Alternative fully dissatisfies business requirement or decision criterion [Litke 02]. |
Alternative fully satisfies business requirement or decision criterion. |
|
Alternative partially satisfies business requirement or decision criterion. |
|
Unknown or null/balanced (The alternative neither satisfies nor dissatisfies business requirement or decision criterion.) |
|
Alternative partially dissatisfies business requirement or decision criterion. |
|
Alternative fully dissatisfies business requirement or decision criterion [Litke 02]. |
One consideration that must be addressed is how to handle scoring variances. Each potential evaluator has different experiences and perceptions that will ultimately affect the scoring. When using individual evaluators, the organization must have a scoring process that addresses (1) what constitutes a variance and (2) how to handle the differences in the scoring.
Many organizations that use a similar process for evaluations will set a fixed value (e.g., less than 2 points on a 10-point scale) or a fixed percentage (e.g., 10% or more). When a scoring variance (or scoring split) occurs, the evaluators having a variance would then address the areas in the scoring that differed from the other evaluators. After the evaluators affected by the split have discussed their scoring and the rationale, each evaluator would take into consideration the new information and rescore the product. For example, when performing an evaluation on a product, Evaluator A (using the sample found in Table 1) gives the product a total score of 78%, and Evaluator B gives the product a total score of 90%. Assuming the scoring process defines a split as 10% or more difference in scoring, both evaluators would discuss their individual scores for each range of criteria and their rationale for the individual scores; they would then rescore the product in the area(s) that differed until the scoring split was resolved.
3 Conclusion
A successful evaluation is not simply picking a product based on intuition. It involves a formal process, the right mixture of evaluators, and a specific quantifiable set of evaluation criteria. The process should include how to handle differences in scoring by the evaluators. The SEI, in going through its own selection process, offers the following lessons learned [SEI 05]:
- Every off-the-shelf item used in the system should be the subject of an appropriate evaluation and selection process.
- A sound evaluation process for COTS products must support the selection.
- Requirements drive selection criteria, especially initially.
- Careful consideration must be given to the identification of selection criteria.
- Pilots and demonstrations are essential selection tools.
- Product and technology maturity must be considered.
Bibliography
Alberts, Christopher J. Common Elements of Risk (CMU/SEI-2006-TN-014). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2006. |
|
Carney, David J.; Morris, Edwin J.; & Place, Patrick R. H. Identifying Commercial Off-the-Shelf (COTS) Product Risks: The COTS Risk Usage Evaluation (CMU/SEI-2003-TR-023, ADA418382). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2003. |
|
Dorofee, Audrey; Walker, Julie; Alberts, Christopher; Higuera, Ronald; Murphy, Richard; & Willams, Ray. Continuous Risk Management Guidebook. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1996. |
|
DeVries, Michael. "To Buy? Or To Build? ... That Is The Question!" (2005). |
|
Fayad, Mohamed E. & Hamu, David S. Enterprise Frameworks: Guidelines for Selection. New York, NY: Association for Computing Machinery (ACM), 2000. |
|
Institute of Electrical and Electronics Engineers (IEEE). IEEE Standard Glossary of Software Engineering Terminology (IEEE Standard 610.12-1990). New York, NY: IEEE, 1990. |
|
Leung, Karl R. P. H. & Leung, Hareton K. N. "On the Efficiency of Domain-Based COTS Product Selection Method." Information and Software Technology 44, 12 (Sept. 2002): 703-715. |
|
Lipson, Howard F.; Mead, Nancy R.; & Moore, Andrew P. Can We Ever Build Survivable Systems from COTS Components? (CMU/SEI-2001-TN-030, ADA3399238). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2001. |
|
Litke, Christian & Pelletier, Michael. "Build it or Buy it? How to perform a cost-benefit analysis for IT projects." The Fabricator (March 28, 2002). |
|
Sai, Vijay. COTS Acquisition Evaluation Process: Preacher's Practice (CMU/SEI-2004-TN-001, ADA421675). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2004. |
|
Software Engineering Institute (SEI). Product Evaluation & Selection (2005). |
|
Zizakovic, Lubo. Buy or Build: Corporate Software Dilemma. Toronto, Canada: Insidus Custom Software Systems, August 2004. |
|
|
|
1 A COTS component, in this context, would be something like a third-party graphics library or report generation tool. They are building blocks integrated into a larger system.
2 An example of a COTS-based system is an enterprise resource management (ERP) package.
3 Robustness, in this use of the term, means "the degree to which a system or component can function correctly in the presence of invalid inputs or stressful environmental conditions" [IEEE 90].
4 Risk, in this usage, is defined as "the possibility of suffering loss. In a development project, the loss describes the impact to the project, which could be in the form of diminished quality of the end product, increased costs, delayed completion, or failure" [Dorofee 96].
5 Continuous risk management is defined as "...a software engineering practice with processes, methods, and tools for managing risks in a project. It provides a disciplined environment for proactive decision making to assess continuously what could go wrong (risks), determine which risks are important to deal with, and implement strategies to deal with those risks" [Dorofee 96].
6 "In software development, a framework is a defined support structure in which another software project can be organized and developed. A framework may include support programs, code libraries, a scripting language, or other software to help develop and glue together the different components of a software project. The word framework has become a buzzword due to recent continuous and unfettered use of the term for any generic type of libraries" (Wikipedia [http://en.wikipedia.org/wiki/Framework]).
This work is sponsored by the U.S. Department of Defense.
The Software Engineering Institute is a federally funded research and development center sponsored by the U.S. Department of Defense.Copyright 2006 Carnegie Mellon University.
NO WARRANTY
THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder.
Internal use. Permission to reproduce this document and to prepare derivative works from this document for internal use is granted, provided the copyright and "No Warranty" statements are included with all reproductions and derivative works.
External use. Requests for permission to reproduce this document or prepare derivative works of this document for external and commercial use should be addressed to the SEI Licensing Agent.
This work was created in the performance of Federal Government Contract Number FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. The Government of the United States has a royalty-free government-purpose license to use, duplicate, or disclose the work, in whole or in part and in any manner, and to have or permit others to do so, for government purposes pursuant to the copyright license under the clause at 252.227-7013.
For information about purchasing paper copies of SEI reports, please visit the publications portion of our Web site (http://www.sei.cmu.edu/publications/pubweb.html).