Thesis Defense: Knowledge Building in Software Developer Communities

Thesis Defense: Knowledge Building in Software Developer Communities

These are the slides from PhD defense presentation.

Software development has become a cognitive and collaborative knowledge-based endeavor where developers and organizations, faced with a variety of challenges and an increased demand for extensive knowledge support, push the boundaries of existing tools and work practices. Researchers and industry professionals have spent years studying collaborative work and communication media, however, the landscape of social media is rapidly changing. Thus, instead of trying to model the use of specific technologies and communication media, I seek to model the knowledge-building process itself. Doing so will not only allow us to understand specific tool and communication media use, but whole ecosystems of technologies and their impact on software development and knowledge work, revealing aspects not only unique to specific tools, but also aspects about the combination of technologies.

In this dissertation, I describe the empirical studies I conducted aimed to understand social and communication media use in software development and knowledge curation within developer communities. An important part of the thesis is an additional qualitative meta-synthesis of these studies. My meta-analysis has led to a model of software development as a knowledge building process, and a theoretical framework: I describe this newly formed framework and how it is grounded in empirical work, and demonstrate how my primary studies led to its creation. My conceptualization of knowledge building withing software development and the proposed framework provide the research community with the means to pursue a deeper understanding of software development and contemporary knowledge work. I believe that this framework can serve as a basis for a theory of knowledge building in software development, shedding light on knowledge flow, knowledge productivity, and knowledge management.


Alexey Zagalsky

August 27, 2018


  1. Knowledge Building in Software Developer Communities Alexey Zagalsky Supervisor: Dr.

    Margaret-Anne Storey Ph.D. Thesis presentation, August 2018
  2. Motivation With the influence of social media (e.g., Github, Stack

    Overflow), modern software development is changing. This change seems to: 1. Influence developers activities by changing them or creating new ones 2. Expose development processes which previously were taken for granted, ignored, or misunderstood. To capture that influence, I studied communication channels and social media use. [1] Treude, C., Figueira Filho, F., Cleary, B., & Storey, M. A. (2012). Programming in a socially networked world: the evolution of the social programmer. The Future of Collaborative Software Development, 1-3. 2
  3. How Developers Use Social Media → Knowledge Building As I

    progressed with my studies, it became apparent that knowledge building was a fundamental part of developing software. 3
  4. Research Goal and Scope Goal: Model the knowledge building process

    in software development; Scope: My work is scoped on knowledge transfer, the knowledge activities software developers perform, and the communication media that facilitate them. 4
  5. A deeper understanding of how knowledge building happens in the

    software development process, and why certain practices appear. I have distilled this understanding into a theoretical framework The Contribution I offer 5
  6. Research Process Overview → 6

  7. Knowledge Framework 7

  8. The Meta-Synthesis Process that was used to form the Framework

    An across-study conceptualization End product is an interpretive integration of findings An inductive form of domain analysis useful for theory development The goal is not to determine the prevalence of findings, but rather to identify the underlying conceptual relations signified, albeit not necessarily explicitly expressed, in the findings 8
  9. Meta-Synthesis Steps 1. Identifying the domains (constructs, knowledge types) 2.

    Constructing a taxonomy of sub-categories (e.g., activities, channels) 3. Specifying the components (adding definitions) 4. Relating both between sub-categories and the primary domains (knowledge types and where they reside) Steps are based on: [2] Sandelowski, M., & Barroso, J. (2006). Handbook for synthesizing qualitative research - chapter 7. [3] Spradley, J. P. (1979). The ethnographic interview - chapters 6 and 8. [4] Atkinson, S., & HAP, M. A. E. (1996). Domain analysis for qualitative public health data. 9
  10. Meta-Synthesis Steps 1. Identifying the domains (constructs) 10

  11. 2. Constructing a taxonomy of sub-categories Meta-Synthesis Steps 11

  12. 3. Specifying the components Meta-Synthesis Steps 12

  13. Meta-Synthesis Steps 4. Relating both between sub-categories and the primary

    domains 13
  14. Meta-Synthesis Steps 4. Relating both between sub-categories and the primary

    domains 14
  15. Meta-Synthesis Steps 4. Relating both between sub-categories and the primary

    domains Activities Processes & Practices Artifacts Encoded Embedded Embedded Tools Embedded 15
  16. Reflecting Back on Empirical Studies 16

  17. Reflection Thinking Revisiting findings Combining with literature Identifying and incorporating

    additional literature 17
  18. From Study to an Actionable Outcome: Example [5] Zahedi, M.,

    Shahin, M., & Babar, M. A. (2016). A systematic review of knowledge sharing challenges and practices in global software development. [6] Agarwal, N., & Yiliyasi, Y. (2010). Information quality challenges in social media. The amount of usable knowledge, i.e., an individual’s ability to realize available knowledge 18
  19. Heuristic Questionnaire: A Practical Tool 19 • • • •

    • • • • • • • • • • • • • • • • • • • • •
  20. → → → → 20 New Insights Gained from Using

    The Framework
  21. Concluding Remarks 21

  22. Empirical studies of social and communication media use in software

    development communities A theoretical framework of knowledge building in software development Activity Typology: Classification, Definition, Operationalization A heuristic analysis instrument for practitioners A socio technical perspective on how people use technology to collaborate on technical tasks Contributions 22
  23. Limitations My work is scoped on: Actors Channels Activities Generalizability

    Other communities or other environments (e.g., companies) Validation Same framework + different community or different environment Expansion Same approach, same community, different constructs (e.g., roles) 23
  24. Summary Given that knowledge building is an important part of

    software development, we now have a knowledge framework to better understand and articulate it. I believe this work will lead to a knowledge theory in the future In the upcoming years software development will likely change as much as it did in the last decade: my theoretical framework predicts or can even guide which main directions should be taken. 24
  25. Thank you! 25 Empirical study: Social Media Use Empirical study:

    Knowledge Curation Theoretical framework: Knowledge Building