HASEL members, Haris Mumtaz and Kelly Blincoe, in collaboration with Paramvir Singh from the School of Computer Science (University of Auckland), recently studied the relationship between social and technical (design) aspects of software development.
When technical quality of software projects is good, it ensures less maintenance cost and technical debt. Similarly, having good social quality in software projects means that the communication structure of the development community is optimal. In case the quality is degraded on either side (technical or social), sub-optimal patterns will appear. The sub-optimal patterns in software are often referred to as “smells”. Sub-optimal patterns in software design are design smells, whereas sub-optimal patterns in the communication structure are community smells. If there is a relationship between community and design smells, then both the development aspects (social and technical) need equal attention. Therefore, our study investigated the relationship between social quality and technical quality of software development by analyzing the community and design smells in open-source software projects.
To achieve our objective, we empirically analyzed 100 releases of 10 open-source Apache projects. We automatically collected the design smells and community smells using Designite and Kaiaulu tools, respectively. The design smells included modularization and hierarchy smells, covering the size and coupling properties of software quality, respectively. On the other hand, we examined two frequently occurring community issues in open-source software—Organizational Silo and Missing Links. Both the community smells reflect low or missing communication between the development community.
To analyze whether the relationship between community and design smells exists, we employed three methods—correlation analysis, trends analysis, and information gain analysis. Correlation analysis explained the strength of the relationship between community and design smells. Trends analysis explored the similarities in the trends of the smells under investigation as they evolved over releases. Finally, information gain analysis explained the extent of the dependency of community smells on design smells.
We found that the relationship between community and design smells varied across the analyzed projects. However, one type of community smell (i.e., Missing Links) showed a significant relationship with most of the design smells under analysis. Based on the identified relationship between community and design smells, we discussed various joint refactorings of social and technical (design) issues in software projects, though our collective refactorings need validation.
The results from this study are accepted and presented at the ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM ’22), September 19–23, 2022, Helsinki, Finland. You can read the full paper here.