Using version control data to evaluate the impact of software tools
Proceedings of the 21st international conference on Software engineering
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Globalization by Chunking: A Quantitative Approach
IEEE Software
IEEE Transactions on Software Engineering
CVSSearch: Searching through Source Code using CVS Comments
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Determining the Distribution of Maintenance Categories: Survey versus Measurement
Empirical Software Engineering
Toward Understanding the Rhetoric of Small Source Code Changes
IEEE Transactions on Software Engineering
Surveying the factors that influence maintainability: research design
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Repository mining and Six Sigma for process improvement
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
TA-RE: an exchange language for mining software repositories
Proceedings of the 2006 international workshop on Mining software repositories
Beyond source code: the importance of other artifacts in software development (a case study)
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
Using planning poker for combining expert estimates in software projects
Journal of Systems and Software
Timesheet assistant: mining and reporting developer effort
Proceedings of the IEEE/ACM international conference on Automated software engineering
A controlled experiment in assessing and estimating software maintenance tasks
Information and Software Technology
Rank-based refactoring decision support: two studies
Innovations in Systems and Software Engineering
Governance practices and software maintenance: A study of open source projects
Decision Support Systems
Hi-index | 0.00 |
In this paper we describe a methodology and algorithm for historical analysis of the effort necessary for developers to make changes to software. The algorithm identifies factors which have historically increased the difficulty of changes. This methodology has implications for research into cost drivers. As an example of a research finding, we find that a system under study was ``decaying'' in that changes grew more difficult to implement at a rate of 20\% per year. We also quantify the difference in costs between changes that fix faults and additions of new functionality: fixes require 80\% more effort after accounting for size. Since our methodology adds no overhead to the development process, we also envision it being used as a project management tool: for example, developers can identify code modules which have grown more difficult to change than previously, and can match changes to developers with appropriate expertise. The methodology uses data from a change management system, supported by monthly time sheet data if available. The method's performance does not degrade much when the quality of the time sheet data is limited. We validate our results using a survey of the developers under study: the change efforts resulting from the algorithm match the developers' opinions. Our methodology includes a technique based on the jackknife to determine factors that contribute significantly to change effort.