IMTC 2006 – Instrumentation and Measurement Technology Conference Sorrento, Italy 24-27 April 2006 A perspective on non invasive software management Andrea Janes, Marco Scotto, Alberto Sillitti, Giancarlo Succi Center for Applied Software Engineering, Free University of Bolzano Piazza Domenicani 3, 39100 Bolzano (BZ), Italy Email: {andrea.janes, marco.scotto, alberto.sillitti, giancarlo.succi}@unibz.it Abstract – Measurement in software production is essential for understanding, controlling, and improving the software development process. Past research has emphasized the importance of a disciplined data collection process as a prerequisite for a sound, solid, and useful analysis. This article proposes non-invasive, i.e. automatic measurement techniques to instill a continuous and consistent framework to support software project management and to overcome the drawbacks of manual data collection. Keywords – Management, Measurement, Performance, Economics I. INTRODUCTION The collection of measures is the first step in order to know how to control and improve the software development process [4]. In the context of software project management, data about performed activities, produced artifacts and their properties helps to understand the value delivered to stakeholders. To understand what value is currently produced means to understand if the current team effort is aligned to deliver what is really needed and to lower the connected risks of software development [1]. Past research has also shown the improvements in coding quality, defect prevention, and effort prediction accuracy when developers measure their personal development process and in this way better understand how they work [6]. In spite of the scientifically proven advantages of using measurement in software production, it is not widely adopted [3]. One reason for this is because measurement programs often rely on manual data collection and therefore require a considerable effort (see [6] and [7]). Additionally, the alignment of the measurement goals to a specific environment as well as the ongoing adjustment of the collected metrics to changed environments requires additional effort [3]. Manual data collection requires a continuous “context switch” between product development and process recording [7]. This means that the developer has to change often on what he is currently focusing his or her attention. This is experienced as an annoying activity and can be the cause of errors because the engineer is not concentrated enough. It can be also “too intrusive for many users who desire long periods of uninterrupted focus for efficient and effective development” [7]. In this context, non-invasive, i.e. automatic measurement techniques are proposed to overcome at least a part of the mentioned disadvantages. Not all possible measurement activities can be automated, since the wide range of data often collected comes from sources which are difficult or impossible to read in an automated way. II. PROPOSED APPROACH The proposed approach is to develop a measurement framework that aims to achieve two goals: a) to measure automatically the effort spent per artifact – in this case file, class, or method. b) to integrate existing tools that extract well known metrics from the code (such as tools calculating metrics of the Chidamber and Kemerer metrics suite [2]) with the measurements about the relative effort. In this way important cause and effect relationships can be discovered. The proposed tool – ProM (ProMetrics) – consists of different tools (see figure 1) in order to obtain measurements from the software development process, to analyze the collected data, and to provide stakeholder specific views of the results. Figure 1. Architecture of ProM. A. Data collection As mentioned in section 1, it is essential that the data collection process is as non-invasive (i.e. not requiring interaction with the developer) as possible. For this reason the data collection tools can be used without any intervention by the developer. Different tools were developed to collect metrics about different aspects of the software development process: