Using version control data to evaluate the impact of software tools

Software tools can improve the quality and maintainability of software, but are expensive to acquire, deploy and maintain, especially in large organizations. We explore how to quantify the effects of a software tool once it has been deployed in a development environment. We present a simple methodology for tool evaluation that correlates tool usage statistics with estimates of developer effort, as derived from a project's change history (version control system). Our work complements controlled experiments on software tools, which usually take place outside the industrial setting, and tool assessment studies that predict the impact of software tools before deployment. Our analysis is inexpensive, non-intrusive and can be applied to an entire software project in its actual setting. A key part of our analysis is how to control confounding variables such as developer work-style and experience in order accurately to quantify the impact of a tool on developer effort. We demonstrate our method in a case study of a software tool called VE, a version-sensitive editor used in BellLabs. VE aids software developers in coping with the rampant use of preprocessor directives (such as if/ endif) in C source files. Our analysis found that developers were approximately 36% more productive when using VE than when using standard text editors.

[1]  Robert M. Poston,et al.  Evaluating and selecting testing tools , 1992, IEEE Software.

[2]  Victor R. Basili,et al.  An Investigation of Human Factors in Software Development , 1979, Computer.

[3]  Audris Mockus,et al.  Identifying reasons for software changes using historic databases , 2000, Proceedings 2000 International Conference on Software Maintenance.

[4]  M. B. Thompson,et al.  An advanced interface to a switching software version management system , 1989, ICSE 1989.

[5]  John T. Stasko,et al.  Empirically evaluating the use of animations to teach algorithms , 1994, Proceedings of 1994 IEEE Symposium on Visual Languages.

[6]  P. McCullagh,et al.  Generalized Linear Models, 2nd Edn. , 1990 .

[7]  P. McCullagh,et al.  Generalized Linear Models , 1992 .

[8]  Audris Mockus,et al.  Identifying Productivity Drivers by Modeling Work Units Using Partial Data , 2001, Technometrics.

[9]  David L. Atkins Version Sensitive Editing: Change History as a Programming Tool , 1998, SCM.

[10]  D. Rubin,et al.  Maximum likelihood from incomplete data via the EM - algorithm plus discussions on the paper , 1977 .

[11]  E. Burton Swanson,et al.  The dimensions of maintenance , 1976, ICSE '76.

[12]  B. Kitchenham,et al.  Case Studies for Method and Tool Evaluation , 1995, IEEE Softw..

[13]  B. Curtis,et al.  Substantiating programmer variability , 1981, Proceedings of the IEEE.

[14]  Audris Mockus,et al.  Measuring technology effects on software change cost , 2000, Bell Labs Technical Journal.

[15]  Margaret M. Burnett,et al.  Programming complex objects in spreadsheets: an empirical study comparing textual formula entry with direct manipulation and gestures , 1997, ESP '97.

[16]  Audris Mockus,et al.  Measuring domain engineering effects on software change cost , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[17]  Vicky Mosley,et al.  How to assess tools efficiently and quantitatively , 1992, IEEE Software.

[18]  K. Kavi,et al.  Software Tools Assessment , 1996, IEEE Software.

[19]  Audris Mockus,et al.  Inferring change effort from configuration management databases , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[20]  Anil K. Midha Software configuration management for the 21st century , 1997, Bell Labs Technical Journal.

[21]  Martin J. Shepperd,et al.  Estimating Software Project Effort Using Analogies , 1997, IEEE Trans. Software Eng..

[22]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[23]  Ben Shneiderman,et al.  Designing the user interface (2nd ed.): strategies for effective human-computer interaction , 1992 .

[24]  KitchenhamBarbara,et al.  Case Studies for Method and Tool Evaluation , 1995 .

[25]  John E. Gaffney,et al.  Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation , 1983, IEEE Transactions on Software Engineering.

[26]  Gregor Snelting,et al.  Reengineering of configurations based on mathematical concept analysis , 1996, TSEM.

[27]  Alan W. Brown,et al.  A Framework for Evaluating Software Technology , 1996, IEEE Softw..

[28]  John A. Nelder,et al.  Generalized linear models. 2nd ed. , 1993 .

[29]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[30]  Audris Mockus,et al.  Predicting risk of software changes , 2000, Bell Labs Technical Journal.

[31]  Ben Shneiderman,et al.  Designing The User Interface , 2013 .