Collaboration Via Aligned Autonomy for Commercial Software Teams
Total Page:16
File Type:pdf, Size:1020Kb
Collaboration via Aligned Autonomy for Commercial Software Teams by Eirini Kalliamvakou B.Sc., National Kapodestrian University of Athens, 2001 M.Sc., Athens University of Economics and Business, 2004 ADissertationSubmittedinPartialFulfillmentofthe Requirements for the Degree of DOCTOR OF PHILOSOPHY in the Department of Computer Science c Eirini Kalliamvakou, 2017 University of Victoria All rights reserved. This dissertation may not be reproduced in whole or in part, by photocopying or other means, without the permission of the author. ii Collaboration via Aligned Autonomy for Commercial Software Teams by Eirini Kalliamvakou B.Sc., National Kapodestrian University of Athens, 2001 M.Sc., Athens University of Economics and Business, 2004 Supervisory Committee Dr. Daniel M. German, Supervisor (Department of Computer Science, University or Victoria) Dr. Margaret-Anne Storey, Departmental Member (Department of Computer Science, University or Victoria) Dr. Marian Petre, Outside Member (Faculty of Mathematics, Computing and Technology Computing and Communica- tions, The Open University) iii Supervisory Committee Dr. Daniel M. German, Supervisor (Department of Computer Science, University or Victoria) Dr. Margaret-Anne Storey, Departmental Member (Department of Computer Science, University or Victoria) Dr. Marian Petre, Outside Member (Faculty of Mathematics, Computing and Technology Computing and Communica- tions, The Open University) ABSTRACT Modern software organizations produce increasingly complex and sophisticated products that build on the e↵ort of multiple individuals and teams. This reality high- lights the critical importance of collaboration and the support of its various facets, which are still central concerns for software engineering research and practice. Soft- ware organizations also aim to motivate their developers and teams and help them be productive. Knowledge work research highlights the importance of autonomy in work design for satisfaction and happiness. The now pervasive adoption of agile methods and advocacy of self-organization have made autonomy and its challenging practical application a mainstream focus for software engineering research and practice. Employee autonomy and e↵ective collaboration are thus essential for software companies to motivate developers and help them deliver successful software prod- ucts. Yet, essential as it might be for organizations to combine them, autonomy and collaboration seem conceptually and practically at odds with one another; is it pos- sible for people or teams that are working together on something be autonomous? One can imagine teams finding it challenging to organize the development work of autonomous developers. Furthermore, on the organizational level it can be difficult to align autonomous agents towards a desirable company strategy. Finally, management iv may need to be revisited as a function when individuals or teams have autonomy in their work. Given the complex landscape that software teams are part of in today’s mod- ern organizations, we need to understand how they collaborate in the context of their environment. This dissertation builds on three substantial, diverse case studies based in industry, capturing various ways that several software organizations organize collaborative development work. In the first study I examined how 24 commercial software teams in di↵erent companies organize their development work through their use of GitHub. In the second study I probed how Atlassian scales the practices of its rapidly growing development teams and enacts a culture that keeps them aligned to the strategic goals. In the third study I explored the role of engineering managers at Microsoft and how they support software developers and teams to organize their own work and generate quality outcomes that meet organizational goals. The studies are primarily qualitative and I have used a variety of data collection methods including interviews, observations, documentation review, and surveys. Tension between autonomy and collaboration surfaced in the studies and it be- came the central challenge I investigate in this dissertation. By understanding the meaning of autonomy for the studied organizations, the definition and characteristics of autonomy evolved and, upon synthesis of the findings, I argue that autonomy is not incompatible with collaboration but rather that the two concepts build on each other. I articulate and propose a conceptual framework of collaboration via aligned au- tonomy for software companies in this dissertation. This represents a holistic view of organizations and includes four areas to consider when making autonomy the founda- tion of collaboration: team collaboration practices, scaling strategies, cultural values, and manager roles. The framework has implications for the study of collaborative software development by proposing to look beyond the combination of independence and coordination as the basis of collaboration. At the same time, the framework can guide commercial software teams and organizations on how to empower development teams, yet not compromise strategic vision. v Contents Supervisory Committee ii Abstract iii Table of Contents v List of Tables x List of Figures xiii Acknowledgements xv Dedication xviii 1 Introduction 1 2 Background 6 2.1 TowardadefinitionofAutonomy . 6 2.2 WhyAutonomyisdesirable ....................... 8 2.2.1 A bit of history . 8 2.2.2 Job satisfaction, motivation, and engagement . 10 2.2.3 Knowledge worker productivity . 12 2.3 Collaboration challenges in software engineering . 14 2.4 Autonomyinsoftwareengineeringteams . 16 2.4.1 Autonomy and open source software development . 16 2.4.2 Self-management in agile software teams . 18 2.4.3 Autonomyandagilityasmindsets. 19 2.5 Autonomyisnotthewholestory . 20 2.5.1 Do autonomy and agility scale? . 21 2.5.2 Management and autonomy . 22 vi 3 Methodology 25 3.1 Research approach . 26 3.1.1 The research problem . 26 3.1.2 Worldview, design, and methods . 27 3.2 The spectrum between a quantitative and qualitative approach . 30 3.3 Overview of studies . 32 3.3.1 Research questions and the link between chapters . 32 3.3.2 Synthesis . 37 3.4 Outcomes and lessons learned . 38 3.5 Summary . 39 4 Autonomy as independence — The GitHub study 40 4.1 WhystudytheuseofGitHub ...................... 41 4.2 Case study setting and methodology . 42 4.2.1 Research goal and questions . 43 4.2.2 Some useful concepts . 43 4.2.3 Data collection and analysis . 44 4.3 How commercial software teams use GitHub to collaborate . 48 4.3.1 Working together through independent work . 49 4.3.2 Reduced communication and coordination needs . 52 4.3.3 A touch of self-organization . 54 4.4 Discussion . 55 4.4.1 Collaborative practices and GitHub’s features . 55 4.4.2 GitHub as a vehicle for adopting best, oss-style, practices . 57 4.4.3 The balance of autonomy and collaboration . 60 4.5 Threats to validity in the study . 63 4.6 Conclusion . 63 5 Aligned Autonomy — The Atlassian study 65 5.1 WhystudyAtlassian ........................... 66 5.2 Case study setting and methodology . 66 5.2.1 Getting acquainted with the teams . 67 5.2.2 Data collection and analysis . 67 5.3 The agile environment at Atlassian . 72 vii 5.4 Challenges in scaling an agile environment . 72 5.4.1 The challenge of maintaining efficiencywhilegrowing . 73 5.4.2 Thechallengeofautonomyatscale . 74 5.5 Work practices at Atlassian . 76 5.5.1 How Atlassian tries to maintain efficiencyatscale . 76 5.5.2 How Atlassian tries to make autonomy work at scale . 79 5.6 Further challenges . 86 5.7 Discussion . 88 5.7.1 The concepts of Directed Opportunism and Aligned Autonomy 88 5.7.2 Aligned Autonomy through Atlassian’s work practices . 90 5.7.3 The interplay of autonomy and scale: Agility, growth, and cul- tural values . 96 5.8 Threats to validity in the study . 98 5.9 Conclusion . 99 6 Autonomy as empowerment — The Microsoft study 101 6.1 WhystudyMicrosoft ........................... 102 6.2 Case study setting and methodology . 103 6.2.1 Research goal and questions . 104 6.2.2 Data collection and analysis . 104 6.3 Conceptual framework for great engineering managers . 109 6.4 The functions of great engineering managers . 112 6.4.1 Cultivates engineering wisdom ............... 112 6.4.2 Motivates the engineers ................... 115 6.4.3 Mediates communication ................... 117 6.5 Being technical ............................. 119 6.6 Quantitative support through survey results . 122 6.7 Discussion . 125 6.7.1 Comparison to Google’s study of managers . 125 6.7.2 The reimagined role of the engineering manager . 126 6.7.3 The interplay of management and autonomy . 127 6.8 Threats to validity in the study . 132 6.9 Conclusion . 133 7AframeworkofCollaboration via Aligned Autonomy 137 viii 7.1 The faces of autonomy . 137 7.2 Howsynthesisworks ........................... 139 7.3 Key concepts in each study . 140 7.3.1 TheGitHubstudy ........................ 140 7.3.2 The Atlassian study . 140 7.3.3 The Microsoft study . 141 7.4 Interpretive evidence synthesis through meta-ethnography . 141 7.4.1 Reciprocal translational analysis . 142 7.4.2 Refutational analysis . 148 7.5 A framework of Collaboration via Aligned Autonomy ......... 150 7.5.1 Framework elements: Areas and Approaches .......... 150 7.5.2 Framework diagram . 153 7.5.3 Retrospective thinking: Overlap and Core concepts ...... 154 7.6 Implications of the framework . 157 7.7 Research validation . 162 7.8 Limitations of applicability . 165 8 Conclusions and future direction 169 8.1 Summary of