Adjusting effort estimation using micro-productivity profiles

We investigate a phenomenon we call micro-productivity decrease, which is expected to be found in most development or maintenance projects and has a specific profile that depends on the project, the development model, and the team. Micro- productivity decrease refers to the observation that the cumulative effort to implement a series of changes is larger than the effort that would be needed if we made the same modification in only one step. The reason for the difference is that the same sections of code are usually modified more than once in the series of (sometimes imperfect) atomic changes. Hence, we suggest that effort estimation methods based on atomic change estimations should incorporate these profiles when being applied to larger modification tasks. We verify the concept on industrial development projects with our metrics-based machine learning models extended with statistical data. We show that the calculated Micro-Productivity Profile for these projects could be used for effort estimation of larger tasks with more accuracy than a naive atomic change-oriented estimation.

[1]  Tibor Gyimóthy,et al.  Columbus - reverse engineering tool and schema for C++ , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[2]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[3]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[4]  Audris Mockus,et al.  Understanding and predicting effort in software projects , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[5]  Tarek K. Abdel-Hamid,et al.  The Slippery Path to Productivity Improvement , 1996, IEEE Softw..

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

[7]  Barry W. Boehm,et al.  Software development cost estimation approaches — A survey , 2000, Ann. Softw. Eng..

[8]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[9]  Marco Tulio Valente,et al.  On the Benefits of Planning and Grouping Software Maintenance Requests , 2011, 2011 15th European Conference on Software Maintenance and Reengineering.

[10]  Paolo Donzelli,et al.  Tailoring the software maintenance process to better support complex systems evolution projects , 2003, J. Softw. Maintenance Res. Pract..

[11]  Václav Rajlich,et al.  Incremental change in object-oriented programming , 2004, IEEE Software.

[12]  Tibor Gyimóthy,et al.  Adding Process Metrics to Enhance Modification Complexity Prediction , 2011, 2011 IEEE 19th International Conference on Program Comprehension.

[13]  Barbara A. Kitchenham,et al.  An empirical analysis of software productivity over time , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).