BMW AG

Fraunhofer-Institut für Experimentelles Software Engineering IESE

/de/customers_industries/automotive/referenzprojekt_bmw_softwaredevelopementcosts/jcr:content/stage/image/file

Estimating Software Development Costs

Fraunhofer IESE developed a concept for cost estimation of BMW application software. The method uses both data and expert opinions and showed excellent estimation accuracy in other contexts.

One important challenge for the BMW application software development is the estimation of cost for software projects. This is essential in order to properly estimate their internally developed projects as well as assessing incoming bids. However, the estimation of cost for software projects is one of the most important and most difficult management tasks. A number of problems are commonplace and may explain the situation. These problems are related to a lack of necessary input data from past projects and a lack of knowledge about which data to collect that has the most impact on the cost.

Another challenge and vision for BMW is to support the reuse of software engineering know-how across different software projects. One example of such know-how is cost-related data collected during projects and the lessons learned when applying different cost estimation procedures.

In collaboration with Fraunhofer IESE, a concept for the establishment of an appropriate cost estimation procedure at BMW was introduced. In addition, an iterative and incremental approach to establishing the reuse of software engineering know-how was proposed.

Approach

The cost estimation concept was based on the COBRA™ method (Cost Estimation Benchmarking and Risk Assessment). This method was initially developed by Fraunhofer IESE and can be easily tailored to a specific project context. COBRA™ is based on expert opinion and data from past projects. It provides decision support during the estimation process, and its application leads to relatively accurate results.

COBRA™ consists of two main components. The first component determines the most important cost factors and assesses their influence on cost. The second component defines a quantitative model for cost estimation that efficiently uses the data identified as important.

To collect useful cost data, it is necessary to determine predominant factors with an impact on cost. This is done through knowledge acquisition from experienced project managers. Within the BMW project, representative BMW project managers were asked to decide about the relative importance of a large number of potential cost factors. Based on these results, interviews were performed to quantify the cost drivers according to their relative impact on cost. Uncertainty in the answers was also taken into account.

The size of the software system is one of the most important cost factors and thus is considered in the first component of COBRA™. Within the BMW project, a sizing procedure was defined following standard size measures, such as function points. This procedure also utilized the information from the BMW development standard.

The results obtained regarding the cost drivers cannot be applied to all the heterogeneous systems within BMW as a whole. Rather, they should be applied to similar, comparable projects only. Therefore, project characteristics that distinguish different types of projects were determined in collaboration with the BMW project managers. These project attributes determine the scope of a COBRA™ application.

All of the above-mentioned parts were integrated into a COBRA™ model that is valid for a specific type of BMW projects. Since a lot of uncertainty exists at the early stages of a project, COBRA™ incorporates the possibility for quantitative risk management using Monte-Carlo simulations. This allows for assessing the probability of overrunning a certain budget for a project. The relevant data collection instruments were defined and usage scenarios were described.

To address BMW’s second objective, a concept for reusing software engineering know-how was proposed. Based on a baseline, an incremental iterative approach was suggested that included three steps. In each step, the technical and organizational level was taken into account. The first step describes initial means for establishing the technical infrastructure and enabling corresponding processes on the organizational level. The second step evaluates the feasibility of establishing knowledge management at BMW. The third step incorporates a description of how to run and maintain an experience factory.

Results

The main results of this project were documented and consist of:

A repeatable ranking procedure of cost factors regarding their importance. This enables BMW to perform a ranking of potential cost factors in any other project environment.

An interview-based process to determine the relative impact of cost factors. This documentation is essential in order to apply the COBRA™ principles to other project environments.

A proposal for a sizing procedure for BMW projects. This procedure serves as a starting point for consistently collecting sizing information on upcoming projects. Size estimation is one important component needed to apply COBRA™. Besides this, the application of any other cost estimation procedure also requires reliable size measurement.

A definition of important data to collect for accurate cost estimation of BMW software projects and the corresponding data collection procedures. This enables BMW to collect important cost-related data.

A description of how to use the data for estimation and bid assessment. These scenarios are important for project managers who want to apply COBRA™ in order to assess and estimate a new upcoming software project.

A description of how to build a COBRA™ model. This information is essential for project managers who want to establish COBRA™-based cost estimation for different project environments.

A description of a concept for reusing software engineering know-how. This might serve as a starting point for efficiently piloting the COBRA™ method in a specific project environment and for deploying it across different divisions.  

COBRA™ is a registered trademark of the Fraunhofer-Gesellschaft.