The Challenges of Affect Detection
Software engineering involves a large amount of social interaction, as programmers often need to cooperate with others, whether directly or indirectly. However, we have become fully aware of the importance of social aspects in software engineering activities only over the last decade. In fact, it was not until the recent diffusion and massive adoption of social media that we could witness the rise of the “social programmer” and the surrounding ecosystem. Social media has deeply influenced the design of software development-oriented tools such as GitHub (i.e., a social coding site) and Stack Overflow (i.e., a community-based question answering site). Stack Overflow, in particular, is an example of an online community where social programmers do networking by reading and answering others’ questions, thus participating in the creation and diffusion of crowdsourced knowledge and software documentation.
One of the biggest drawbacks of computer-mediated communication is to appropriately convey sentiment through text. While display rules for emotions exist and are widely accepted for interaction in traditional face-to-face communication, web users are not necessarily prepared for effectively dealing with the social media barriers to non-verbal communication. Thus, the design of systems and mechanisms for the development of emotional awareness between communicators is an important technical and social challenge for research related to computer-supported collaboration and social computing.
As a consequence, a recent research trend has emerged to study the role of affect in the social programmer ecosystem, by applying sentiment analysis to the content available in sites such as GitHub and Stack Overflow, as well as in other asynchronous communication artifacts such as comments in issue tracking systems. This talk surveys the state-of-the-art in sentiment analysis tools and examines to what extent they are able to detect affective expressions in communication traces left by software developers. A discussion is offered about the advantages and limitations of choosing sentiment polarity and strength as an appropriate way to operationalize affective states in empirical studies. Finally, open challenges and opportunities of affective software engineering are discussed, with special focus on the need to combine cognitive emotion modeling with affective computing and natural language processing techniques to build large-scale, robust approaches for sentiment detection in software engineering.