99,364 research outputs found
How Do You Feel, Developer? An Explanatory Theory of the Impact of Affects on Programming Performance
Affects---emotions and moods---have an impact on cognitive activities and the
working performance of individuals. Development tasks are undertaken through
cognitive processes, yet software engineering research lacks theory on affects
and their impact on software development activities. In this paper, we report
on an interpretive study aimed at broadening our understanding of the
psychology of programming in terms of the experience of affects while
programming, and the impact of affects on programming performance. We conducted
a qualitative interpretive study based on: face-to-face open-ended interviews,
in-field observations, and e-mail exchanges. This enabled us to construct a
novel explanatory theory of the impact of affects on development performance.
The theory is explicated using an established taxonomy framework. The proposed
theory builds upon the concepts of events, affects, attractors, focus, goals,
and performance. Theoretical and practical implications are given.Comment: 24 pages, 2 figures. Postprin
Consequences of Unhappiness While Developing Software
The growing literature on affect among software developers mostly reports on
the linkage between happiness, software quality, and developer productivity.
Understanding the positive side of happiness -- positive emotions and moods --
is an attractive and important endeavor. Scholars in industrial and
organizational psychology have suggested that also studying the negative side
-- unhappiness -- could lead to cost-effective ways of enhancing working
conditions, job performance, and to limiting the occurrence of psychological
disorders. Our comprehension of the consequences of (un)happiness among
developers is still too shallow, and is mainly expressed in terms of
development productivity and software quality. In this paper, we attempt to
uncover the experienced consequences of unhappiness among software developers.
Using qualitative data analysis of the responses given by 181 questionnaire
participants, we identified 49 consequences of unhappiness while doing software
development. We found detrimental consequences on developers' mental
well-being, the software development process, and the produced artifacts. Our
classification scheme, available as open data, will spawn new happiness
research opportunities of cause-effect type, and it can act as a guideline for
practitioners for identifying damaging effects of unhappiness and for fostering
happiness on the job.Comment: 6 pages. To be presented at the Second International Workshop on
Emotion Awareness in Software Engineering, colocated with the 39th
International Conference on Software Engineering (ICSE'17). Extended version
of arXiv:1701.02952v2 [cs.SE
Happy software developers solve problems better: psychological measurements in empirical software engineering
For more than 30 years, it has been claimed that a way to improve software
developers' productivity and software quality is to focus on people and to
provide incentives to make developers satisfied and happy. This claim has
rarely been verified in software engineering research, which faces an
additional challenge in comparison to more traditional engineering fields:
software development is an intellectual activity and is dominated by
often-neglected human aspects. Among the skills required for software
development, developers must possess high analytical problem-solving skills and
creativity for the software construction process. According to psychology
research, affects-emotions and moods-deeply influence the cognitive processing
abilities and performance of workers, including creativity and analytical
problem solving. Nonetheless, little research has investigated the correlation
between the affective states, creativity, and analytical problem-solving
performance of programmers. This article echoes the call to employ
psychological measurements in software engineering research. We report a study
with 42 participants to investigate the relationship between the affective
states, creativity, and analytical problem-solving skills of software
developers. The results offer support for the claim that happy developers are
indeed better problem solvers in terms of their analytical abilities. The
following contributions are made by this study: (1) providing a better
understanding of the impact of affective states on the creativity and
analytical problem-solving capacities of developers, (2) introducing and
validating psychological measurements, theories, and concepts of affective
states, creativity, and analytical-problem-solving skills in empirical software
engineering, and (3) raising the need for studying the human factors of
software engineering by employing a multidisciplinary viewpoint.Comment: 33 pages, 11 figures, published at Peer
Happiness and the productivity of software engineers
Software companies and startups often follow the idea of flourishing
happiness among developers. Perks, playground rooms, free breakfast, remote
office options, sports facilities near the companies, company retreats, you
name it. The rationale is that happy developers should be more productive and
also retained.
But is it the case that happy software engineers are more productive?
Moreover, are perks the way to go to make developers happy? Are developers
happy at all? What are the consequences of unhappiness among software
engineers?
These questions are important to ask both from the perspective of
productivity and from the perspective of sustainable software development and
well-being in the workplace. Managers, team leaders, as well as team members
should be interested in these concerns.
This chapter provides an overview of our studies on the happiness of software
developers. You will learn why it is important to make software developers
happy, how happy they really are, what makes them unhappy, and what is expected
regarding happiness and productivity while developing software.Comment: 12 pages, 2 figures. To appear in Rethinking Productivity in Software
Engineering, edited by Caitlin Sadowski and Thomas Zimmermann. arXiv admin
note: text overlap with arXiv:1707.0043
Towards a Theory of Software Development Expertise
Software development includes diverse tasks such as implementing new
features, analyzing requirements, and fixing bugs. Being an expert in those
tasks requires a certain set of skills, knowledge, and experience. Several
studies investigated individual aspects of software development expertise, but
what is missing is a comprehensive theory. We present a first conceptual theory
of software development expertise that is grounded in data from a mixed-methods
survey with 335 software developers and in literature on expertise and expert
performance. Our theory currently focuses on programming, but already provides
valuable insights for researchers, developers, and employers. The theory
describes important properties of software development expertise and which
factors foster or hinder its formation, including how developers' performance
may decline over time. Moreover, our quantitative results show that developers'
expertise self-assessments are context-dependent and that experience is not
necessarily related to expertise.Comment: 14 pages, 5 figures, 26th ACM Joint European Software Engineering
Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE
2018), ACM, 201
Analyse the risks of ad hoc programming in web development and develop a metrics of appropriate tools
Today the World Wide Web has become one of the most powerful tools for business promotion and social networking. As the use of websites and web applications to promote the businesses has increased drastically over the past few years, the complexity of managing them and protecting them from security threats has become a complicated task for the organizations. On the other hand, most of the web projects are at risk and less secure due to lack of quality programming. Although there are plenty of frameworks available for free in the market to improve the quality of programming, most of the programmers use ad hoc programming rather than using frameworks which could save their time and repeated work. The research identifies the different frameworks in PHP and .NET programming, and evaluates their benefits and drawbacks in the web application development. The research aims to help web development companies to minimize the risks involved in developing large web projects and develop a metrics of appropriate frameworks to be used for the specific projects. The study examined the way web applications were developed in different software companies and the advantages of using frameworks while developing them. The findings of the results show that it was not only the experience of developers that motivated them to use frameworks. The major conclusions and recommendations drawn from this research were that the main reasons behind web developers avoiding frameworks are that they are difficult to learn and implement. Also, the motivations factors for programmers towards using frameworks were self-efficiency, habit of learning new things and awareness about the benefits of frameworks. The research recommended companies to use appropriate frameworks to protect their projects against security threats like SQL injection and RSS injectio
- …