The SEI COTS-Based Systems (CBS) work has focused on three primary categories of practices:
Making the change to a CBS approach is akin to making the change from being a developer and producer of systems to being a consumer and integrator instead. Many of the changes this yields involve evaluation of technologies and products, and the design and engineering of systems. However, there are also numerous changes that affect how the development and maintenance of such systems are managed.
Becoming an effective consumer and integrator of COTS products necessitates applying new strategies for licensing products, negotiating data rights, estimating system development and maintenance cost, predicting schedules, managing personnel, and identifying and reducing risks. An effective CBS consumer also requires knowledge of how to build sufficient flexibility into procurement and contract documents to allow a variety of creative solutions while at the same time encouraging bidders to selecting appropriate components and strategies.
Effective COTS consumers also must identify appropriate steps for determining when a system (or system component) is a good candidate for migration toward a CBS approach. Implicit in this statement is the expectation that some systems do not represent good candidates, perhaps due to characteristics of the system, the available technologies, or the COTS marketplace.
Carney and Oberndorf identify some of the issues to be considered in making determinations regarding the suitability of adopting a CBS strategy.
Our strategy for identifying best acquisition and management practices requires continual contact with commercial and federal organizations experienced with aspects of CBS approaches. These best practices are described in the book Managing Software Acquisition: Open Systems and COTS Products. The information gathered from experts has also served as fodder for the development of many of our products. We have further codified our knowledge into the technical report EPIC, the Evolutionary Process for Integrating COTS-Based Systems.