Principles of software engineering management
Principles of software engineering management
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
The pragmatic programmer: from journeyman to master
The pragmatic programmer: from journeyman to master
Software Metrics: A Rigorous and Practical Approach
Software Metrics: A Rigorous and Practical Approach
Predicting fault-prone components in a java legacy system
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Hi-index | 0.00 |
Exorcism is mainly thought of as the rite of driving out the Devil and his demons from possessed persons. This text is about the same process except here the target is a legacy software system. The target system was a major component based system having been developed over 7 years by 30 to 60 people continuously under a classic plan driven approach. The Pareto Principle, or 80/20 rule as it is often called, is used as the framework to prioritize activities in a major reengineering initiative on the system from limited resources. The initiative's main focus was to increase the developer productivity in the maintenance project in the system by 25 percent. Typical agile practices were the inspiration for many of the changes implemented through the project.A measurement program is presented for validating success, and the XRadar open source tool is used for measuring the program. In one year, the productivity increase was above 30 percent. There seems to be a high correlation between productivity and the implementation of the agile practices such as short iterations, daily standup-meetings and pair programming as substitutes with the practice of a formal QA regime. During the same period the error proneness of the system decreased with several magnitudes and our definition of the internal software quality increased by 22 percent. Hence, based on our measurements, the increased productivity was not substituted by lower quality in the system - on the contrary.