Does Technical Debt Lead to the Rejection of Pull Requests?
Resumo
Technical Debt is a term used to classify non-optimal solutions during software development. These solutions cause several maintenance problems and hence they should be avoided or at least documented. Although there are a considered number of studies that focus on the identification of Technical Debt, we focus on the identification of Technical Debt in pull requests. Specifically, we conduct an investigation to reveal the different types of Technical Debt that can lead to the rejection of pull requests. From the analysis of 1,722 pull requests, we classify Technical Debt in seven categories namely design, documentation, test, build, project convention, performance, or security debt. Our results indicate that the most common category of Technical Debt is design with 39.34%, followed by test with 23.70% and project convention with 15.64%. We also note that the type of Technical Debt influences on the size of push request discussions, e.g., security and project convention debts instigate more discussion than the other types.
Referências
Carneiro, G., Conceição C. F., David, J. M. N. 2012. A Multiple View Environment for Collaborative Software Comprehension. ICSEA: The Seventh International Conf. on Software Engineering Advances, Portugal, 15-21.
D’Ambros M., Lanza, M. 2010. Distributed and Collaborative Software Evolution Analysis with Churrasco. Experimental Software and Toolkits (EST 3): A special issue of the Workshop on Academic Software Development Tools and Techniques (WASDeTT), 276–287.
Fedotova, O.; Teixeira, L.; Alvelos, H. 2013. Software Effort Estimation with Multiple Linear Regression: Review and Practical Application. Journal of Information Science and Engineering, v. 29, n. 5, 925-945.
Franco, N. B. Cálculo numérico, 2006. Pearson, 5-14.
Gestal, P. R. E, Barros, R. M. 2014 Proposta de Um Simulador para Auxiliar no Processo de Ensino do Scrum. In Simpósio Brasileiro de Sistemas de Informação (SBSI), 723- 736.
Kevic, K., Muller, S. C., Fritz, T., & Gall, H. C. 2013. Collaborative bug triaging using textual similarities and change set analysis. Cooperative and Human Aspects of Software Engineering (CHASE), 6th International Workshop on, IEEE, 17-24.
Kitchenham, B.A., Charters, S. 2007. Guidelines for performing systematic literature reviews in software engineering. Tech. Rep. EBSE-2007-01, Keele University.
Levenshtein V. Binary Codes Capable of Correcting Deletions, Insertions, and Reversals, Soviet Physice- Doklady, 10:707-710, 1966.
Massart, D. L., Smeyers-Verbeke, J. C. X., Schlesier, K. 2005. Visual presentation of data by means of box plot.
Paredes, J., Anslow, C., & Maurer, F. 2014. Information Visualization for Agile Software Development. In Software Visualization (VISSOFT), 2014 Second IEEE Working Conference on. 157-166.
Peixoto, C. E. L, Audy J. L. N., Prikladnicki, R. 2010, The importance of the use of an estimation process. In: ICSE Workshop on Software Development Governance. ACM.. 13-17.
Poncin, W., Serebrenik, A., Van Den Brand, M. Process mining software repositories. 2011. Software Maintenance and Reengineering (CSMR), 2011 15th European Conference on. IEEE. 5-14.
Storey, M. D., Čubranić D., German, D, M. 2005. On the use of visualization to support awareness of human activities in software development: a survey and a framework. Proceedings of the 2005 ACM symposium on Software visualization, 193-202.
Tavares, J., David, J. M. N., Araújo, M. A.P., Braga, R., Campos, F. C. A. Carneiro, C. GiveMe Views: uma ferramenta de suporte a evolução de software baseada na análise de dados históricos. 2015. In Simpósio Brasileiro de Sistemas de Informação (SBSI), 55-62.