How Social and Communication Channels Shape and Challenge a Participatory Culture in Software Development

Author(s): Margaret-Anne Storey, Alexey Zagalsky, Fernando Figueira Filho, Leif Singer, and Daniel M. German
Venue: IEEE Transactions on Software Engineering Vol. 43, No. 2
Date: February 2017

Type of Experiement: Survey/Multi-Case Study
Sample Size: 1449
Class/Experience Level: Professional
Participant Selection: Participants responded to surveys sent out by the research team
Data Collection Method: Survey


In the past, software developers had the tendency to build software in a solitary environment. However, more recent trends have reflected developers are keener on writing code in group than before. This is because many see the benefit of learning from others and forming a stronger group culture through creating different software systems. In response, many developer tools and communication outlets have begun supporting stronger focuses on collaborative work. The issue is there is not much insight as to how this new culture affects development quality, speed, and practices. The authors looked at what communication channels are commonly used and what challenges these channels pose to developers.

Out of 1,449 developers that provided responses, most found channels such as code hosting websites, face-to-face interactions, and search engines and Q&A websites were the most effective. Some of the largest challenges developers faced using these new communication channels were as follows: the channels caused distractions and interruptions; text-based channels sometimes led to miscommunication; lack of tools to properly share and explain code; quantity of information shared was overwhelming; and the use of multiple channels led to information fragmentation. Through their findings, the authors had recommendations, some of which are as follows: define what communication channels will be used for different forms of communication; be aware of trade-offs each channel has; and know when to remove communication channels to limit distractions.