Software Development Productivity Evaluation and Improvement for Large Industrial Projects

Detta är en avhandling från Karlskrona : Blekinge Institute of Technology

Sammanfattning: Software development productivity can be improved by introducing improvements in many areas. In this thesis we investigate technology and process driven productivity improvements, i.e., productivity improvements that have sources in changes of technologies or in changes in development processes. The technology driven productivity improvement discussed in this thesis is the change of server platform from a standard general purpose platform to a specialized fault-tolerant platform. We discuss productivity implications of introducing such a platform as well as suggest ways of making the platform introduction process cost efficient. The process changes, which we discuss in this thesis, include improvements of fault detection processes as well as changes of the entire development process. We analyze the implications of introducing new technology by performing case studies, in which we describe, analyze, and quantify the impact of the new platform on software development productivity. We show that there is a significant productivity decrease connected with introducing a new platform. We also show that the initial low productivity can be overcome by experience and maturity. We suggest a number of improvements for both the platform introduction process and the mature development on the specialized platform. Since some productivity decrease after introducing new technology is to a large extent unavoidable, we look for ways of minimizing it. We show that it is possible to minimize it by introducing the specialized platform gradually. We present an example of a hybrid architecture, which combines the specialized and the standard platforms. We show that such architecture is able to provide good technical characteristics for a significantly lower cost as compared to developing the entire application on the specialized platform. As a process improvement suggestion we propose introducing fault prediction models with the goal of increasing the efficiency of fault detection. We suggest and evaluate several such models that are available at different stages of a software development process. The models are evaluated using data from a number of large software systems. Their predictions are also compared with the predictions made by human experts. We show that introducing our fault prediction models is likely to result in an improvement of fault detection efficiency. Another process related productivity improvement suggestion evaluated by us is the change of the development process. We present a case study in which we evaluate a new process concept. One of the goals of that process is to improve the company’s productivity.