Software Engineering Productivity: Concepts, Issues and Challenges
Authors: Adrián Hernández-López; Ricardo Colomo Palacios; Á. García-Crespo; Fernando Cabezas-Isla
Year: 2011

Software engineering productivity has been widely studied, but there are many issues that remain unsolved. Interesting works related to new metrics and more replications of past productivity analysis have emerged, however, in order to fulfill these unsolved issues, a consensus about influencing factors and well recognized and useful sets of inputs and outputs for using in measurements must be reached. In this regard, a clear state of the art may shed light on further research in software engineering productivity, which remains a promising research area. In this paper, general concepts of software engineering productivity along with general issues and recent challenges that need further attention from the research community are presented. crucial aspect for decision making in the global market (Ross & Ernstberger, 2006). There are two main areas of production in the IT industry that can coexist in an IT project: software and hardware. Focusing on IT software project, primary types of projects are considered: new development and maintenance, in which productivity measurement seems similar but need to be analyzed separately (Premraj, Shepperd, Kitchenham, & Forselius, 2005). On the one hand, productivity metrics in IT software projects are mainly based on ratios between the size of delivered software and the effort performed to obtain it (Arnold & Pedross, DOI: 10.4018/jitpm.2011010103 38 International Journal of Information Technology Project Management, 2(1), 37-47, January-March 2011 Copyright © 2011, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global is prohibited. 1998; MacCormack, Kemerer, Cusumano, & Crandall, 2003). Following this direction, Function Points (FP) and Source Lines Of Code (SLOC) are misleading measurements because the overall development may be unproductive even though programming productivity has increased (Lee & Schmidt, 1997). Furthermore, there are some recent proposals such as measuring productivity based on postmortem Function Points (Asmild, Paradi, & Kulkarni, 2006), using multiple size measures (Kitchenham & Mendes, 2004), and specific methods for methodologies such as Object Oriented (Pendharkar, 2006). On the other hand, the factors that influence IT Productivity are widely accepted, i.e., increasing store constraints, timing constraints, reliability requirements, high level languages, team size, requirements volatility, staff tools skills, staff availability, customer participation, and project duration (see for example, Foulds, Quaddus, & West, 2007; Maxwell & Forselius, 2000). Despite of its acceptance, the influence, positive or negative, of some of these factors in IT Productivity is not clear and may vary due to external factors such as the business sector (Maxwell & Forselius, 2000; Premraj, Twala, Mair, & Forselius, 2004) and outsourcing ratio (Tsunoda, Monden, Yadohisa, Kikuchi, & Matsumoto, 2009). Moreover, metrics based on code only represent the productivity of coding activities, while other activities such as management, analysis, and design stay out of those metrics scope. Therefore, the relation between productivity and non coding activities in software development projects has not been properly addressed. Finally, the use of code measures such as SLOC is not sufficient by itself; multidimensional inputs must be included in measuring productivity (Mahmood, Pettingell, & Shaskevich, 1996). In this scenario, the definition of new models, measures and assessment methods may elucidate productivity in IT projects, especially in software development projects as it has been done for software maintenance projects (Banker, Datar, & Kemerer, 1991). In turn, companies need to establish their own productivity metrics in addition to benchmarking their data (Maxwell & Forselius, 2000). Furthermore, the construction of a state of the art about IT productivity regarding software development may result in a solid contribution to be considered by future researches in this area. In order to shed some light on this area, we present the state of the art of IT projects performance from different standpoints. Firstly, we introduce the general concepts regarding productivity and software engineering productivity. Secondly, we analyze issues that influence productivity measurement in this industry sector. Thirdly, we present the challenges that have been proposed in the research literature and some new ones that we propose. Finally, we finish this article with some conclusions.