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. Tarek, K. A.-H. The slippery path to productivity improvement. IEEE Softw., 1996, 13, 43–52.
2. Boehm, B., Abts, C., and Chulani, S. Software development cost estimation approaches – a survey. Ann. Softw. Eng., 2000, 10, 177–205.
3. Boehm, B. W. Software Engineering Economics. Prentice Hall PTR, Upper Saddle River, NJ, USA, 1981.
4. Chidamber, S. R. and Kemerer, C. F. A metrics suite for object oriented design. IEEE Trans. Softw. Eng., 1994, 20, 476–493.
5. Donzelli, P. Tailoring the software maintenance process to better support complex systems evolution projects. J. Softw. Maintenance, 2003, 15, 27–40.
6. Ferenc, R., Beszédes, Á., Tarkiainen, M., and Gyimóthy, T. Columbus – reverse engineering tool and schema for C++. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM 2002). IEEE Computer Society, October 2002, 172–181.
7. Junio, G. A., Malta, M. N., de Almeida, H. M., Marques-Neto, H. T., and Valente, M. T. On the benefits of planning and grouping software maintenance requests. In CSMR ’11. IEEE Computer Society, Washington, DC, USA, 2011, 55–64.
8. Wei Li and Henry, S. Object-oriented metrics that predict maintainability. J. Syst. Softw., 1993, 23, 111–122.
9. Mockus, A., Weiss, D. M., and Ping Zhang. Understanding and predicting effort in software projects. In 2003 International Conference on Software Engineering. ACM Press, 2002, 274–284.
10. Premraj, R., Shepperd, M., Kitchenham, B., and Forselius, P. An empirical analysis of software productivity over time. In Proceedings of the 11th IEEE International Software Metrics Symposium. IEEE Computer Society, Washington, DC, USA, 2005, 37–46.
11. Pressman, R. S. Software Engineering, A Practitioner’s Approach. McGraw Hill, 7th edition, 2010.
12. Rajlich, V. and Gosavi, P. Incremental change in object-oriented programming. IEEE Softw., 2004, 21, 62–69.
13. Tóth, G., Végh, Á. Z., Beszédes, Á., and Gyimóthy, T. Adding process metrics to enhance modifica\-tion complexity prediction. In Proceedings of the IEEE International Conference on Program Comprehension (ICPC 2011). 2011, 201–204.