Cost Drivers Affecting Deployment of COTS-Based Systems
Lockheed Martin Systems Integration
Modern projects often involve the integration and deployment of many COTS packages to meet customer requirements. When estimating the effort for these projects, the team must make sizing and pricing assumptions based on past performance, their experience, and on information obtained from the customer. A cost engineering or pricing team uses these assumptions as input to their pricing model, which forms part of the final proposal. During the subsequent performance period, the team often discovers new information that significantly alters the original size and cost assumptions. This paper analyzes the results from two large projects to include their objective, baseline and actual requirements, baseline and actual cost drivers, affect on overall cost, and lessons learned.
1.0 Program A
The first project that we will examine had the mission of migrating data from various data-intensive applications into a data warehouse for common data mining and decision support analysis. The environment consisted primarily of IBM System 390 mainframes running MVS and the DB2 database system. In addition, the project employed the Datalogic GUI builder, the PRISM code generator for COBOL applications, and various APIs as required for interfacing to a number of legacy systems.
1.1 Cost Drivers
During the proposal phase, the cost engineering team collected potential cost drivers for the project for input their sizing model. During this time, the team calculated the approximate size of the affected systems at 4375 function points, or 350k SLOC of COBOL and 50k SLOC of programs written primarily in Java, C, and REXX. Figure 1 shows a partial list of the items used in preparing the cost model, to include the presence of an existing data warehouse, the assumed number of tables to create in the warehouse schema, the number of data sources, and the number of users and their relative skill levels.
In each case, the table compares the data used to estimate the cost of the project versus the actual results at the end of the project. The data shows extremely consistent values in almost all areas, which indicates thorough fact-finding and solid assumptions at the time of the proposal. The notable exception comes from the number of data sources planned at the time of the proposal versus that actually found during the performance period.
1.2 Requirements Volatility
Not surprisingly, this discrepancy in the number of data sources caused requirements volatility early in the program. Whereas the customer believed they had only 15 data sources, these systems actually touched over 100 other subordinate systems to extract, transform, and modify data. Furthermore, the 100+ systems employed disparate schemas, formats, and business rules, causing the performance team to make multiple design iterations and modifications to the data warehouse schema.
Interestingly, with this exception the approximately 700 customer requirements for the project remained surprisingly stable. The performance team established formal change request (CR) procedures with the customer and processed only 61 CRs for their Release 1 (8%) and almost half that (34 CRs) for Release 2, affecting only 5% of the total requirements. The team noted that these did not cause a major impact and they were able to efficiently handle the requests with the customer.
1.3 Cost Impact
The discovery of the large number of unexpected data sources caused a large cost impact early in the project, driving Release 1 to 5.1x projected cost. Once contained, they only affected Release 2 by a factor of 2.2, for an overall cost impact to the project of 2.6x. Clearly in this case the limited information actually known by the customer and related to the proposal team had the driving impact on the project. In fact, most of this documentation did not even exist. In this case the diverse nature of interfaces and the large number of unique business rules that they implemented required expensive custom handling and development.
2.0 Program B
The second project that we will examine had the mission of developing and integrating products for processing addresses on mail pieces using optical character recognition. The environment consisted of large numbers of IBM RISC/6000 application and data servers running the AIX operating system and Oracle database system, as well as large numbers of standard Intel-based processors running the Microsoft NT operating system.
2.1 Cost Drivers
The major areas of cost followed a routine breakdown into system design and development, network, interface development, project management, as well as support activities for training and post-deployment maintenance and enhancements. System design and development constituted the vast majority of this breakdown, as it included all software development, procurement of COTS software licenses and hardware, and final integration and test of all these end-items. As a COTS-based proposal, the cost model depended heavily on the large percentage (53%) of COTS and unmodified reuse components.
2.2 Requirements Volatility
Soon after contract award, indications began to emerge that the customer had started to favor unique and custom capabilities beyond those provided by the COTS products and existing components described in the proposal. Figure 2, which depicts the total number of requirements over time, shows the clearest indication of this trend. While early in the project the performance team believed that it could meet contract requirements with the proposed COTS solution, the customer began to clarify and enhance the baseline function in the form of new requirements. These new requirements grew rapidly from June 1998 through October 1999, when the customer’s executive management became aware of the cost of the changes requested by their users. The customer executive management reacted by directing a “design to cost” approach with increased receptivity to the original COTS solution. After experiencing a 42% fluctuation, the total number of requirements subsequently dropped.
Once requirements began to stabilize, the CR process quickly helped stabilized the impact to the project. As shown in Figure 3, the performance team managed requirements with the customer using an effective CR process. Requirements volatility became an inconsequential 5.1%.
2.3 Cost Impact
Because the project cost model depended heavily on the use of COTS integration and use of existing software, deviation from this approach by the customer had a large impact on costs. Normalized, these only amounted to a 5% increase over Release 1 estimates and an 11% increase over Release 2 estimates. However, Figure 4 does a much better job of portraying how not adhering to the COTS approach impacted the program and the sizing model
The figure actually shows two important things. First, the inputs to the sizing model resulted in an extremely accurate estimate of the projected size of the completed system as compared to the current estimate at completion (EAC) of the final system. This serves as a useful validation of the parametric inputs and of the model itself. Second, the model paints a very cogent picture of the deviation from a COTS and reused-based vision to one of custom development.
This paper compared the cost models versus actual experiences from two COTS-based programs. Obviously cost model need good data and reliable assumptions. In each case, detailed information provided to personnel responsible for estimating total program costs changed during the period of contract performance. This caused the affected program to deviate from planned cost, which it had to manage with its customer. In the first case, the discovery of new information drove enhancements to the proposed solution. In the second case, the transition from the proposed COTS approach to a custom development significantly altered the final solution. Both programs showed excellent control over change requests throughout the performance period. Likewise, the cost models used by these programs succeeded in identifying and quantifying the development that actually took place.