Beyond technical aspects: how do community smells influence the intensity of code smells?

Fabio Palomba, Damian Andrew Tamburri, Francesca Arcelli Fontana, Rocco Oliveto, Andy Zaidman, A. Serebrenik

Research output: Contribution to journalArticleAcademicpeer-review

9 Citations (Scopus)
11 Downloads (Pure)

Abstract

Code smells are poor implementation choices applied by developers during software evolution that often lead to critical flaws or failure. Much in the same way, community smells reflect the presence of organizational and socio-technical issues within a software community that may lead to additional project costs. Recent empirical studies provide evidence that community smells are often---if not always---connected to circumstances such as code smells. In this paper we look deeper into this connection by conducting a mixed-methods empirical study of 117 releases from 9 open-source systems. The qualitative and quantitative sides of our mixed-methods study were run in parallel and assume a mutually-confirmative connotation. On the one hand, we survey 162 developers of the 9 considered systems to investigate whether developers perceive relationship between community smells and the code smells found in those projects. On the other hand, we perform a fine-grained analysis into the 117 releases of our dataset to measure the extent to which community smells impact code smell intensity (i.e., criticality). We then propose a code smell intensity prediction model that relies on both technical and community-related aspects. The results of both sides of our mixed-methods study lead to one conclusion: community-related factors contribute to the intensity of code smells. This conclusion supports the joint use of community and code smells detection as a mechanism for the joint management of technical and social problems around software development communities.
Original languageEnglish
JournalIEEE Transactions on Software Engineering
Early online date2020
DOIs
Publication statusE-pub ahead of print - 2020

Fingerprint

Software engineering
Defects
Costs

Keywords

  • Code smells
  • Convergence
  • Feature extraction
  • Open source software
  • Predictive models
  • Software engineering
  • Tools
  • community smells
  • mixed-methods study
  • organizational structure

Cite this

@article{ca29bb7d2ebb4309bcf8b667c50d20f5,
title = "Beyond technical aspects: how do community smells influence the intensity of code smells?",
abstract = "Code smells are poor implementation choices applied by developers during software evolution that often lead to critical flaws or failure. Much in the same way, community smells reflect the presence of organizational and socio-technical issues within a software community that may lead to additional project costs. Recent empirical studies provide evidence that community smells are often---if not always---connected to circumstances such as code smells. In this paper we look deeper into this connection by conducting a mixed-methods empirical study of 117 releases from 9 open-source systems. The qualitative and quantitative sides of our mixed-methods study were run in parallel and assume a mutually-confirmative connotation. On the one hand, we survey 162 developers of the 9 considered systems to investigate whether developers perceive relationship between community smells and the code smells found in those projects. On the other hand, we perform a fine-grained analysis into the 117 releases of our dataset to measure the extent to which community smells impact code smell intensity (i.e., criticality). We then propose a code smell intensity prediction model that relies on both technical and community-related aspects. The results of both sides of our mixed-methods study lead to one conclusion: community-related factors contribute to the intensity of code smells. This conclusion supports the joint use of community and code smells detection as a mechanism for the joint management of technical and social problems around software development communities.",
keywords = "Code smells, Convergence, Feature extraction, Open source software, Predictive models, Software engineering, Tools, community smells, mixed-methods study, organizational structure",
author = "Fabio Palomba and Tamburri, {Damian Andrew} and Fontana, {Francesca Arcelli} and Rocco Oliveto and Andy Zaidman and A. Serebrenik",
year = "2020",
doi = "10.1109/TSE.2018.2883603",
language = "English",
journal = "IEEE Transactions on Software Engineering",
issn = "0098-5589",
publisher = "Institute of Electrical and Electronics Engineers",

}

Beyond technical aspects : how do community smells influence the intensity of code smells? / Palomba, Fabio; Tamburri, Damian Andrew; Fontana, Francesca Arcelli; Oliveto, Rocco; Zaidman, Andy; Serebrenik, A.

In: IEEE Transactions on Software Engineering, 2020.

Research output: Contribution to journalArticleAcademicpeer-review

TY - JOUR

T1 - Beyond technical aspects

T2 - how do community smells influence the intensity of code smells?

AU - Palomba, Fabio

AU - Tamburri, Damian Andrew

AU - Fontana, Francesca Arcelli

AU - Oliveto, Rocco

AU - Zaidman, Andy

AU - Serebrenik, A.

PY - 2020

Y1 - 2020

N2 - Code smells are poor implementation choices applied by developers during software evolution that often lead to critical flaws or failure. Much in the same way, community smells reflect the presence of organizational and socio-technical issues within a software community that may lead to additional project costs. Recent empirical studies provide evidence that community smells are often---if not always---connected to circumstances such as code smells. In this paper we look deeper into this connection by conducting a mixed-methods empirical study of 117 releases from 9 open-source systems. The qualitative and quantitative sides of our mixed-methods study were run in parallel and assume a mutually-confirmative connotation. On the one hand, we survey 162 developers of the 9 considered systems to investigate whether developers perceive relationship between community smells and the code smells found in those projects. On the other hand, we perform a fine-grained analysis into the 117 releases of our dataset to measure the extent to which community smells impact code smell intensity (i.e., criticality). We then propose a code smell intensity prediction model that relies on both technical and community-related aspects. The results of both sides of our mixed-methods study lead to one conclusion: community-related factors contribute to the intensity of code smells. This conclusion supports the joint use of community and code smells detection as a mechanism for the joint management of technical and social problems around software development communities.

AB - Code smells are poor implementation choices applied by developers during software evolution that often lead to critical flaws or failure. Much in the same way, community smells reflect the presence of organizational and socio-technical issues within a software community that may lead to additional project costs. Recent empirical studies provide evidence that community smells are often---if not always---connected to circumstances such as code smells. In this paper we look deeper into this connection by conducting a mixed-methods empirical study of 117 releases from 9 open-source systems. The qualitative and quantitative sides of our mixed-methods study were run in parallel and assume a mutually-confirmative connotation. On the one hand, we survey 162 developers of the 9 considered systems to investigate whether developers perceive relationship between community smells and the code smells found in those projects. On the other hand, we perform a fine-grained analysis into the 117 releases of our dataset to measure the extent to which community smells impact code smell intensity (i.e., criticality). We then propose a code smell intensity prediction model that relies on both technical and community-related aspects. The results of both sides of our mixed-methods study lead to one conclusion: community-related factors contribute to the intensity of code smells. This conclusion supports the joint use of community and code smells detection as a mechanism for the joint management of technical and social problems around software development communities.

KW - Code smells

KW - Convergence

KW - Feature extraction

KW - Open source software

KW - Predictive models

KW - Software engineering

KW - Tools

KW - community smells

KW - mixed-methods study

KW - organizational structure

UR - http://www.scopus.com/inward/record.url?scp=85057852491&partnerID=8YFLogxK

U2 - 10.1109/TSE.2018.2883603

DO - 10.1109/TSE.2018.2883603

M3 - Article

JO - IEEE Transactions on Software Engineering

JF - IEEE Transactions on Software Engineering

SN - 0098-5589

ER -