Software Developer Experience: Case Studies in Lean-Agile and Open Source Environments

Fabian Fagerholm

Research output: ThesisDoctoral ThesisCollection of Articles

Abstract

Human factors have been identified as having the largest impact on performance and quality in software development. While production methods and tools, such as development processes, methodologies, integrated development environments, and version control systems, play an important role in modern software development, the largest sources of variance and opportunities for improvement can be found in individual and group factors. The success of software development projects is highly dependent on cognitive, conative, affective, and social factors among individuals and groups. When success is considered to include not only fulfilment of schedules and profitability, but also employee well-being and public impact, particular attention must be paid to software developers and their experience of the software development activity.

This thesis uses a mixed-methods research design, with case studies conducted inc ontemporary software development environments, to develop a theory of software developer experience. The theory explains what software developers experience as part of the development activity, how an experience arises, how the experience leads to changes in software artefacts and the development environment through behaviour, and how the social nature of software development mediates both the experience and outcomes. The theory can be used both to improve software development work environments and to design further scientific studies on developer experience.

In addition, the case studies provide novel insights into how software developers experience software development in contemporary environments. In Lean-Agile software development, developers are found to be engaged in a continual cycle of Performance Alignment Work, where they become aware of, interpret, and adapt to performance concerns on all levels of an organisation. High-performing teams can successfully carry out this cycle and also influence performance expectations in other parts of the organisation and beyond.

The case studies show that values arise as a particular concern for developers. The combination of Lean and Agile software development allows for a great deal of flexibility and self-organisation among developers. As a result, developers themselves must interpret the value system inherent in these methodologies in order to inform everyday decision-making. Discrepancies in the understanding of the value system may lead to different interpretations of what actions are desirable in a particular situation. Improved understanding of values may improve decision-making and understanding of Lean-Agile software development methodologies among software developers. Organisations
may wish to clarify the value system for their particular organisational culture and promote values-based leadership for their software development projects.

The distributed nature and use of virtual teams in Open Source environments present particular challenges when new members are to join a project. This thesis examines mentoring as a particular form of onboarding support for new developers. Mentoring is found to be a promising approach which helps developers adopt the practices and tacit conventions of an Open Source project community, and to become contributing members more rapidly. Mentoring could also have utility in similar settings that use virtual teams.
Original languageEnglish
Place of PublicationHelsinki
Publisher
Print ISBNs978-951-51-1746-5
Electronic ISBNs 978-951-51-1747-2
Publication statusPublished - 4 Dec 2015
MoE publication typeG5 Doctoral dissertation (article)

Fields of Science

  • 113 Computer and information sciences
  • human factors
  • management
  • performance
  • theory
  • developer experience
  • agile software development
  • lean software development
  • open source software development
  • values
  • onboarding
  • virtual teams
  • cognition
  • motivation
  • affects
  • social factors

Cite this