Code smells and architectural smells—also called bad smells—are symptoms of poor design that can hinder code understandability and decrease maintainability.
Several bad smells have been defined in the literature for both generic architectures and specific architectures. However, cloud-native applications based on microservices can be affected by their own unique issues, say the authors of “On the Definition of Microservice Bad Smells” in the May/June issue of IEEE Software.
In order to identify a set of microservice-specific bad smells, researchers collected examples of bad practices by interviewing 72 microservice developers. Then, they classified the bad practices into a catalog of 11 microservice-specific bad smells frequently considered harmful by practitioners.
No inexperienced participants, such as students, academics, or nonindustrial practitioners, were considered for the interviews. Of all the interviewees, 36% were software architects, 19% were project managers, 38% were experienced developers, and 7% were agile coaches. All the interviewees had at least five years of experience in software development.
The practitioners reported a total of 265 different bad practices together with the solutions they had applied to overcome them. Here’s a list of the resulting smells, together with their descriptions and the possible solutions indicated by the practitioners.
The results can be used by practitioners and researchers as a guideline to avoid experiencing the same difficult situations in the systems they develop.
The authors of the study were Davide Taibi, an assistant professor of software engineering at the Tampere University of Technology and Valentina Lenarduzzi, postdoctoral researcher at the same school.