1,194 research outputs found
How to Ask for Technical Help? Evidence-based Guidelines for Writing Questions on Stack Overflow
Context: The success of Stack Overflow and other community-based
question-and-answer (Q&A) sites depends mainly on the will of their members to
answer others' questions. In fact, when formulating requests on Q&A sites, we
are not simply seeking for information. Instead, we are also asking for other
people's help and feedback. Understanding the dynamics of the participation in
Q&A communities is essential to improve the value of crowdsourced knowledge.
Objective: In this paper, we investigate how information seekers can increase
the chance of eliciting a successful answer to their questions on Stack
Overflow by focusing on the following actionable factors: affect, presentation
quality, and time.
Method: We develop a conceptual framework of factors potentially influencing
the success of questions in Stack Overflow. We quantitatively analyze a set of
over 87K questions from the official Stack Overflow dump to assess the impact
of actionable factors on the success of technical requests. The information
seeker reputation is included as a control factor. Furthermore, to understand
the role played by affective states in the success of questions, we
qualitatively analyze questions containing positive and negative emotions.
Finally, a survey is conducted to understand how Stack Overflow users perceive
the guideline suggestions for writing questions.
Results: We found that regardless of user reputation, successful questions
are short, contain code snippets, and do not abuse with uppercase characters.
As regards affect, successful questions adopt a neutral emotional style.
Conclusion: We provide evidence-based guidelines for writing effective
questions on Stack Overflow that software engineers can follow to increase the
chance of getting technical help. As for the role of affect, we empirically
confirmed community guidelines that suggest avoiding rudeness in question
writing.Comment: Preprint, to appear in Information and Software Technolog
The Affect of Software Developers: Common Misconceptions and Measurements
The study of affects (i.e., emotions, moods) in the workplace has received a
lot of attention in the last 15 years. Despite the fact that software
development has been shown to be intellectual, creative, and driven by
cognitive activities, and that affects have a deep influence on cognitive
activities, software engineering research lacks an understanding of the affects
of software developers. This note provides (1) common misconceptions of affects
when dealing with job satisfaction, motivation, commitment, well-being, and
happiness; (2) validated measurement instruments for affect measurement; and
(3) our recommendations when measuring the affects of software developers.Comment: 2 pages. Research note to be presented at the 2015 IEEE/ACM 8th
International Workshop on Cooperative and Human Aspects of Software
Engineering (CHASE 2015
Automatic Prediction of Rejected Edits in Stack Overflow
The content quality of shared knowledge in Stack Overflow (SO) is crucial in
supporting software developers with their programming problems. Thus, SO allows
its users to suggest edits to improve the quality of a post (i.e., question and
answer). However, existing research shows that many suggested edits in SO are
rejected due to undesired contents/formats or violating edit guidelines. Such a
scenario frustrates or demotivates users who would like to conduct good-quality
edits. Therefore, our research focuses on assisting SO users by offering them
suggestions on how to improve their editing of posts. First, we manually
investigate 764 (382 questions + 382 answers) rejected edits by rollbacks and
produce a catalog of 19 rejection reasons. Second, we extract 15 texts and
user-based features to capture those rejection reasons. Third, we develop four
machine learning models using those features. Our best-performing model can
predict rejected edits with 69.1% precision, 71.2% recall, 70.1% F1-score, and
69.8% overall accuracy. Fourth, we introduce an online tool named EditEx that
works with the SO edit system. EditEx can assist users while editing posts by
suggesting the potential causes of rejections. We recruit 20 participants to
assess the effectiveness of EditEx. Half of the participants (i.e., treatment
group) use EditEx and another half (i.e., control group) use the SO standard
edit system to edit posts. According to our experiment, EditEx can support SO
standard edit system to prevent 49% of rejected edits, including the commonly
rejected ones. However, it can prevent 12% rejections even in free-form regular
edits. The treatment group finds the potential rejection reasons identified by
EditEx influential. Furthermore, the median workload suggesting edits using
EditEx is half compared to the SO edit system.Comment: Accepted for publication in Empirical Software Engineering (EMSE)
journa
Corrective or critical? Commenting on bad questions in Q&A
What kind of comments do Q&A community members prefer on bad questions? We studied this question on Stack Overflow, a large-scale community-run question-answer site with strong reputation and privilege systems and clear guidelines on commenting. Peer-production systems often employ feedback dialogue to engage with producers of low quality content. However, dialogue is only beneficial if it is constructive, as previous work has shown the adverse effects of negative feedback on quality and production. Previous studies indicate that feedback is likely critical, but the extent, orientation, and actors within this assumption are unknown. In this paper, we contribute a basic taxonomy of commenting and perform analysis on user types and community preferences. Results indicate that the most popular and frequent comments include criticism, and that different user types leave similar feedback. A better understanding of community feedback norms can inform the design of effective rules and incentives for peer-production systems
Analysis of Human Affect and Bug Patterns to Improve Software Quality and Security
The impact of software is ever increasing as more and more systems are being software operated. Despite the usefulness of software, many instances software failures have been causing tremendous losses in lives and dollars. Software failures take place because of bugs (i.e., faults) in the software systems. These bugs cause the program to malfunction or crash and expose security vulnerabilities exploitable by malicious hackers.
Studies confirm that software defects and vulnerabilities appear in source code largely due to the human mistakes and errors of the developers. Human performance is impacted by the underlying development process and human affects, such as sentiment and emotion. This thesis examines these human affects of software developers, which have drawn recent interests in the community. For capturing developers’ sentimental and emotional states, we have developed several software tools (i.e., SentiStrength-SE, DEVA, and MarValous). These are novel tools facilitating automatic detection of sentiments and emotions from the software engineering textual artifacts.
Using such an automated tool, the developers’ sentimental variations are studied with respect to the underlying development tasks (e.g., bug-fixing, bug-introducing), development periods (i.e., days and times), team sizes and project sizes. We expose opportunities for exploiting developers’ sentiments for higher productivity and improved software quality.
While developers’ sentiments and emotions can be leveraged for proactive and active safeguard in identifying and minimizing software bugs, this dissertation also includes in-depth studies of the relationship among various bug patterns, such as software defects, security vulnerabilities, and code smells to find actionable insights in minimizing software bugs and improving software quality and security. Bug patterns are exposed through mining software repositories and bug databases. These bug patterns are crucial in localizing bugs and security vulnerabilities in software codebase for fixing them, predicting portions of software susceptible to failure or exploitation by hackers, devising techniques for automated program repair, and avoiding code constructs and coding idioms that are bug-prone.
The software tools produced from this thesis are empirically evaluated using standard measurement metrics (e.g., precision, recall). The findings of all the studies are validated with appropriate tests for statistical significance. Finally, based on our experience and in-depth analysis of the present state of the art, we expose avenues for further research and development towards a holistic approach for developing improved and secure software systems
Features that Predict the Acceptability of Java and JavaScript Answers on Stack Overflow
Context: It is not uncommon for a new team member to join an existing Agile
software development team, even after development has started. This new team
member faces a number of challenges before they are integrated into the team
and can contribute productively to team progress. Ideally, each newcomer should
be supported in this transition through an effective team onboarding program,
although prior evidence suggests that this is challenging for many
organisations. Objective: We seek to understand how Agile teams address the
challenge of team onboarding in order to inform future onboarding design.
Method: We conducted an interview survey of eleven participants from eight
organisations to investigate what onboarding activities are common across Agile
software development teams. We also identify common goals of onboarding from a
synthesis of literature. A repertory grid instrument is used to map the
contributions of onboarding techniques to onboarding goals. Results: Our study
reveals that a broad range of team onboarding techniques, both formal and
informal, are used in practice. It also shows that particular techniques that
have high contributions to a given goal or set of goals. Conclusions: In
presenting a set of onboarding goals to consider and an evidence-based
mechanism for selecting techniques to achieve the desired goals it is expected
that this study will contribute to better-informed onboarding design and
planning. An increase in practitioner awareness of the options for supporting
new team members is also an expected outcome.Comment: Conference, 11 pages, 3 figures, 2 table
Embedded Emotion-based Classification of Stack Overflow Questions Towards the Question Quality Prediction
Abstract-Software developers often ask questions in Stack Overflow Q & A site, and their posted questions sometimes do not meet the standard guidelines. As a consequence, some of the questions are edited by expert users, some of them are down-voted, or some are even deleted permanently. Besides, the users (i.e., developers) might not get the expected solutions for their problems. In this paper, we study up-voted and down-voted questions from Stack Overflow, and analyze the relationship of embedded emotions with question quality. We use Sentiment140 API for identifying embedded emotions in the question texts, and then apply Feed-Forward Multilayer Perceptron (MLP) and Support Vector Machine (SVM) on the emotion data for developing a quality prediction model. Experiments using 38,920 Stack Overflow questions suggest about 70% precision and about 74% recall for our model with 10-fold cross-validation, and these findings clearly reveal the impact of human emotions upon the quality of a question
- …