Collaborative or individual identification of code smells? On the effectiveness of novice and professional developers

Roberto Oliveira*, Rafael de Mello, Eduardo Fernandes, Alessandro Garcia, Carlos Lucena

*Corresponding author for this work

Research output: Contribution to journalJournal articleResearchpeer-review

Abstract

Context: The code smell identification aims to reveal code structures that harm the software maintainability. Such identification usually requires a deep understanding of multiple parts of a system. Unfortunately, developers in charge of identifying code smells individually can struggle to identify, confirm, and refute code smell suspects. Developers may reduce their struggle by identifying code smells in pairs through the collaborative smell identification. Objective: The current knowledge on the effectiveness of collaborative smell identification remains limited. Some scenarios were not explored by previous work on effectiveness of collaborative versus individual smell identification. In this paper, we address a particular scenario that reflects various organizations worldwide. We also compare our study results with recent studies. Method: We have carefully designed and conducted a controlled experiment with 34 developers. We exploited a particular scenario that reflects various organizations: novices and professionals inspecting systems they are unfamiliar with. We expect to minimize some critical threats to validity of previous work. Additionally, we interviewed 5 project leaders aimed to understand the potential adoption of the collaborative smell identification in practice. Results: Statistical testing suggests 27% more precision and 36% more recall through the collaborative smell identification for both novices and professionals. These results partially confirm previous work in a not previously exploited scenario. Additionally, the interviews showed that leaders would strongly adopt the collaborative smell identification. However, some organization and tool constraints may limit such adoption. We derived recommendations to organizations concerned about adopting the collaborative smell identification in practice. Conclusion: We recommend that organizations allocate novice developers for identifying code smells in collaboration. Thus, these organizations can promote the knowledge sharing and the correct smell identification. We also recommend the allocation of developers that are unfamiliar with the system for identifying smells. Thus, organizations can allocate more experience developers in more critical tasks.
Original languageEnglish
Article number106242
JournalInformation and Software Technology
Volume120
ISSN0950-5849
DOIs
Publication statusPublished - Apr 2020
Externally publishedYes

Fingerprint

Dive into the research topics of 'Collaborative or individual identification of code smells? On the effectiveness of novice and professional developers'. Together they form a unique fingerprint.

Cite this