Capturing Spotaneous Software Evolution in a Social Coding Platform With Project-as-a-City Concept

Capturing Spotaneous Software Evolution in a Social Coding Platform With Project-as-a-City Concept

Koji Toda, Haruaki Tamada, Masahide Nakamura, Kenichi Matsumoto
Copyright: © 2020 |Pages: 16
DOI: 10.4018/IJSI.2020070103
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Social coding platforms (SCPs) have realized spontaneous software evolution, where new source code and ideas are spontaneously proposed by altruistic developers. Although there are many projects operated by active communities performing spontaneous evolution, it is yet unclear that how such successful projects and communities have been formed and governed. This article proposes a method that can investigate the history of every project in the SCP. Introducing the concept of project as a city, the authors consider every project in the SCP as a city, where a government and citizens develop a city through collaborative activities. This research then identifies essential attributes that characterize a state of a city. For each attribute, the authors develop metrics that quantify the state S(p; t) of a project p at time t. An experimental evaluation investigating GitHub projects of famous code editors shows that the proposed metrics well visualize the history of the projects from essential perspectives of a city.
Article Preview
Top

1. Introduction

Social coding (Trockman, Zhou, K¨astner, & Vasilescu, 2018) is a modern approach to software development, which places an emphasis on formal and informal collaboration. Due to the emerging social coding platforms (SCP, for short) such as GitHub (Github, Inc., 2008) and Bitbucket (Atlassian, Inc., 2008), the social coding is now widely adopted not only in open-source projects, but in commercial software development.

In the SCP, software is developed and maintained collaboratively by a community of developers and users. The SCP provides a space for the people to create a project, have communication, play and build whatever they want. Moreover, every developer can hack and modify the code as he/she likes by forking the project. Then, the developer can request the project owner to merge his/her modification to the original code. If the owner finds it useful, the owner commits the merge, which creates a new version of the software. In GitHub, the above three activities are implemented as commands fork, pull request, and merge, respectively.

From the perspective of software evolution (Lehman, 1980), the above process of code modification is quite unique. Traditionally, when new features and/or better solutions are requested by users or customers, a project manager designs tasks, and directs developers to work in a top-down manner. Then, the developers modify the code according to the requirement. However, in the social coding, the code modification can be proposed by spontaneous and altruistic developers in the community. Thus, the software evolution can be triggered in a bottom-up way. We call this new type of software evolution spontaneous software evolution (Matsumoto et al., 2017).

The spontaneous software evolution by the social coding is a powerful means to achieve fast, flexible, and sustainable evolution of the software. Also, it often derives innovative ideas that a project owner has never imagined, realizing advanced features and products. For example, microsoft/vscode (Microsoft, Inc., 2015) is a GitHub project of a powerful code editor, where a lot of people have discussion, developers actively present codes, and many innovative features have been added. Thus, we can see that microsoft/vscode is a successful project in the context of spontaneous software evolution.

However, we do not know how such a successful project has been managed, or how such an active community has been formed and governed. To clarify these issues, we need to investigate the history, starting when the project was created, and leading to the current shape. Fortunately, since the SCP accumulates various event logs, we can look back how the project was for any past time. More specifically, for a given project p and timestamp t, let IJSI.2020070103.m01 denote a state of p at t. Observing IJSI.2020070103.m02 with varying t derives a sequence of states, which characterizes how p has been evolved. The challenge here is how to define IJSI.2020070103.m03 so that it well characterizes the spontaneous software evolution within p.

The goal of this paper is to propose a method that can cope with the following research questions:

  • RQ1: How and by what can we define the state IJSI.2020070103.m04?

  • RQ2: How has the state of a successful project changed?

Complete Article List

Search this Journal:
Reset
Volume 12: 1 Issue (2024)
Volume 11: 1 Issue (2023)
Volume 10: 4 Issues (2022): 2 Released, 2 Forthcoming
Volume 9: 4 Issues (2021)
Volume 8: 4 Issues (2020)
Volume 7: 4 Issues (2019)
Volume 6: 4 Issues (2018)
Volume 5: 4 Issues (2017)
Volume 4: 4 Issues (2016)
Volume 3: 4 Issues (2015)
Volume 2: 4 Issues (2014)
Volume 1: 4 Issues (2013)
View Complete Journal Contents Listing