Who Can Help to Review This Piece of Code?

Successful software projects require collaboration between team members. Efficient collaboration relies on both technical and social linkages. In this paper, we investigate whether a socio-technical analysis can support software contributors in identifyin

  • PDF / 2,554,629 Bytes
  • 13 Pages / 439.37 x 666.142 pts Page_size
  • 68 Downloads / 202 Views

DOWNLOAD

REPORT


Abstract. Successful software projects require collaboration between team members. Efficient collaboration relies on both technical and social linkages. In this paper, we investigate whether a socio-technical analysis can support software contributors in identifying experts helping to review their source code. We mined the histories of five open source projects (OSS) from GitHub and examined both technical and socio-technical interactions based on Social Network Analysis (SNA). Mapping communication network to files co-edition network shows the existence of collaboration patterns between core teams and peripherals in the studied OSS projects. Our main contribution is the construction and mapping of three sources of social networks, in which contributors interact by co-editing, commenting or reviewing. We were able to identify behavioral patterns between core teams and peripherals related to the activity of code review. Our findings have implications on improving collaboration between contributors within virtual OSS communities witch drive teams’ performance and software products quality. Keywords: Collaboration  Coordination  Socio-technical relationships Distributed development  Modern code review



1 Introduction Software development is performed by development teams collaborating and interacting together on technical artifacts [1]. Lack of coordination, team cohesion, awareness, or misguided effort can all result in software failures or team performance decrease [2, 3]. To avoid collaboration breakdowns occurring at technical level, team members should communicate on dependencies between technical artifacts (e.g., source code files). Finding the right person to ask for help is a difficult task within a large organization [4]. Furthermore, prior studies showed that selecting unsuitable reviewers may delay the review process by an average of 12 days [5, 6]. Interactions between team members, through different channels, constitute the backbone of socio-technical1 perspective which has gain increased attention over the past decade [7]. Social Network Analysis (SNA) has been used to capture and understand such information about relations among people [8] with the aim to enhance team performance, team members congruence, and software product quality. 1

“Socio-technical” term refers to the interactions between individuals involved in a software project. It occurs because of collaboration needs due to technical dependencies.

© IFIP International Federation for Information Processing 2016 Published by Springer International Publishing Switzerland 2016. All Rights Reserved H. Afsarmanesh et al. (Eds.): PRO-VE 2016, IFIP AICT 480, pp. 289–301, 2016. DOI: 10.1007/978-3-319-45390-3_25

290

N. Kerzazi and I. El Asri

Most software development projects, including open source software (OSS), have adopted the practice of code review as a collaborative mechanism aiming at inspecting new code changes made by contributors to evaluate their quality and identify potential defects [6]. For instance, experience indicates that proact