Header

UZH-Logo

Maintenance Infos

An Empirical Characterization of Bad Practices in Continuous Integration


Zampetti, Fiorella; Vassallo, Carmine; Panichella, Sebastiano; Canfora, Gerardo; Gall, Harald; Di Penta, Massimiliano (2020). An Empirical Characterization of Bad Practices in Continuous Integration. Empirical Software Engineering, 25(2):1095-1135.

Abstract

Continuous Integration (CI) has been claimed to introduce several benefits in software development, including high software quality and reliability. However, recent work pointed out challenges, barriers and bad practices characterizing its adoption. This paper empirically investigates what are the bad practices experienced by developers applying CI. The investigation has been conducted by leveraging semi-structured interviews of 13 experts and mining more than 2,300 Stack Overflow posts. As a result, we compiled a catalog of 79 CI bad smells belonging to 7 categories related to different dimensions of a CI pipeline management and process. We have also investigated the perceived importance of the identified bad smells through a survey involving 26 professional developers, and discussed how the results of our study relate to existing knowledge about CI bad practices. Whilst some results, such as the poor usage of branches, confirm existing literature, the study also highlights uncovered bad practices, e.g., related to static analysis tools or the abuse of shell scripts, and contradict knowledge from existing literature, e.g., about avoiding nightly builds. We discuss the implications of our catalog of CI bad smells for (i) practitioners, e.g., favor specific, portable tools over hacking, and do not ignore nor hide build failures, (ii) educators, e.g., teach CI culture, not just technology, and teach CI by providing examples of what not to do, and (iii) researchers, e.g., developing support for failure analysis, as well as automated CI bad smell detectors.

Abstract

Continuous Integration (CI) has been claimed to introduce several benefits in software development, including high software quality and reliability. However, recent work pointed out challenges, barriers and bad practices characterizing its adoption. This paper empirically investigates what are the bad practices experienced by developers applying CI. The investigation has been conducted by leveraging semi-structured interviews of 13 experts and mining more than 2,300 Stack Overflow posts. As a result, we compiled a catalog of 79 CI bad smells belonging to 7 categories related to different dimensions of a CI pipeline management and process. We have also investigated the perceived importance of the identified bad smells through a survey involving 26 professional developers, and discussed how the results of our study relate to existing knowledge about CI bad practices. Whilst some results, such as the poor usage of branches, confirm existing literature, the study also highlights uncovered bad practices, e.g., related to static analysis tools or the abuse of shell scripts, and contradict knowledge from existing literature, e.g., about avoiding nightly builds. We discuss the implications of our catalog of CI bad smells for (i) practitioners, e.g., favor specific, portable tools over hacking, and do not ignore nor hide build failures, (ii) educators, e.g., teach CI culture, not just technology, and teach CI by providing examples of what not to do, and (iii) researchers, e.g., developing support for failure analysis, as well as automated CI bad smell detectors.

Statistics

Citations

Dimensions.ai Metrics
1 citation in Web of Science®
5 citations in Scopus®
Google Scholar™

Altmetrics

Downloads

4 downloads since deposited on 29 Jan 2021
4 downloads since 12 months
Detailed statistics

Additional indexing

Item Type:Journal Article, refereed, original work
Communities & Collections:03 Faculty of Economics > Department of Informatics
Dewey Decimal Classification:000 Computer science, knowledge & systems
Scopus Subject Areas:Physical Sciences > Software
Language:English
Date:2020
Deposited On:29 Jan 2021 11:18
Last Modified:30 Jan 2021 21:01
Publisher:Springer
ISSN:1382-3256
OA Status:Green
Publisher DOI:https://doi.org/10.1007/s10664-019-09785-8
Related URLs:https://link.springer.com/article/10.1007%2Fs10664-019-09785-8
Other Identification Number:merlin-id:20342

Download

Green Open Access

Download PDF  'An Empirical Characterization of Bad Practices in Continuous Integration'.
Preview
Content: Accepted Version
Filetype: PDF
Size: 651kB
View at publisher