SERG Lunch: Exploiting Human-Factors in Software Maintenance and Evolution

Mar 4, 2020 12:30 — 13:30
Social Data Lab, Building 28

“Great software doesn’t come from tools, it comes from people.” During software development and maintenance, companies continually deal with issues related to the management of human resources. Such factors as team dynamics, experience, seniority, training, and office culture could influence the success of a company as well as the quality of software produced. Hence, human factors should be carefully considered and monitored since they are an integral part of the software process and could lead to dangerous consequences (e.g., loss of money or reputation), especially during the maintenance phase that — if wrong managed — costs 30% more than the development phase. For this reason, the research community has investigated on the role of human factors in software maintenance since it has considered in essence a human activity. In particular, the studies explored human factors in technical contexts (e.g., effort estimation, program comprehension) as well as organizational environments (e.g., coordination, collaboration in the development process). Although a part of the research community tried to consider human factors in their approaches, there are still topics in software maintenance areas that could benefit from the usage of human factors. In this thesis, we faced this problem by analyzing how human factors related both to personal skills — technical aspects (e.g., developer’s experience) — and team’s dynamics — social aspects (e.g., culture, gender, communication) — reflect the quality of software produced from a maintenance perspective. Specifically, we investigated the role of different human aspects on the maintenance phase that — as shown in previous studies — should be carefully monitored from both technical (i.e., changeability, size, and testability of a system) and organizational (i.e., community smells) points of view. We first assessed, through empirical studies, the extent to which human factors related to phenomena analyzed (e.g., test effectiveness) as well as how these factors can be exploited to improve predictive modeling techniques (e.g., change prediction) or mitigate social debt (i.e., community smells). So, from a technical point of view, we provide approaches to predict change prone classes as well as code churn of a generic maintenance task that consider human factors (e.g., expertise, experience, scattering). As for the organizational aspect, we present practical evidence and suggestions on how to deal with community smells and eventually solve them. The results of this thesis highlight how human factors can boost the performance of predictive modeling in software engineering, indeed our models reach an average of 70/80% of F-Measure. Moreover, human factors such as gender, size of the team, and experience result important factors to mitigate community smells, improving the software quality.