Beyond the Tip of the Iceberg: Understanding SATD in Dockerfiles through the Lens of Co-evolution
Wei Minn, Yan Naing Tun, Biniam Fesseha Demissie, Rui'ang Hu, Jiakun Liu, Mariano Ceccato, Lwin Khin Shar, David Lo

TL;DR
This paper investigates self-admitted technical debt in Dockerfiles by analyzing their co-evolution with related source code, revealing coupling patterns, causes, and implications for maintenance and research.
Contribution
It extends prior work by studying SATD across multiple artifacts, highlighting the importance of source code co-evolution in understanding and managing technical debt in Dockerfiles.
Findings
27% of SATD admission events are coupled with non-Dockerfile artifacts.
Coupled SATD is repaid faster overall, but missing functionalities persist longer.
External dependency issues are common triggers; architectural refactoring aids repayment.
Abstract
Dockerfiles enable the creation of portable container-based execution environments for the application code, and have become an important part of the modern software development process. As Dockerfiles are a form of Infrastructure-as-Code (IaC), they can include temporary workarounds and other suboptimal implementations, leading to the accrual of technical debt that affects their reliability, security, and maintainability in the future. Prior work characterized self-admitted technical debt (SATD) in Dockerfile comments and the surrounding file chunks. This single-file view is incomplete since source code evolution involves changes across different types of software artifacts such as production, test, build, and other configuration files. Thus, we address this gap by studying SATD events in Dockerfiles alongside the related source code. We find that approximately 27% of admission…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
