“Does Your Configuration Code Smell?” – MSR 2016

The paper “Does Your Configuration Code Smell?” to appear in the proceedings of 13th international conference on Mining Software Repositories to be held on 14-15 May 2016 in Austin, Texas, USA.


Infrastructure as Code (IaC) is the practice of specifying computing system configurations through code, and managing them through traditional software engineering methods. The wide adoption of configuration management and the increasing size and complexity of the associated code, prompt for assessing, maintaining, and improving the configuration code’s quality. In this context, traditional software engineering knowledge and best practices associated with code quality management can be leveraged to assess and manage configuration code quality. We propose a catalog of 13 implementation and 11 design configuration smells, where each smell violates recommended best practices for configuration code. We analyzed 4621 Puppet repositories containing 8.9 million lines of code and detected the cataloged implementation and design configuration smells. Our analysis reveals that the design configuration smells show 9% higher average co-occurrence among themselves than the implementation configuration smells. We also observed that the volume of identified configuration smells from a smell category shows high correlation with the volume of identified smells belonging to the other category. Finally, design configuration smell density shows negative correlation whereas implementation configuration smell density exhibits no correlation with the size of a configuration management system.


Tushar Sharma, Marios Fragkoulis, Diomidis Spinellis


Want to cite? Use the following bibtex entry:

author = {Sharma, Tushar and Fragkoulis, Marios and Spinellis, Diomidis},
title = {Does Your Configuration Code Smell?},
booktitle = {Proceedings of the 13th International Workshop on Mining Software Repositories},
series = {MSR ’16},
year = {2016},
isbn = {978-1-4503-4186-8},
location = {Austin, Texas},
pages = {189–200},
numpages = {12},
url = {http://doi.acm.org/10.1145/2901739.2901761},
doi = {10.1145/2901739.2901761},
acmid = {2901761},
publisher = {ACM},
address = {New York, NY, USA},


You may download the preprint (PDF) from here.

Author: Tushar

Tushar Sharma is a software engineering researcher, developer, and author. He is currently a Research Scientist at Siemens Corporate Technology, Charlotte, USA. The topics related to software design and architecture, refactoring, software quality (specifically code and design quality), and technical debt define his career interests. He earned PhD from Athens University of Economics and Business, Athens, Greece with specialization in software engineering in May 2019. Earlier, he obtained an MS in Computer Science from the Indian Institute of Technology-Madras, Chennai, India. His professional experience includes working with Siemens Research and Technology Center, Bangalore, India for more than seven years (2008-2015). He co-authored the book Refactoring for Software Design Smells: Managing Technical Debt and two Oracle Java certification books. He has founded and developed Designite which is a software design quality assessment tool used by many practitioners and researchers worldwide. He is an IEEE Senior Member.