  The happy-productive worker thesis states that happy workers are more
productive. Recent research in software engineering supports the thesis, and
the ideal of flourishing happiness among software developers is often expressed
among industry practitioners. However, the literature suggests that a
cost-effective way to foster happiness and productivity among workers could be
to limit unhappiness. Psychological disorders such as job burnout and anxiety
could also be reduced by limiting the negative experiences of software
developers. Simultaneously, a baseline assessment of (un)happiness and
knowledge about how developers experience it are missing. In this paper, we
broaden the understanding of unhappiness among software developers in terms of
(1) the software developer population distribution of (un)happiness, and (2)
the causes of unhappiness while developing software. We conducted a large-scale
quantitative and qualitative survey, incorporating a psychometrically validated
instrument for measuring (un)happiness, with 2220 developers, yielding a rich
and balanced sample of 1318 complete responses. Our results indicate that
software developers are a slightly happy population, but the need for limiting
the unhappiness of developers remains. We also identified 219 factors
representing causes of unhappiness while developing software. Our results,
which are available as open data, can act as guidelines for practitioners in
management positions and developers in general for fostering happiness on the
job. We suggest considering happiness in future studies of both human and
technical aspects in software engineering.
