Software Development Productivity Issues in Large Telecommunication Applications

University dissertation from Karlskrona : Blekinge Institute of Technology

Abstract: The high non-functional requirements of telecommunication applications increase their complexity. Introducing a new and specialized technology is often seen as a way of meeting these high non-functional requirements. An example of such a technology is a software platform that provides high performance and availability. The change of technology can, however, impact another important factor of a successful software development – the cost. The cost is mostly affected by the low development productivity when using the new technology. Therefore it is a challenging task to introduce the new technology in a cost-efficient manner. This thesis investigates the software development cost implications of introducing a specialized technology. We present case studies in which we describe, analyse, and quantify the impact of the new platform on software development productivity. By comparing with UNIX development productivity we establish the initial productivity cost of introducing the new platform. We show that there is a significant difference in the productivity between UNIX and the new platform. We analyse and describe the reasons for this difference. By comparing the productivity in early and mature software development on the new platform we investigate which of the problems that cause the initial low productivity tend to disappear with time. We quantify the impact of experience and maturity on the productivity improvement. Based on our findings, we suggest a number of improvements for both the platform introduction process and the mature development on the specialized platform. The initial high development cost on the specialized platform is, however, an unavoidable issue that the organization must face. Therefore we look for a way of decreasing that cost. We show that it is possible to decrease the cost if we introduce the specialized platform gradually, instead of developing the entire application on it. We present an example of a hybrid architecture, which combines the specialized and the standard platforms. We evaluate it with respect to availability, reliability, performance, and cost. We find that such an architecture is able to provide good technical characteristics for a significantly lower cost as compared to developing the entire application on the specialized platform.