Revealing the social aspects of design decay: A retrospective study of pull requests

C Barbosa, A Uchôa, D Coutinho, F Falcão… - Proceedings of the …, 2020 - dl.acm.org
C Barbosa, A Uchôa, D Coutinho, F Falcão, H Brito, G Amaral, V Soares, A Garcia
Proceedings of the XXXIV Brazilian Symposium on Software Engineering, 2020dl.acm.org
The pull-based development model is widely used in source-code environments like GitHub.
In this model, developers actively communicate and share their knowledge or opinions
through the exchange of comments. Their goal is to improve the change under development,
including its positive impact on design structure. In this context, two central social aspects
may contribute to combating or adversely amplifying design decay. First, design decay may
be avoided, reduced or accelerated depending whether the communication dynamics …
The pull-based development model is widely used in source-code environments like GitHub. In this model, developers actively communicate and share their knowledge or opinions through the exchange of comments. Their goal is to improve the change under development, including its positive impact on design structure. In this context, two central social aspects may contribute to combating or adversely amplifying design decay. First, design decay may be avoided, reduced or accelerated depending whether the communication dynamics among developers - who play specific roles - is fluent and consistent along a change. Second, the discussion content itself may be decisive to either improve or deteriorate the structural design of a system. Unfortunately, there is no study on the the role that key social aspects play on avoiding or amplifying design decay. Previous work either investigates technical aspects of design decay or confirms the high frequency of design discussions in pull-based software development. This paper reports a retrospective study aimed at understanding the role of communication dynamics and discussion content on design decay. We focused our analysis on 11 social metrics related to these two aspects as well as 4 control technical metrics typically used as indicators of design decay. We analyzed more than 11k pull request discussions mined from five large open-source software systems. Our findings reveal that many social metrics can be used to discriminate between design impactful and unimpactful pull requests. Second, various factors of communication dynamics are related to design decay. However, temporal factors of communication dynamics outperformed the participant roles' factors as indicators of design decay. Finally, we noticed certain social metrics tend to be indicators of design decay when analyzing both aspects together.
ACM Digital Library