Papers
Topics
Authors
Recent
Search
2000 character limit reached

Identifying Factors Contributing to Bad Days for Software Developers: A Mixed Methods Study

Published 24 Oct 2024 in cs.SE and cs.CY | (2410.18379v1)

Abstract: Software development is a dynamic activity that requires engineers to work effectively with tools, processes, and collaborative teams. As a result, the presence of friction can significantly hinder productivity, increase frustration, and contribute to low morale among developers. By contrast, higher satisfaction levels are positively correlated with higher levels of perceived productivity. Hence, understanding the factors that cause bad experiences for developers is critical for fostering a positive and productive engineering environment. In this research, we employed a mixed-method approach, including interviews, surveys, diary studies, and analysis of developer telemetry data to uncover and triangulate common factors that cause "bad days" for developers. The interviews involved 22 developers across different levels and roles. The survey captured the perception of 214 developers about factors that cause them to have "bad days," their frequency, and their impact on job satisfaction. The daily diary study engaged 79 developers for 30 days to document factors that caused "bad days" in the moment. We examined the telemetry signals of 131 consenting participants to validate the impact of bad developer experience using system data. Findings from our research revealed factors that cause "bad days" for developers and significantly impact their work and well-being. We discuss the implications of these findings and suggest future work.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (31)
  1. F. Fagerholm and J. Münch, “Developer experience: Concept and definition,” in 2012 international conference on software and system process (ICSSP).   IEEE, 2012, pp. 73–77.
  2. N. Forsgren, E. Kalliamvakou, A. Noda, M. Greiler, B. Houck, and M.-A. Storey, “Devex in action,” Communications of the ACM, vol. 67, no. 6, pp. 42–51, 2024.
  3. N. Forsgren, “Quantifying the impact of developer experience,” Jan 2024. [Online]. Available: https://azure.microsoft.com/en-us/blog/quantifying-the-impact-of-developer-experience/
  4. A. Noda, M.-A. Storey, N. Forsgren, and M. Greiler, “Devex: What actually drives productivity?” Communications of the ACM, vol. 66, no. 11, pp. 44–49, 2023.
  5. S. Srivastava, K. Trehan, D. Wagle, and J. Wang, “Developer velocity: How software excellence fuels business performance,” McKinsey & Company, pp. 1–11, 2020.
  6. B. Doerrfeld, “Understanding the importance of developer experience,” Dec 2022. [Online]. Available: https://devops.com/understanding-the-importance-of-developer-experience/
  7. A. N. Meyer, E. T. Barr, C. Bird, and T. Zimmermann, “Today was a good day: The daily life of software developers,” IEEE Transactions on Software Engineering, vol. 47, no. 5, pp. 863–880, 2019.
  8. S. C. Müller and T. Fritz, “Stuck and frustrated or in flow and happy: Sensing developers’ emotions and progress,” in 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 1.   IEEE, 2015, pp. 688–699.
  9. D. Graziotin and F. Fagerholm, “Happiness and the productivity of software engineers,” in Rethinking Productivity in Software Engineering.   Springer, 2019, pp. 109–124.
  10. C. D. Egelman, E. Murphy-Hill, E. Kammer, M. M. Hodges, C. Green, C. Jaspan, and J. Lin, “Predicting developers’ negative feelings about code review,” in Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, 2020, pp. 174–185.
  11. M.-A. Storey, T. Zimmermann, C. Bird, J. Czerwonka, B. Murphy, and E. Kalliamvakou, “Towards a theory of software developer job satisfaction and perceived productivity,” IEEE Transactions on Software Engineering, vol. 47, no. 10, pp. 2125–2142, 2019.
  12. A. Razzaq, J. Buckley, Q. Lai, Y. Ting, and G. Botterweck, “A systematic literature review on the influence of enhanced developer experience on developers’ productivity: Factors, practices, and recommendations,” ACM Computing Surveys, 2024.
  13. A. N. Meyer, L. E. Barton, G. C. Murphy, T. Zimmermann, and T. Fritz, “The work life of developers: Activities, switches and perceived productivity,” IEEE Transactions on Software Engineering, vol. 43, no. 12, pp. 1178–1193, 2017.
  14. D. Girardi, F. Lanubile, N. Novielli, and A. Serebrenik, “Emotions and perceived productivity of software developers at the workplace,” IEEE Transactions on Software Engineering, vol. 48, no. 9, pp. 3326–3341, 2021.
  15. D. Graziotin, X. Wang, and P. Abrahamsson, “Happy software developers solve problems better: psychological measurements in empirical software engineering,” PeerJ, vol. 2, p. e289, 2014.
  16. D. Graziotin, F. Fagerholm, X. Wang, and P. Abrahamsson, “Unhappy developers: Bad for themselves, bad for process, and bad for software product,” in 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).   IEEE, 2017, pp. 362–364.
  17. S. D’Angelo, J. Lin, J. Dicker, C. Egelman, M. Hodges, C. Green, and C. Jaspan, “Measuring developer experience with a longitudinal survey,” IEEE Software, vol. 41, no. 4, pp. 19–24, 2024.
  18. N. Forsgren, M.-A. Storey, C. Maddila, T. Zimmermann, B. Houck, and J. Butler, “The space of developer productivity: There’s more to it than you think.” Queue, vol. 19, no. 1, pp. 20–48, 2021.
  19. A. Brown, S. D’Angelo, B. Holtz, C. Jaspan, and C. Green, “Using logs data to identify when software engineers experience flow or focused work,” in Proceedings of the 2023 CHI Conference on Human Factors in Computing Systems, 2023, pp. 1–12.
  20. A. N. Meyer, T. Fritz, G. C. Murphy, and T. Zimmermann, “Software developers’ perceptions of productivity,” in Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2014, pp. 19–29.
  21. E. Murphy-Hill, C. Jaspan, C. Sadowski, D. Shepherd, M. Phillips, C. Winter, A. Knight, E. Smith, and M. Jorde, “What predicts software developers’ productivity?” IEEE Transactions on Software Engineering, vol. 47, no. 3, pp. 582–594, 2019.
  22. S. Lu, S. Park, E. Seo, and Y. Zhou, “Learning from mistakes: a comprehensive study on real world concurrency bug characteristics,” in Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, 2008, pp. 329–339.
  23. A. J. Ko, R. DeLine, and G. Venolia, “Information needs in collocated software development teams,” in 29th International Conference on Software Engineering (ICSE’07).   IEEE, 2007, pp. 344–353.
  24. S. Wang, D. Lo, and L. Jiang, “An empirical study on developer interactions in stackoverflow,” in Proceedings of the 28th annual ACM symposium on applied computing, 2013, pp. 1019–1024.
  25. D. Badampudi, M. Unterkalmsteiner, and R. Britto, “Modern code reviews—survey of literature and practice,” ACM Transactions on Software Engineering and Methodology, vol. 32, no. 4, pp. 1–61, 2023.
  26. M. V. Mäntylä and C. Lassenius, “What types of defects are really discovered in code reviews?” IEEE Transactions on Software Engineering, vol. 35, no. 3, pp. 430–448, 2008.
  27. C. Sadowski, E. Söderberg, L. Church, M. Sipko, and A. Bacchelli, “Modern code review: a case study at google,” in Proceedings of the 40th international conference on software engineering: Software engineering in practice, 2018, pp. 181–190.
  28. A. Bosu, M. Greiler, and C. Bird, “Characteristics of useful code reviews: An empirical study at microsoft,” in 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.   IEEE, 2015, pp. 146–156.
  29. S. Phillips, T. Zimmermann, and C. Bird, “Understanding and improving software build teams,” in Proceedings of the 36th international conference on software engineering, 2014, pp. 735–744.
  30. Y. Yu, H. Dayani-Fard, and J. Mylopoulos, “Removing false code dependencies to speedup software build processes,” in Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research, 2003, pp. 343–352.
  31. Q. Tu and M. W. Godfrey, “The build-time software architecture view,” in Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.   IEEE, 2001, pp. 398–407.

Summary

  • The paper identifies key factors, including tooling issues, process inefficiencies, and team dynamics, as central causes of 'bad days' for developers.
  • The paper employs a mixed-methods design—integrating interviews, surveys, diary studies, and telemetry—to validate the impact of these factors on productivity and well-being.
  • The paper reveals that bad days lead to reduced productivity, career concerns, and extended work hours, emphasizing the need for targeted organizational interventions.

Overview of Factors Contributing to "Bad Days" for Software Developers

The paper "Identifying Factors Contributing to 'Bad Days' for Software Developers: A Mixed-Methods Study" presents an empirical investigation into factors that negatively impact software developers' work experiences, using both qualitative and quantitative methodologies. The research involved interviews, surveys, diary studies, and telemetry data analysis, engaging developers from various roles and experience levels to identify and measure factors causing "bad days."

Key Findings

Factors Contributing to Bad Days

The study identifies several factors that consistently lead to "bad days" among developers:

  • Tooling and Infrastructure Issues: Challenges such as unreliable tools, slow build times, and flaky tests emerged as significant contributors to developer frustration.
  • Process Inefficiencies: Unclear project ownership, lack of documentation, and inefficient workflows were frequently cited as sources of productivity loss.
  • Team Dynamics: Communication breakdowns and interpersonal conflicts were identified as additional stressors, particularly affecting junior developers.

Impact on Developers

The study found varied impacts of "bad days" on developers:

  • Productivity and Career Concerns: Developers often reported feeling less productive and worried about the implications for their career growth.
  • Emotional and Mental Health: The recurrence of "bad days" contributed to self-doubt, imposter syndrome, and high stress levels, with effects spilling over into personal life.
  • Extended Work Hours: Developers frequently worked overtime to compensate for lost productivity, disrupting work-life balance and causing further stress.

Empirical Validation through Telemetry Data

The study utilized telemetry data to validate developer-reported factors causing "bad days," specifically examining pull request and build times. The analysis revealed statistically significant differences in these metrics between developers reporting these issues as problematic versus those who did not, corroborating the self-reported data.

Implications and Future Directions

Practical Implications

This research underscores the complexity of developer experience, highlighting that both technical and non-technical factors must be addressed to mitigate "bad days." Organizations can leverage these insights to implement targeted interventions, such as improving tooling reliability and refining processes to enhance developer productivity and well-being.

Theoretical Implications

The findings contribute to the growing body of literature on developer experience, emphasizing the interplay between technical blockers and personal well-being. This research could inform future studies exploring the holistic impacts of work environments on developer performance and satisfaction.

Future Work

Future research could explore the cyclical impact of "bad days" on developers' cognitive and emotional states, exploring interventions that break this cycle. Additionally, further studies could explore the role of organizational culture in shaping developer experiences and how it may mediate the identified factors.

Conclusion

This paper provides a nuanced understanding of the factors contributing to "bad days" for developers, validated through a mixed-methods approach. By integrating qualitative insights with quantitative validation, it offers a comprehensive depiction of the challenges faced by developers and paves the way for more informed strategies to improve their work experiences.

Paper to Video (Beta)

No one has generated a video about this paper yet.

Whiteboard

No one has generated a whiteboard explanation for this paper yet.

Open Problems

We haven't generated a list of open problems mentioned in this paper yet.

Continue Learning

We haven't generated follow-up questions for this paper yet.

Collections

Sign up for free to add this paper to one or more collections.

Tweets

Sign up for free to view the 7 tweets with 1 like about this paper.