Mob programming: From avant-garde experimentation to established practice

https://doi.org/10.1016/j.jss.2021.111017Get rights and content

Highlights

  • An overview of the state of research on the emergent practice of mob programming.

  • Guidance on mob programming adoption and evaluation offered to practitioners.

  • A discussion of Social and organizational enablement of mob programming.

  • A proposed roadmap of subsequent research into mob programming.

Abstract

Mob programming is an emergent practice in the industry, attracting increasing attention from the research community. Superficially a simple concept – similar to pair programming, but with more people – many of the same concerns arise as with pair programming, only more so: can it truly be efficient, is it for everybody, and what are the benefits and risks involved? In this paper we show that while research interest in this topic is increasing, much of the published literature to date constitutes experience reports, with a number of implicit differences in how mob programming is practiced. To transform mob programming from an area of avant-garde experimentation into a well understood practice in the toolbox of mainstream software engineering, such implicit differences need to be exposed, analyzed and documented, and the contextual enabling factors must be investigated. In this paper we take an important step in that direction by identifying variations in the practice and providing concrete guidance for creating an organizational and social environment where mob programming can be practiced both effectively and safely.

Introduction

Mob programming was first introduced in literature by Hohman and Slocum (2001), to later be elaborated and popularized by Zuill and Meadows (2014) who described the success experienced after more or less serendipitously developing the practice in their own team. At its simplest, mob programming can be understood as a form of pair programming, but with three or more participants. In the description given by Zuill and Meadows, the practice is formalized with dedicated roles, such as navigator and driver, that continually rotate among the mob programming participants and fulfill different needs in the programming process. In this sense there is considerable conceptual overlap between mob programming and the idea of strong pairing (Falco, 2014), which emphasizes that every idea must pass through another person’s brain to enter into the code. The practice also has similarities to Randori coding dojos (Rooksby et al., 2014) – with designated driver, navigator and “audience” – with the difference that mob programming is intended for actual software development, as opposed to being designed for learning purposes.

As researchers, we have approached mob programming from our experiences with exploratory testing (Bach, 2003, Hendrickson, 2013), applied collaboratively in large-scale software development projects (Mårtensson et al., 2017, Mårtensson et al., 2019). In this work we have observed remarkable value created and insights gained, particularly when individuals of different backgrounds and competences are brought together to jointly run a single testing scenario. This may seem inefficient — surely the precious time of these senior engineers would be better spent if they each ran their own scenario in parallel? In fact, the discussions, learning and rapid troubleshooting that resulted from the shared focus on a single task not only let them bring ready-to-implement solutions back to their respective organizations, but also led to tangible joy and enthusiasm at actually working as a team rather than as a collection of individuals.

These positive experiences of collaborative exploratory testing raises the question: what would an analogous practice for development – as opposed to testing – look like? It is from this point of view that we approach mob programming, as such an analogous practice, prompting us to investigate it further. Recognizing that this practice, as any other, may have both positive and negative effects and that it may be applied in different ways, in varying contexts and for a wide array of types of tasks, this study seeks to answer the following research question: When and how is mob programming an effective and efficient method of software development? To address this question, we take a dual approach. First, experiences and research on the practice in published literature are investigated. Second, perceptions are gathered from current industry practitioners. From this, the variants, benefits and risks of the practice are then discussed and a research roadmap to further explain the practice are proposed.

The contribution of this paper is three-fold. First, it provides an overview of the state of research for an emergent practice in the industry. Second, it offers guidance to software engineers to help them evaluate in a more systematic way whether mob programming may be feasible for them, and supports them in bootstrapping the practice by providing relevant and actionable recommendations based on published literature and industry experiences. Third, it proposes a roadmap of subsequent research on mob programming.

The remainder of this paper is structured as follows. Section 2 provides an overview of the research method, while Section 3 surveys related work. In Section 4, results from interviews with mob programming practitioners are presented. The interview data is then analyzed and discussed in Section 5 and a research roadmap is proposed in Section 6. Finally, threats to validity and reliability are discussed and the paper is concluded in Sections 7 Threats to validity and reliability, 8 Conclusion , respectively.

Section snippets

Research method

To answer the research question of When and how is mob programming an effective and efficient method of software development?, a step-wise research method was designed.

Study of related work

To identify potential risks, benefits and variables in mob programming practice, informing subsequent steps in the research process (see Section 2), a study of related work was conducted. To identify sources, the inclusion and exclusion criteria listed in Table 1 were used.

As shown in Table 1, the initial search in four databases yielded a total of 16 unique results. These were then culled through subsequent application of exclusion criteria to 11 papers:

  • P1: Mob Programming: A Systematic

Practitioner experiences

This section presents the results from the interviews with mob programming practitioners. To capture the insights of developers already experienced in mob programming, the members of a development team having practiced it on a daily basis for nine months were interviewed (see Section 2.3). The interview guide comprised 13 questions designed to address the Areas of Interest retrieved from literature (see Table 3), with each Area of Interest covered by at least one question.

The thematic map –

Analysis and discussion

This section presents the analysis of the interview results, connecting back to the Areas of Interest in Table 3.

Research roadmap proposal

While we conclude that some of the original questions derived from related work are best answered by the individual practitioners in each respective case (see Section 5.6), a number of non-trivial questions with potentially general answers present themselves in the analysis in Section 5. This opens up multiple promising avenues for further research, leading us to propose research questions to address related to the organizational enablement of mob programming, its social dynamics, collecting

Threats to validity and reliability

This section discusses threats to validity and reliability.

Conclusion

This paper addresses the question of When and how is mob programming an effective and efficient method of software development? This is a multi-faceted question: effectiveness has multiple possible interpretations, from team member well-being to team productivity, and regardless of whether is effective in any given sense it may or may not be an efficient use of available resources. To address the question, the state of published literature was surveyed (see Section 3), leading to the

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Acknowledgments

The authors would like to thank all the participating engineers for their insights, patience and willingness to share their experiences and data with us.

Daniel Ståhl is software subject matter expert at Ericsson AB and an associate professor of software engineering at Linköping University, Sweden. He has a background of thirteen years of large-scale software development in the industry. He received his Ph.D. degree from the University of Gröningen, The Netherlands, in 2017 and his M.Sc. degree from Linköping University, Sweden, in 2007.

References (41)

  • MårtenssonT. et al.

    Excellence in exploratory testing: Success factors in large-scale industry projects

  • KitchenhamB.

    Procedures for Performing Systematic Reviews, Vol. 33

    (2004)
  • HoveS.E. et al.

    Experiences from conducting semi-structured interviews in empirical software engineering research

  • RobsonC. et al.

    Real World Research

    (2016)
  • ShiraishiM. et al.

    Mob programming: A systematic literature review

  • SankaranarayananS. et al.

    An intelligent-agent facilitated scaffold for fostering reflection in a team-based project course

  • Buchan, J., Pearl, M., 2018. Leveraging the mob mentality: An experience report on mob programming. In: Proceedings of...
  • KattanH.M. et al.

    Mob programming: the state of the art and three case studies of open source software

  • Kattan, H.M., Soares, F., Goldman, A., Deboni, E., Guerra, E., 2018. Swarm or pair? strengths and weaknesses of pair...
  • Kattan, H.M., 2018. Theory of altruism on software development practices patterns. In: Proceedings of the 19th...
  • Daniel Ståhl is software subject matter expert at Ericsson AB and an associate professor of software engineering at Linköping University, Sweden. He has a background of thirteen years of large-scale software development in the industry. He received his Ph.D. degree from the University of Gröningen, The Netherlands, in 2017 and his M.Sc. degree from Linköping University, Sweden, in 2007.

    Torvald Mårtensson is distinguished engineer, test manager and technical fellow at Saab AB. He has a background of fifteen years in the aeronautics industry and another eight years in the telecom industry. His work has primarily revolved around systems integration and system testing of large-scale software systems. He received his Ph.D. degree from the University of Gröningen, The Netherlands, in 2019 and his M.Sc. degree from Linköping University, Sweden, in 1997.

    Editor: Raffaela Mirandola.

    View full text