Does Your Configuration Code Smell?
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.
Abstract
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.
Authors
Tushar Sharma, Marios Fragkoulis, Diomidis Spinellis
Preprint of the paper can be found here.