Sustainable Software Development through Overlapping Pair Rotation

Context: Conventional wisdom says that team disruptions (like team churn) should be avoided. However, we have observed software development projects that succeed despite high disruption. Objective: The purpose of this paper is to understand how to develop software effectively, even in the face of team disruption. Method: We followed Constructivist Grounded Theory. The primary researcher conducted participant-observation of several projects at Pivotal (a software development company), and interviewed 21 software engineers, interaction designers, and product managers. The researcher iteratively sampled and analyzed the collected data until achieving theoretical saturation. Results: This paper introduces a descriptive theory of Sustainable Software Development. The theory encompasses principles, policies, and practices aiming at removing knowledge silos and improving code quality (including discoverability and readability), hence leading to development sustainability. Limitations: While the results are highly relevant to the observed projects at Pivotal, the outcomes may not be transferable to other software development organizations with different software development cultures. Conclusion: The theory refines and extends the understanding of Extreme Programming by adding a few principles, policies, and practices (like the unique Overlapping Pair Rotation practice) and aligning these principles, policies, and practices towards the business goal of sustainability.

[1]  Paul Ralph,et al.  Grounded Theory in Software Engineering Research: A Critical Review and Guidelines , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[2]  Eric Allman,et al.  Managing Technical Debt , 2012, ACM Queue.

[3]  Paul Ralph,et al.  Developing and Evaluating Software Engineering Process Theories , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[4]  Franz Zieris,et al.  Observations on Knowledge Transfer of Professional Software Developers during Pair Programming , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[5]  Paul Ralph,et al.  Practice and perception of team code ownership , 2016, EASE.

[6]  Charles Ashbacher Growing Object-Oriented Software, Guided by Tests , 2010, J. Object Technol..

[7]  Janice Singer,et al.  How software engineers use documentation: the state of the practice , 2003, IEEE Software.

[8]  Laurie A. Williams,et al.  Pair Programming Illuminated , 2002 .

[9]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[10]  Richard Baskerville,et al.  Generalizing Generalizability in Information Systems Research , 2003, Inf. Syst. Res..

[11]  Jan Chong,et al.  Social behaviors on XP and non-XP teams: a comparative study , 2005, Agile Development Conference (ADC'05).

[12]  Rachel Davies,et al.  Exploring Agile Coaching , 2008, XP.

[13]  Jesús M. González-Barahona,et al.  Using Software Archaeology to Measure Knowledge Loss in Software Projects Due to Developer Turnover , 2009, 2009 42nd Hawaii International Conference on System Sciences.

[14]  Eric Allman,et al.  Managing technical debt , 2012, Commun. ACM.

[15]  Andraž Cej,et al.  Agile software development with Scrum , 2010 .

[16]  Jari Vanhanen,et al.  Experiences of Using Pair Programming in an Agile Project , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[17]  Audris Mockus,et al.  Quantifying and Mitigating Turnover-Induced Knowledge Loss: Case Studies of Chrome and a Project at Avaya , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[18]  B. Glaser Doing grounded theory : issues and discussions , 1998 .

[19]  B. Glaser Theoretical Sensitivity: Advances in the Methodology of Grounded Theory , 1978 .

[20]  Harald C. Gall,et al.  Don't touch my code!: examining the effects of ownership on software quality , 2011, ESEC/FSE '11.

[21]  Soon Ang,et al.  Turnover of Information Technology Professionals: A Narrative Review, Meta-Analytic Structural Equation Modeling, and Model Development , 2007, MIS Q..

[22]  Rachel Davies,et al.  Agile Coaching , 2009 .

[23]  Marco Torchiano,et al.  On the Difficulty of Computing the Truck Factor , 2011, PROFES.

[24]  James O. Coplien,et al.  A generative development-process pattern language , 1995 .

[25]  B. Tuckman DEVELOPMENTAL SEQUENCE IN SMALL GROUPS. , 1965, Psychological bulletin.

[26]  B. Glaser Basics of Grounded Theory Analysis: Emergence Vs. Forcing , 1992 .

[27]  Paul Ralph,et al.  Evaluating process theories in software engineering , 2014, GTSE 2014.

[28]  K. Charmaz,et al.  Constructing Grounded Theory , 2014 .

[29]  H-U Simon,et al.  Doing Grounded Theory , 2014 .

[30]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .