skip to main content


Title: Understanding collaborative software development: an interview study
In globally distributed software development, many software developers have to collaborate and deal with issues of collaboration. Although collaboration is challenging, collaborative development produces better software than any developer could produce alone. Unlike previous work which focuses on the proposal and evaluation of models and tools to support collaborative work, this paper presents an interview study aiming to understand (i) the motivations, (ii) how collaboration happens, and (iii) the challenges and barriers of collaborative software development. After interviewing twelve experienced software developers from GitHub, we found different types of collaborative contributions, such as in the management of requests for changes. Our analysis also indicates that the main barriers for collaboration are related to non-technical, rather than technical issues.  more » « less
Award ID(s):
1813598
NSF-PAR ID:
10302344
Author(s) / Creator(s):
 ;  ;  ;  ;  
Date Published:
Journal Name:
ICGSE '20: Proceedings of the 15th International Conference on Global Software Engineering
Page Range / eLocation ID:
55 to 65
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. With the emergence of social coding platforms, collaboration has become a key and dynamic aspect to the success of software projects. In such platforms, developers have to collaborate and deal with issues of collaboration in open-source software development. Although collaboration is challenging, collaborative development produces better software systems than any developer could produce alone. Several approaches have investigated collaboration challenges, for instance, by proposing or evaluating models and tools to support collaborative work. Despite the undeniable importance of the existing efforts in this direction, there are few works on collaboration from perspectives of developers. In this work, we aim to investigate the perceptions of open-source software developers on collaborations, such as motivations, techniques, and tools to support global, productive, and collaborative development. Following an ad hoc literature review, an exploratory interview study with 12 open-source software developers from GitHub, our novel approach for this problem also relies on an extensive survey with 121 developers to confirm or refute the interview results. We found different collaborative contributions, such as managing change requests. Besides, we observed that most collaborators prefer to collaborate with the core team instead of their peers. We also found that most collaboration happens in software development (60%) and maintenance (47%) tasks. Furthermore, despite personal preferences to work independently, developers still consider collaborating with others in specific task categories, for instance, software development. Finally, developers also expressed the importance of the social coding platforms, such as GitHub, to support maintainers, and contributors in making decisions and developing tasks of the projects. Therefore, these findings may help project leaders optimize the collaborations among developers and reduce entry barriers. Moreover, these findings may support the project collaborators in understanding the collaboration process and engaging others in the project. 
    more » « less
  2. Abstract

    Developing sustainable software for the scientific community requires expertise in software engineering and domain science. This can be challenging due to the unique needs of scientific software, the insufficient resources for software engineering practices in the scientific community, and the complexity of developing for evolving scientific contexts. While open‐source software can partially address these concerns, it can introduce complicating dependencies and delay development. These issues can be reduced if scientists and software developers collaborate. We present a case study wherein scientists from the SuperNova Early Warning System collaborated with software developers from the Scalable Cyberinfrastructure for Multi‐Messenger Astrophysics project. The collaboration addressed the difficulties of open‐source software development, but presented additional risks to each team. For the scientists, there was a concern of relying on external systems and lacking control in the development process. For the developers, there was a risk in supporting a user‐group while maintaining core development. These issues were mitigated by creating a second Agile Scrum framework in parallel with the developers' ongoing Agile Scrum process. This Agile collaboration promoted communication, ensured that the scientists had an active role in development, and allowed the developers to evaluate and implement the scientists' software requirements. The collaboration provided benefits for each group: the scientists actuated their development by using an existing platform, and the developers utilized the scientists' use‐case to improve their systems. This case study suggests that scientists and software developers can avoid scientific computing issues by collaborating and that Agile Scrum methods can address emergent concerns.

     
    more » « less
  3. Electrical and computer engineering technologies have evolved into dynamic, complex systems that profoundly change the world we live in. Designing these systems requires not only technical knowledge and skills but also new ways of thinking and the development of social, professional and ethical responsibility. A large electrical and computer engineering department at a Midwestern public university is transforming to a more agile, less traditional organization to better respond to student, industry and society needs. This is being done through new structures for faculty collaboration and facilitated through departmental change processes. Ironically, an impetus behind this effort was a failed attempt at department-wide curricular reform. This failure led to the recognition of the need for more systemic change, and a project emerged from over two years of efforts. The project uses a cross-functional, collaborative instructional model for course design and professional formation, called X-teams. X-teams are reshaping the core technical ECE curricula in the sophomore and junior years through pedagogical approaches that (a) promote design thinking, systems thinking, professional skills such as leadership, and inclusion; (b) contextualize course concepts; and (c) stimulate creative, socio-technical-minded development of ECE technologies. An X-team is comprised of ECE faculty members including the primary instructor, an engineering education and/or design faculty member, an industry practitioner, context experts, instructional specialists (as needed to support the process of teaching, including effective inquiry and inclusive teaching) and student teaching assistants. X-teams use an iterative design thinking process and reflection to explore pedagogical strategies. X-teams are also serving as change agents for the rest of the department through communities of practice referred to as Y-circles. Y-circles, comprised of X-team members, faculty, staff, and students, engage in a process of discovery and inquiry to bridge the engineering education research-to-practice gap. Research studies are being conducted to answer questions to understand (1) how educators involved in X-teams use design thinking to create new pedagogical solutions; (2) how the middle years affect student professional ECE identity development as design thinkers; (3) how ECE students overcome barriers, make choices, and persist along their educational and career paths; and (4) the effects of department structures, policies, and procedures on faculty attitudes, motivation and actions. This paper will present the efforts that led up to the project, including failures and opportunities. It will summarize the project, describe related work, and present early progress implementing new approaches. 
    more » « less
  4. In this paper, we propose an innovative practice based on agile software development methods. This research approach introduces agility into learning of research in an academic environment, resulting in an Agile Research Team. Such a research team follows an agile approach, based on modifications to the Scrum approach, to collaboratively learn about research, and to manage research projects and the researchers involved. Success in research requires self-motivation, collaboration, and knowledge exchange. Traditional research occurs in top-down research groups that are led by a leading researcher, who oversees postdoctoral researchers and Ph.D. students, who in turn manage graduate and undergraduate level students. It is up to individual researchers to stay motivated, to acquire the necessary skills to conduct research, and, oftentimes, to decide what the following steps are. Much like effective research groups, agile software development approaches rely on individuals to form self-organizing and motivated teams to deliver technical excellence. Agile software development teams also require an environment of sharing knowledge between senior and junior developers. Agile approaches can facilitate the efficient exchange of knowledge due to a strong dependency on face-to-face communication and teamwork. With the emerging adoption of agile methods for software development in industry and its ability to expedite projects’ delivery, we argue that such approaches can potentially provide similar benefits for researchers and students in academia. The advantages that agile methods provide are twofold: the ability to respond faster to change, and a shorter feedback loop, which facilitates the learning of how to conduct research. This paper explores the impactful benefits of using an agile approach to manage research team projects to keep researchers motivated, enhance the learning of knowledge and research skills, increase scalability, and foster inclusivity. This paper will also present the roles, responsibilities, and processes defined for managing an Agile Research Team to support adoption of the approach with other research teams. In addition, results and lessons learned are presented following our experience with using the approach as described in this work. 
    more » « less
  5. null (Ed.)
    Over the past eleven years, the Robot Operating System (ROS), has grown from a small research project into the most popular framework for robotics development. Composed of packages released on the Rosdistro package manager, ROS aims to simplify development by providing reusable libraries, tools and conventions for building a robot. Still, developing a complete robot is a difficult task that involves bridging many technical disciplines. Experts who create computer vision packages, for instance, may need to rely on software designed by mechanical engineers to implement motor control. As building a robot requires domain expertise in software, mechanical, and electrical engineering, as well as artificial intelligence and robotics, ROS faces knowledge based barriers to collaboration. In this paper, we examine how the necessity of domain specific knowledge impacts the open source collaboration model. We create a comprehensive corpus of package metadata and dependencies over three years in the ROS ecosystem, analyze how collaboration is structured, and study the dependency network evolution. We find that the most widely used ROS packages belong to a small cluster of foundational working groups (FWGs), each organized around a different domain in robotics. We show that the FWGs are growing at a slower rate than the rest of the ecosystem, in terms of their membership and number of packages, yet the number of dependencies on FWGs is increasing at a faster rate. In addition, we mined all ROS packages on GitHub, and showed that 82% rely exclusively on functionality provided by FWGs. Finally, we investigate these highly influential groups and describe the unique model of collaboration they support in ROS. 
    more » « less