Communication Patterns and Strategies in Software Development Communities of Practice

Communication Patterns and Strategies in Software Development Communities of Practice

Michigan Technological University Digital Commons @ Michigan Tech Dissertations, Master's Theses and Master's Reports 2016 Communication Patterns and Strategies in Software Development Communities of Practice Shreya Kumar Michigan Technological University, [email protected] Copyright 2016 Shreya Kumar Recommended Citation Kumar, Shreya, "Communication Patterns and Strategies in Software Development Communities of Practice", Open Access Dissertation, Michigan Technological University, 2016. https://doi.org/10.37099/mtu.dc.etdr/186 Follow this and additional works at: https://digitalcommons.mtu.edu/etdr Part of the Curriculum and Instruction Commons, Educational Methods Commons, Social and Cultural Anthropology Commons, and the Software Engineering Commons COMMUNICATION PATTERNS AND STRATEGIES IN SOFTWARE DEVELOPMENT COMMUNITIES OF PRACTICE By Shreya Kumar A DISSERTATION Submitted in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY In Computer Science MICHIGAN TECHNOLOGICAL UNIVERSITY 2016 c 2016 Shreya Kumar This dissertation has been approved in partial fulfillment of the requirements for the Degree of DOCTOR OF PHILOSOPHY in Computer Science. Department of Computer Science Dissertation Advisor: Charles Wallace Committee Member: Linda Ott Committee Member: Mary Beth Rosson Committee Member: Janet Burge Committee Member: Lauren Bowen Department Chair: Min Song To Mom, Dad and Shraddha, for loving and encouraging me from across the globe, even though it meant more time apart. To my loving husband, Randy, for constantly supporting me and lifting my spirits, for giving me a reason to persevere everyday. Contents List of Figures ..................................... xvii List of Tables ...................................... xix Preface ......................................... xxi Acknowledgments ...................................xxiii Abstract ......................................... xxv 1 Introduction .................................... 1 1.1 Communication in software development: Two vignettes . .1 1.2 Speech Act Theory: Speaking and Writing as Doing . .8 1.3 Communication in Software Development . .8 1.3.1 Communication and Software Process . .9 1.3.2 Communication in Software Engineering Education . 11 1.4 Communities of Practice . 12 1.5 Research Overview . 16 1.5.1 Research Questions . 17 vii 1.5.1.1 Refined Questions . 18 1.5.2 Our approach . 18 1.5.3 Subjects of Study . 19 1.5.3.1 Open Source Development Community . 19 1.5.3.2 Industry Agile Team . 20 1.5.3.3 Software Engineering Student Community . 21 1.5.4 Data Sources . 22 1.6 Tools . 23 1.6.1 Cognitive Apprenticeship . 23 1.6.2 Discourse Analysis . 24 1.6.3 Grounded Theory . 25 1.6.4 Pattern Languages . 26 2 Initial studies .................................... 29 2.1 Communication Strategies for Mentoring in Software Development Projects 29 2.2 Introduction . 30 2.3 Student Mentoring . 31 2.4 Open source mentoring . 35 2.5 Discussion . 37 2.6 Conclusion . 38 3 TAI - Participant observation ........................... 39 3.1 TAI: An evolving development practice . 39 viii 3.2 Methodology . 44 3.2.1 Types of data collection . 44 3.2.2 Participant observer trajectory . 45 3.2.3 Selecting candidates . 47 3.2.4 Asking the question . 48 3.2.5 The first interview . 49 3.2.6 The Routine . 50 3.3 Challenges of the ethnographic process . 51 3.3.1 Dynamic teams . 51 3.3.2 Company culture . 52 3.3.3 Multiple identities . 53 4 TAI - Data and Discussion ............................. 55 4.1 Evolving meaning, evolving identity . 55 4.2 Mentoring . 57 4.3 Qualitative Data Analysis . 57 4.3.1 Stories . 57 4.3.1.1 Alex . 58 4.3.1.2 Karoline . 60 4.3.1.3 Ivan . 62 4.3.1.4 Casey . 62 4.3.1.5 Philip . 63 ix 4.3.2 Themes . 65 4.3.2.1 Participation and Negotiation of Meaning: Internship changes over time . 65 4.3.2.2 Trajectory: Pioneer’s journey . 65 4.3.2.3 Early onboarders: Divergent trajectories . 68 4.3.2.4 Onboarding: The next generation . 72 4.3.3 Events . 75 4.3.3.1 Process tug of war . 75 4.3.3.2 Team deciding work for itself . 76 4.3.3.3 Learning to work with different mentoring styles . 76 4.3.3.4 Knowledge transfer . 77 4.3.3.5 Minutiae disconnect . 78 4.3.3.6 The burden of onboarding . 78 4.3.3.7 ‘Pair’ programming over time . 79 4.3.3.8 Pace discrepancy . 80 4.4 Quantitative Data Analysis . 80 4.4.1 Collecting the data . 80 4.4.2 Description of the raw data . 81 4.4.3 Processing the data . 82 4.4.4 Processing the data by hand . 82 4.4.5 Processing the data with tools . 86 x 4.4.6 Observations from the data . 86 4.4.6.1 Story scope creep . 90 4.4.6.2 Re-estimating . 91 4.4.6.3 Proportion of communication . 91 4.4.6.4 Perfunctory and evolutionary process . 92 4.4.6.5 Shapes of sprints . 94 4.4.6.6 Process in practice - Kanban vs. Scrum . 95 4.4.6.7 Multi-sprint stories . 96 4.4.6.8 Changes in participation over time . 97 5 TAI - Results .................................... 112 5.1 Discussion . 112 5.1.1 Types of community participants . 113 5.1.2 Community of practice evolution over time . 114 5.1.3 Different onboarding strategies . 115 5.1.4 Different formats of communication . 116 5.1.5 Knowledge silo management . 117 5.1.6 Learn communication style over time . 118 5.2 Previously Discovered Patterns at TAI . 118 5.2.1 Previously discovered mentoring patterns . 118 5.2.2 Previously discovered roles . 119 5.2.3 Previously discovered modes of operation . 120 xi 5.3 Novel Pattern results . 122 5.3.1 Pattern: Pioneer Identity . 122 5.3.2 Pattern: Early onboarder identity . 123 5.3.3 Pattern: Newcomer Identity . 123 5.3.4 Pattern: Pioneer Onboarding . 124 5.3.5 Pattern: Generational Onboarding . 125 5.3.6 Pattern: Process Tug of war . 126 5.3.7 Pattern: Pioneers don’t know what all they know . 127 5.3.8 Pattern: Patron as Process Champion . 127 5.3.9 Pattern: Mentor as Oracle . 128 5.3.10 Pattern: Mentor as interrogator . 128 5.3.11 Pattern: Mentor as interlocutor . 129 5.3.12 Pattern: Encourage pair programming by just doing it . 130 5.3.13 Pattern: Communicate design rationale . 131 5.3.14 Pattern: Initial Turbulence Sprint . 131 5.3.15 Pattern: Path to normalcy Sprint . 132 5.3.16 Pattern: BAU Sprint . 132 5.4 Pattern language . 133 5.4.1 Mentoring pattern relation . 133 5.4.2 Knowledge sharing pattern relation . 134 5.4.3 Process evolution pattern relation . 135 xii 5.4.4 Shape of sprints pattern relation . 136 5.5 Relationship with research goals . 136 5.5.1 Negotiation of meaning and communication . 137 5.5.1.1 Code Review . 137 5.5.1.2 Mentoring . 138 5.5.1.3 Process tug of war . 139 5.5.1.4 Paired programming . 139 5.5.1.5 Trajectory . 139 5.5.1.6 Open conference . 139 5.5.1.7 Team deciding . 140 5.5.1.8 Minutiae disconnect . 140 5.5.1.9 Knowledge transfer . 140 5.5.2 Identity and communication . 141 5.5.2.1 Pattern roles . 141 5.5.2.2 Onboarding styles . 141 5.5.2.3 Code review and Minutiae disconnect . ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    215 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us