Open Source-Style Collaborative Development Practices in Commercial Projects Using Github

Open Source-Style Collaborative Development Practices in Commercial Projects Using Github

Open Source-Style Collaborative Development Practices in Commercial Projects Using GitHub Eirini Kalliamvakou, Daniela Damian, Kelly Blincoe, Leif Singer and Daniel M. German Department of Computer Science, University of Victoria Email: [email protected], [email protected], [email protected], [email protected], [email protected] Abstract—Researchers are currently drawn to study projects communication [?]. At the same time, a fast-growing number hosted on GitHub due to its popularity, ease of obtaining data, of commercial projects also use GitHub as a development and its distinctive built-in social features. GitHub has been found environment including large corporations such as Lockheed to create a transparent development environment, which together with a pull request-based workflow, provides a lightweight mech- Martin, Microsoft, LivingSocial, VMware, and Walmart [?], anism for committing, reviewing and managing code changes. [?], [?]. Most commercial organizations do not allow public These features impact how GitHub is used and the benefits it access to their code base, so they use private repositories or provides to teams’ development and collaboration. While most deploy GitHub’s enterprise version on their own servers. We of the evidence we have is from GitHub’s use in open source are not aware of any research studies that have investigated software (OSS) projects, GitHub is also used in an increasing number of commercial projects. It is unknown how GitHub the support GitHub provides to these projects. supports these projects given that GitHub’s workflow model does Understanding collaboration practices in teams using not intuitively fit the commercial development way of working. In this paper, we report findings from an online survey and GitHub to produce proprietary software in commercial organi- interviews with GitHub users on how GitHub is used for collab- zations is equally interesting and important because traditional oration in commercial projects. We found that many commercial practices of closed source projects do not seem tailored for the projects adopted practices that are more typical of OSS projects GitHub development environment which promotes visibility including reduced communication, more independent work, and of work and self-assignment of tasks. Traditionally, developer self-organization. We discuss how GitHub’s transparency and popular workflow can promote open collaboration, allowing participation in closed source projects is by invitation only - organizations to increase code reuse and promote knowledge developers are assigned tasks and, in extreme cases, are only sharing across their teams. authorized to work on the code associated with their tasks. On these projects, developers are also typically not aware of I. INTRODUCTION code changes made outside their assigned code areas [?]. In GitHub is a popular online code hosting service built on this paper we report from a study of collaboration in GitHub top of git, a decentralized version control system (DVCS). in which we analyze how teams building proprietary software It provides an open development environment and visibility in commercial organizations use GitHub’s features and how of project activity through both notifications and a simple collaboration is impacted by their use. interface. This transparency promotes increased awareness and reduced communication [?]. Therefore, GitHub has the Our study consisted of an online survey of 240 developers potential to mitigate challenges distributed projects face in and semi-structured interviews with 30 GitHub users; 24 collaboration such as coordination and communication break- of them were developers, project managers or CTOs that downs [?], [?], [?], a lack of awareness [?], [?], [?], and code use GitHub in commercial projects that build proprietary conflicts [?]. In fact, GitHub’s motto is “collaboration without software. We found that many commercial software projects upfront coordination” 1. are successfully adopting practices like independent work, re- The fact that GitHub claims to mitigate coordination hurdles duced communication and coordination requirements and self- in today’s largely distributed teams is intriguing. Through a organization which are common in OSS projects [?], [?], [?], surge of researcher interest in recent years, we have learnt [?]. Even though multiple workflows are supported in GitHub, about the use of GitHub as a hub for software develop- the teams that our study participants worked in converged ment activity, such as its use of social and communication towards essentially the same workflow in which developers do features [?], [?], [?], [?] and the impact of its technical not make commits directly to the master code base, and instead features on development practices [?], [?]. These insights are, commit them to branches or forks. While this type of workflow however, mostly from Open Source Software (OSS) projects is known to be in use in OSS projects [?], it is surprising hosted on GitHub. GitHub’s workflow and development model to see it is also adopted by commercial projects since its seem to fit the OSS-like practices which are aligned with original purpose was for gatekeeping when there is a lack of GitHub’s motto of minimized coordination. Such practices trust or need for screening incoming contributions. We discuss include self-organization, independent work and lightweight how this workflow and adopting OSS-style practices affects five elements of collaboration: coordination, task division, 1https://help.github.com/articles/using-pull-requests/ awareness, communication, and conflict resolution. We further discuss how GitHub’s characteristics can sup- implications of adopting DVCS models for the development port open collaboration [30] inside organizations. Companies process [?]. see benefit in dropping the barriers between multiple teams These studies have focused only on OSS projects. OSS teams and projects that they run internally, promoting inter-team are structured on the premise that distribution is their only collaboration. GitHub can support open collaboration within feasible way of interaction [?]. They employ practices like commercial organizations by centralizing tools and informa- open access to information, visibility of developer activity, tion and making them transparent. Advocated by developers and self-governance [?], and they seem to be more resilient to acting as change agents, the organic adoption of the tool and the strains of distributed work. Traditional commercial projects its corresponding process can ensure that collaborators have a operate very differently [?]. Tasks are assigned and developers common toolkit to work with. are often not aware of other changes being made outside of their area of code [?]. These practices make commercial II. BACKGROUND & RELATED WORK projects more prone to collaboration challenges like commu- Collaborative software development projects bring together nication breakdowns, a lack of awareness, and code conflicts. the interdependent efforts of team members, coordinated to- Some research has investigated how commercial projects can wards a common goal [?]. Malone and Cowston [?] view adopt OSS-like practices to mitigate these challenges [?], collaboration as building on efficient coordination of direct [?]. However, many open questions remain. The benefits of or indirect actions needed to manage interdependencies. transparency, a key feature of GitHub, has been said to be Collaboration brings known challenges, along a number an important avenue for research in commercial projects [?]. of dimensions. Coordination and communication often break Further, the impact of the adoption of OSS-like practices on down in large and distributed teams, and result in build collaboration in commercial projects has yet to be studied. failures and longer resolution times [?], [?], [?]. Maintaining In this paper, therefore, we examine how commercial awareness of interdependencies is also challenging; tools can organizations with projects producing proprietary soft- provide alerts of potential coordination needs and recommend ware use GitHub for their collaborative software development. communication between interdependent developers [?], [?], Our study systematically analyzes the different aspects of [?], but it is not without overhead [?]. Conflicts occur even collaboration that typically are identified as challenging in the in the presence of awareness tools and teams spend effort to literature of collaborative software development as reviewed resolve them [?]. Efficient task division and scheduling can above; communication, coordination, awareness, task division help to minimize, but not eliminate, coordination overhead and conflict resolution. Our study was driven by the following and code conflicts [?]. Modularization of tasks is an accepted research question: way to minimize interdependencies [?], but it is impossible to remove them altogether. RQ: What practices do commercial software projects fol- These collaboration challenges are typical in software devel- low in conjunction with GitHub’s features to collaborate? opment, and they are accentuated when teams are distributed. What is the effect on their collaboration? Collaborative Development Environments (CDEs) integrate source code management tools and bug trackers with collab- III. STUDY DESIGN orative development features [?] and have been suggested as We used a mixed-method approach in a qualitative study to a solution to the communication and coordination challenges examine collaborative practices

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us