, Microsoft Research
, Chalmers University of Technology
, University of Victoria
Pages: pp. 26-28
Over the past decade, the advent of social networking has fundamentally altered the landscape of how software is designed, developed, and used. It has expanded how communities of software stakeholders communicate, collaborate, learn from, and coordinate with one another. In many cases, social networking has eliminated boundaries and upended traditional hierarchies that previously may have constrained the flow of information within and between organizations, 1,2 while also allowing user communities to easily share usage information with each other and to communicate with developers directly.
For software engineers, the rise of social networking sites is allowing them to communicate with development team members within and between organizations so that they can maintain awareness of one another's activities, share technical and software process information, and more efficiently coordinate development on software products. Entrepreneurs with product ideas are employing crowdsourcing to entice developers they don't even know to write code for them. Web-based social networking services, such as Twitter and Facebook, enable requirements engineers, customer support workers, marketers, and customers to talk with one another. These fast and lightweight communication media are helping customers to perceive that their interests are being heard and they're enabling organizations to follow trendsetters and influence public opinion about their products. Software forges with social media features further support the ability of millions of software product communities and value-added providers to establish software-platform-focused ecosystems and help teams efficiently leverage an entire platform's worth of technology to quickly develop a software product from common components.
Social networking sites also support extensive internal and external ecosystems that build solutions on top of products, product lines, and platforms. For the platform provider, facilitating ecosystem communication and collaboration increases customer value and inhibits the customer from switching to alternate products. The use of ecosystem-centric software marketplaces gives software producers a significant degree of market access that would have been much harder to achieve in the past. Customers, in turn, can use these marketplaces to discover and acquire software written by organizations of any size, and offer feedback and ratings that help producers improve the next version. Organizations foster their own socially networked communities of developers, value-added providers, and customers to provide product information, access to insider knowledge, and the ability to share questions and answers with each other in real time. Product developers heed what customers say about the product and use that information to improve and enhance future software designs. Independent hacker communities self-organize around popular consumer gadgets to share tips, tricks, and software, thus extending these devices for uses far beyond what their original producers ever imagined.
We offer three articles by researchers who recognize and support connected communities of stakeholders (customers, value-added providers, third-party software vendors, customer support workers, marketers, requirements engineers, testers, and developers) at all scales (from individuals and teams to platforms, organizations, and ecosystems of organizations). We hope that readers will learn how social networking can play a role in all aspects of the software product life cycle—from conception and development to delivery, use, and reuse—and understand the potential advantages and possible challenges that lie ahead.
The first article, "Uncovering Latent Social Communities in Software Development," by Damian A. Tamburri, Patricia Lago, and Hans van Vliet, presents a first step in studying the social communities that develop large systems. Observing the behaviors of individuals in the social community can offer valuable indicators for the prospects and risks in large-scale software development.
The second article, "Leveraging Transparency," by Laura Dabbish, Colleen Stuart, Jason Tsay, and James Herbsleb, relates the use of social networks with flexible, distributed version control to provide a radically different approach for coordination and communication in next-generation development environments. The article presents a case study around GitHub that shows how activity feeds lead to greater transparency, higher productivity, and less wasteful communication during software development.
The third article, "Assessing Technical Candidates on the Social Web," by Andrea Capiluppi, Alexander Serebrenik, and Leif Singer, offers advice to recruiters and job seekers on how social networking sites can be exploited to discover and evaluate the software-related portfolios of software engineering job candidates. The authors explore the pros and cons of using casual and professional social networking sites, social code sharing sites, question and answer forums, and profile aggregation sites to evaluate candidates' qualifications and references. It gives advice to job seekers on how to present a positive and authentic picture of their knowledge, skills, accomplishments, and social connections to attract the attention of recruiters.
As an added bonus to this special issue, we report on interviews with the designers of four popular software-related social networking sites on the Internet: GitHub, MSDN, Stack Exchange, and TopCoder. Through these interviews, we explore how social networking enables organizations to achieve their goals of connecting software communities with one another. Brian Doll, a marketer at GitHub, explains how his company created a vibrant, interconnected set of software communities by adding social networking features to a Web-based software repository. Doug Laundry, a principal group program manager at Microsoft, talks about the design rationale and challenges behind the last 10 years of social feature development on the Microsoft Developer Network portal. David Fullerton, the vice president of engineering at Stack Exchange, tells us how question and answer websites are used by communities of experts to curate knowledge on topics of interest to those communities. Finally, Robert Hughes, president and chief operating officer of TopCoder, describes how his company's designs enable entrepreneurs to recruit, organize, and support communities of available engineers to help realize a software project.
The influence of social networking on software engineering, although a relatively new phenomenon, has been a new but active topic of research at several research conferences and workshops. To learn more about how social networking can help bridge communities of software developers, consumers, entrepreneurs, designers, and others, we refer the interested reader to the Web 2.0 for Software Engineering workshops (Web2SE) at the 32nd and 33rd International Conferences on Software Engineering (ICSE) in 2010 and 2011, 3,4 the Social Software Engineering series of workshops at the 4th, 5th, and 6th Conferences on Software Engineering (SE) in 2008, 2009, 2010, 5 the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE) in 2008, and the 8th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE) in 2011, and the many related papers from the past five years of ICSE, the ACM Conference on Computer Supported Cooperative Work (CSCW), and the ACM SIGCHI Conference on Human Factors in Computing Systems (CHI).
This ongoing research indicates that social networking and social media features are having a profound influence on many software engineering products and processes that cannot be ignored. We hope that this special issue sheds some light on the increased role that social networking is playing in today's vibrant software engineering world.