Implementing and executing software metrics is a cumbersome task as it is difficult to manage the technical and human aspects of the software measurement. Also, there exist many issues which prevent the successful implementation and execution of software metrics. These issues are listed below.
- Lack of management commitment: It is observed that management is not committed towards using software metrics due to the following reasons
- § Management opposes measurement.
- § Software engineers do not measure and collect data as management does not realize their importance.
- § Management charters a metrics program, but does not assist in deploying the program into practice.
- Collecting data that is not used: Data collected during the measurement process should be such that it can be used to enhance the process, project, or product. This is because collecting incorrect data results in wrong decision making, which in turn leads to deviation from the software development plan.
- Measuring too much and too soon: In a software project, sometimes excess data is collected in advance, which is difficult to manage and analyze. This results in unsuccessful implementation of the metrics.
- Measuring the wrong things: Establishing metrics is a time consuming process and only those data that provide valuable feedback should be measured in an effective and efficient manner. To know whether data needs to be measured, a few questions should be addressed (if answers are no, then metrics should not be established).
§ Do data items collected relate to the key success strategies for business?
§ Are managers able to obtain the information they need to manage projects and people on time?
§ Is it possible to conclude from data obtained that process changes are working?
- Imprecise metrics definitions: Vague or ambiguous metrics definition can be misinterpreted. For example, some software engineers may interpret a software feature as unnecessary while some software engineers may not.
- Measuring too little, too late: Measuring too less, provides information, which is of little or no importance for the software engineers. Thus, software engineers tend to offer resistance in establishing metrics. Similarly, if data is collected too late, the requested data item may result in unnecessary delay in software project as project managers and software engineers do not get the data they need on time.
- Misinterpreting metrics data: Interpretation of metrics data is important to improve the quality of software. However, software metrics are often misinterpreted. For example, if the number of defects in the software increases despite effort taken to improve the quality, then software engineers might conclude that software improvement effort are doing more harm than good.
- Lack of communication and training: Inadequate training and lack of communication results in poor understanding of software metrics and measurement of unreliable data. In addition, communicating metrics data in an ineffective manner results in misinterpretation of data.
In order to resolve or avoid these issues, the purpose for which data will be used should be clearly specified before the measurement process begins. Also, project managers and software engineers should be adequately trained and measured data should be properly communicated to them. Software metrics should be defined precisely so that they work effectively.