Source-linked AI summary

What happens when software developers are (un)happy

Daniel Graziotin, Fabian Fagerholm, Xiaofeng Wang, Pekka Abrahamsson

arXiv:1707.00432v3cs.SEcs.CY

TL;DR

Research on developer affect had mainly linked happiness with productivity and software quality, leaving the broader consequences of happiness and unhappiness insufficiently understood. The paper qualitatively analyzes questionnaire responses from software developers and identifies consequences spanning developers, development processes, and artifacts. It reports 42 consequences of unhappiness and 32 of happiness, including both beneficial and detrimental effects.

  • Problem

    Existing understanding of developer (un)happiness consequences was too shallow and mainly expressed through productivity and software quality, despite the importance of understanding positive and negative experiences.

  • Method

    The study qualitatively analyzes open-ended survey responses from software developers recruited through GitHub using Grounded Theory coding.

  • Results

    42 consequences of unhappiness and 32 of happiness were identified across developers’ mental well-being, the software development process, and produced artifacts.

  • Takeaways & Limitations

    The findings show that happiness is more often experienced as benefiting developers themselves, while unhappiness is more often experienced as detrimental to others.

  • Takeaways & Limitations

    The GitHub-based sample is limited in size and representativeness, excluding developers whose work or activity is not publicly visible.

Abstract

from arXiv · show

The growing literature on affect among software developers mostly reports on the linkage between happiness, software quality, and developer productivity. Understanding happiness and unhappiness in all its components -- positive and negative emotions and moods -- is an attractive and important endeavor. Scholars in industrial and organizational psychology have suggested that understanding happiness and 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, being mainly expressed in terms of development productivity and software quality. In this paper, we study what happens when developers are happy and unhappy while developing software. Qualitative data analysis of responses given by 317 questionnaire participants identified 42 consequences of unhappiness and 32 of happiness. We found consequences of happiness and unhappiness that are beneficial and detrimental for developers' mental well-being, the software development process, and the produced artifacts. Our classification scheme, available as open data enables 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.

1. Introduction

Prior research linked developer affect with productivity and software quality, but consequences of happiness and unhappiness remained insufficiently understood. This study examines developers’ experienced consequences of both states while developing software.

  • Research on developer happiness has mostly examined links with software quality, performance, and productivity.
  • Understanding both positive and negative experiences is needed to identify ways of increasing developers’ net happiness.The paper frames happiness as positive affect minus negative affect, so either positive experiences or reduced negative experiences may increase it.
  • The study aims to broaden understanding of what developers experience when they are happy or unhappy while developing software.
  • The identified consequences affect developers themselves, the software development process, and produced artifacts.

2. Background and Related Work

Software-engineering research has connected affective experiences with developer performance, productivity, and software quality, but broader empirically grounded explanations remain limited. The paper situates its study within affect theory and prior correlational, experimental, and qualitative work.

  • Affect and happiness: Affect is treated as the basic unit from which moods and emotions are constructed, while happiness reflects a balance of positive and negative affect.
  • Research gap: Research on developer affect remains young, with unresolved theoretical and methodological issues.
  • Prior evidence: Prior studies associated affective states with requirements outcomes, issue handling, debugging, productivity, and software quality.
  • Prior theories: Existing theories explain how affect may influence development performance and how teams adjust to changing performance demands.
  • Research gap: The current research leaves insufficient empirically grounded theory for investigating larger sets of causal relationships.

3. Method

The study uses a qualitative survey of software developers’ reported consequences of happiness and unhappiness. Researchers analyzed open-ended responses with Grounded Theory coding and developed comparable coding schemes for both affective states.

  • Research design: The present study is a purely qualitative component of a broader mixed-method research project.
  • Sampling Strategy: Developers were reached through GitHub, using public activity from a six-month period to assemble the contact set.
  • Data collection: The survey included demographic questions, a happiness assessment, and open-ended questions about experienced causes and consequences of positive and negative affect.
  • Analysis: The researchers cleaned responses and analyzed them through open, axial, and selective coding based on Grounded Theory.
  • Analysis: The happiness coding scheme began from the unhappiness scheme but allowed categories to be added, removed, or refined for comparability.
  • Scope: The analysis included positive consequences of happiness and negative consequences of unhappiness, while reverse directions were not explored because they represented less than 5% of codes.

4. Results

The results section reports participant characteristics and introduces the qualitative consequence analysis. The two datasets together contain 317 unique respondents, with separate respondent sets for the two research questions.

  • Results Organization: The analysis presents unhappiness consequences first, followed by happiness consequences.
  • Descriptive Statistics: 317 unique respondents contributed to the two consequence datasets combined.
  • Descriptive Statistics: 70 respondents occurred in both datasets, while 247 occurred in only one dataset.
  • Descriptive Statistics: 181 valid and complete responses addressed RQ1.
  • Descriptive Statistics: 206 valid and complete responses addressed RQ2.

What are the Experienced Consequences of Unhappiness Among Software Developers While Developing Software?

Unhappiness produced consequences affecting developers’ mental and behavioral states, the software development process, and software artifacts. The reported consequences included reduced cognitive performance and motivation, process disruption, and lower software quality.

  • 250 coded instances of unhappiness were grouped into 42 categories spanning developers’ own being, process, and artifact consequences.The categories contained 113 references to developers’ own being, 102 to process, and 35 to artifacts.
  • Developer’s own being: The most frequent consequences for developers’ own being were low cognitive performance, mental unease or disorder, low motivation, and work withdrawal.Reported mental-health effects included anxiety, stress, self-doubt, sadness, and depression.
  • Developer’s own being: Unhappiness was associated with reduced focus and cognitive skills, while work withdrawal ranged from switching tasks to considering quitting software development or leaving a company.Participants also reported reduced creativity, resentment, caution, rushing, lower reputation, feeling undervalued, and unhealthy coping behavior.
  • Process: Unhappiness reduced productivity and delayed process activities, while also disrupting communication and organization.Participants described working more slowly, difficulty generating solutions, project delays, miscommunication, and difficulty meeting deadlines.
  • Process: Unhappiness led developers to deviate from agreed practices, use quick solutions, and experience interruptions in task-related flow.Participants reported compromising process actions and wasting time restarting tasks after flow was broken.
  • Artifact-oriented: The most important artifact-oriented consequence was low software quality, including messier, less performant, and sloppier code.Participants also reported abandoning quality practices such as standard design patterns.
  • Artifact-oriented: Some participants deleted task-related code or entire projects, an extreme form of productivity and quality loss.The reported behavior involved destroying work rather than refactoring it.

What are the Experienced Consequences of Happiness Among Software Developers While Developing Software?

Happiness was associated with beneficial consequences for developers’ own being, the software development process, and produced artifacts. Reported effects included cognitive, motivational, social, procedural, and quality-related changes.

  • Overview: 340 coded instances of happiness consequences were grouped into 32 categories spanning developers’ own being, process, and artifact outcomes.The categories included 198 instances for developers’ own being, 104 for process, and 38 for artifacts.
  • Developer’s own being: Happiness was associated with stronger feelings of achievement, being valued, pride in completed work, and healthier coping with negative issues.These consequences concerned both developers’ self-evaluations and their social experiences at work.
  • Developer’s own being: High cognitive performance, motivation, positive atmosphere, self-accomplishment, engagement, creativity, and self-confidence were among the most frequent internal consequences.Participants described improved focus, problem-solving, mental energy, perseverance, divergent thinking, and confidence in difficult tasks.
  • Process: At the process level, participants reported high productivity, faster task completion, sustained flow, increased collaboration, and greater adherence to practices.Reported collaboration included sharing knowledge and helping peers; process adherence especially involved testing, documentation, and standards.
  • Process: Happiness was associated with more enjoyable interactions and positive team practices, including good manners, planning, testing, and documentation.Participants also linked positive feelings with self-discipline and following best practices and standards.
  • Artifact-oriented consequences: High code quality was the most significant artifact-oriented consequence, with participants describing cleaner, more readable, tested, commented code and fewer errors and bugs.Participants associated positive feelings with making fewer mistakes, seeing solutions more easily, and improving code quality beyond basic functionality.

5. Discussion

Developers reported many consequences of both unhappiness and happiness across their own well-being, the development process, and software artifacts. Unhappiness was generally detrimental, whereas happiness was generally beneficial, though the detailed patterns were not simple mirrors.

  • Unhappiness: 42 categories captured unhappiness consequences, with 55% external consequences affecting the process and artifacts.Unhappiness was associated with low productivity, delays, broken flow, process shortcuts, and software-quality problems.
  • Unhappiness: Unhappiness harmed developers’ cognitive performance and mental well-being through low focus, fatigue, poor decision-making, anxiety, burnout, and stress.Work withdrawal, low motivation, and reduced creativity were also reported; reduced creativity is problematic because software development often requires creativity.
  • Happiness: 32 categories captured happiness consequences, with 58% concerning developers’ own being, especially high cognitive performance and high motivation.Happy developers reported greater focus, problem-solving performance, mental energy, learning, work engagement, perseverance, creativity, and self-confidence.
  • Happiness: Happiness produced external process benefits including higher productivity, expedited work, sustained flow, collaboration, process adherence, and high code quality.Process-related outcomes were the most prevalent external consequences, while artifact-related reports exclusively concerned high code quality.
  • Comparing happiness and unhappiness: Participants reported 340 coded happiness instances versus 250 unhappiness instances, despite identifying more unhappiness categories than happiness categories.The two datasets were not fully comparable because participants described unhappiness in more detail but reported more happiness consequences overall.
  • Comparing happiness and unhappiness: Cognitive performance and motivation appeared on both sides, but mental unease had no direct happiness counterpart and work withdrawal contrasted with engagement and perseverance.Unhappiness reduced cognitive performance and motivation, whereas happiness increased them; several other categories were not direct mirrors.

6. Conclusion

The study organizes experienced happiness and unhappiness consequences into effects on developers, the development process, and artifacts. These findings identify well-being risks and practical directions for improving working conditions, while also supporting future causal and replication research.

  • The consequences span internal developer effects and external effects on the software development process and artifacts.
  • Both happiness and unhappiness strongly affect development productivity and quality through cognitive and process-related performance.Cognitive performance includes creativity and flow.
  • Unhappiness includes adverse effects such as work withdrawal, stress, anxiety, burnout, and depression.
  • Managers and team leaders can use the consequence list to identify damaging effects and consider ways to enhance developers’ working conditions.
  • The findings provide theoretical foundations for causality studies and can support replication across developer populations and roles.Suggested replication targets include programmers, testers, and architects.
  • The study reinforces the need to address behavioral and social-science dimensions in software engineering research.
Loading 1707.00432v3…