Evaluating the Impact of Developer Experience on Code Quality: A Systematic Literature Review

  • Jefferson G. M. Lopes UFMG
  • Johnatan Oliveira UFLA
  • Eduardo Figueiredo UFMG

Resumo


The relationship between developer experience and code quality continues to provoke extensive debate and diverging interpretations in software engineering. To investigate this subject, we conducted a systematic literature review and identified 18 relevant papers from which we aim to answer an overarching research question: to what extent does developer experience impact on code quality? Our analysis reveals different definitions and dimensions for both developer experience and code quality, highlighting the complexity and multifaceted nature of their relationship. We also observed contradictory results on the impact of developer experience on code quality. This literature review contributes in two key ways. First, it synthesizes various perspectives on developer experience and code quality, offering a consolidated viewpoint of the current academic work. Second, it uncovers significant gaps in our understanding of the relationship between these two concepts, pinpointing areas for further research and emphasizing the needs for more focused studies to bridge these knowledge gaps.

Referências

K. A. Ericsson. The Cambridge Handbook of Expertise and Expert Performance. 2006.

O. Dieste et al. Empirical evaluation of the effects of experience on code quality and programmer productivity: An exploratory study. In Proceedings of the 2018 International Conference on Software and System Process, pages 111–112, 2018.

R. Alfayez et al. An exploratory study on the influence of developers in technical debt. In Proceedings of the 2018 International Conference on Technical Debt, pages 1–10, 2018.

W. Cunningham. The wycash portfolio management system. In ACM SIGPLAN OOPS Messenger, volume 4, pages 29–30, 1992.

E. Giger et al. Comparing fine-grained source code changes and code churn for bug prediction. 2011.

Y. Wang et al. Complying with coding standards or retaining programming style: A quality outlook at source code level. Journal of Software Engineering and Applications, 01:88–91, 2008.

V. Piantadosi et al. Do attention and memory explain the performance of software developers? Empirical Software Engineering, 2023.

S. Kini et al. Periodic developer metrics in software defect prediction. In 2018 IEEE 18th International Working Conference on Source Code Analysis and Manipulation (SCAM), pages 72–81, 2018.

B. Kitchenham et al. Guidelines for performing systematic literature reviews in software engineering. 2, 2007.

P. Brereton et al. Lessons from applying the systematic literature review process within the software engineering domain. Journal of Systems and Software, 80:571–583, 2007.

L. Olsina et al. Specifying the process model for systematic reviews: An augmented proposal. Journal of Software Engineering Research and Development, 7:7:1 – 7:23, Dec. 2019.

C. González et al. A preliminary investigation of developer profiles based on their activities and code quality: Who does what? In 2021 IEEE 21st International Conference on Software Quality, Reliability and Security (QRS), pages 938–945, 2021.

Y. Qiu et al. An empirical study of developer quality. In 2015 IEEE International Conference on Software Quality, Reliability and Security-Companion, pages 202–209, 2015.

M. Tufano et al. An empirical study on developer-related factors characterizing fix-inducing commits. Journal of Software: Evolution and Process, 29(1):e1797, 2017.

D. Campos et al. An empirical study on the influence of developers’ experience on software test code quality. In Proceedings of the XXI Brazilian Symposium on Software Quality, pages 1–10, 2022.

J. Eyolfson et al. Do time of day and developer experience affect commit bugginess? In Proceedings of the 8th Working Conference on Mining Software Repositories, pages 153–162, 2011.

T. Tsunoda et al. Evaluating the work of experienced and inexperienced developers considering work difficulty in software development. In 2017 18th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), pages 161–166, 2017.

R. Ando et al. How does defect removal activity of developer vary with development experience? In SEKE, pages 540–545, 2015.

M. Salamea et al. Influence of developer factors on code quality: A data study. In 2019 IEEE 19th International Conference on Software Quality, Reliability and Security Companion (QRS-C), pages 120–125, 2019.

H. Hokka et al. Linking developer experience to coding style in open-source repositories. In 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 516–520, 2021.

Z. Karimi et al. Links between the personalities, styles and performance in computer programming. Journal of Systems and Software, 111:228–241, 2016.

F. Falcão et al. On relating technical, social factors, and the introduction of bugs. In 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 378–388, 2020.

F. Rahman et al. Ownership, experience and defects: A fine-grained study of authorship. In Proceedings of the 33rd International Conference on Software Engineering, pages 491–500, 2011.

A. Mockus et al. Predicting risk of software changes. Bell Labs Technical Journal, 5(2):169–180, 2000.

T. Amanatidis et al. Who is producing more technical debt? a personalized assessment of td principal. In Proceedings of the XP2017 Scientific Workshops, pages 1–8, 2017.

D. Cruzes et al. Recommended steps for thematic synthesis in software engineering. In 2011 International Symposium on Empirical Software Engineering and Measurement, 2011.

B. Curtis et al. A field study of the software design process for large systems. Communications of the ACM, 31(11):1268–1287, 1988.

W. Chase et al. The mind’s eye in chess. 1973.

K. Ericsson et al. The role of deliberate practice in the acquisition of expert performance. Psychological Review, 100(3):363–406, 1993.

R. Jeffries et al. The processes involved in designing software. 1981.

K. McKeithen et al. Knowledge organization and skill differences in computer programmers. Cognitive Psychology, 13(3):307–325, 1981.

M. Hamill et al. Common trends in software fault and failure data. IEEE Transactions on Software Engineering, 35:484–496, 2009.

A. Mohan et al. Programming style changes in evolving source code. Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.

N. Altman et al. Association, correlation and causation. Nature Methods, 12:799–800, 2015.

C. Wohlin et al. Experimentation in Software Engineering. Heidelberg, 2012. ISBN 978-3-642-29043-5.

E. Kalliamvakou et al. The promises and perils of mining github. In Proceedings of the 11th Working Conference on Mining Software Repositories, pages 92–101, 2014.

K. Stol et al. Reporting empirical research in open source software: The state of practice. In Open Source Ecosystems: Diverse Communities Interacting, pages 156–169, 2009.

R. Brasil-Silva et al. Metrics to quantify software developer experience: A systematic mapping. Proceedings of the 37th ACM/SIGAPP Symposium on Applied Computing, 2022.

T. Carvalho et al. A systematic literature review of machine learning methods applied to predictive maintenance. Computers Industrial Engineering, 137, 2019.

J. Morales et al. Programmer experience: A systematic literature review. IEEE Access, 7:71079–71094, 2019.
Publicado
06/05/2024
LOPES, Jefferson G. M.; OLIVEIRA, Johnatan; FIGUEIREDO, Eduardo. Evaluating the Impact of Developer Experience on Code Quality: A Systematic Literature Review. In: CONGRESSO IBERO-AMERICANO EM ENGENHARIA DE SOFTWARE (CIBSE), 27. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 166-180.