Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PhD Candidacy Exam: Studying The Participatory Process in Software Development

Alexey Zagalsky
December 15, 2015

PhD Candidacy Exam: Studying The Participatory Process in Software Development

Alexey Zagalsky's candidacy exam.

Supervisor: Margaret-Anne Storey
Committee members: Arie van Deursen and Leif Singer

The work described here is not solely my own and is based on collaborations with other researchers - Margaret-Anne Storey, Leif Singer, Daniel M. German, Fernando Figueira Filho, Maryi Arciniegas-Mendez, Alexander Serebrenik, Bin Lin, and Joseph Feliciano.

Alexey Zagalsky

December 15, 2015
Tweet

More Decks by Alexey Zagalsky

Other Decks in Research

Transcript

  1. Beyond Agile: Studying The Participatory Process in Software Development PhD

    Candidacy Proposal by Alexey Zagalsky supervised by Margaret-Anne Storey 1
  2. Software development is a knowledge-building process Software is built with

    the tacit knowledge in the developers’ head, and the externalized knowledge embodied in the development tools, channels, and project artifacts [Naur 1985]. Naur considers programming as a “theory building process” and he stresses the importance of tacit knowledge. Tacit knowledge can be further decomposed into procedural and declarative knowledge [Robillard 1999] 2
  3. Knowledge Building Communities Communities of practice form around a shared

    interest, while fostering collaboration, mentoring, and learning between its members. The core components of a community of practice are the domain, the practice, and the community [Wenger 1991, Wasko 2000, Wenger 2011]. 3
  4. Types of knowledge Wasko and Faraj [2000] distinguish different types

    of knowledge: Knowledge embedded in people (Tacit knowledge) Knowledge as object (Externalized knowledge) Knowledge socially generated, maintained, and exchanged within emergent communities of practice (Knowledge as public good) We added a fourth type, knowledge about people and social networks [Storey et al. 2014] 4
  5. Participatory culture We see a participatory culture forming within many

    development communities of practice where developers want to engage with, learn from and co-create with other developers [Jenkins 2009]. 5
  6. Knowledge Theory in Software Development We believe that software development

    has evolved beyond the agile process, into a Participatory Process --- A knowledge building process which is characterized by the (1) knowledge activities and actions, (2) stakeholder roles, and (3) is enabled by socially enhanced tools and communication channels. From our studies of the participatory process in software development, emerges a theory of knowledge. And as this is a work in progress, the theory continues to develop and shape our research questions. 6
  7. Why should we pursue this research “No century in recorded

    history has experienced so many social transformations and such radical ones as the twentieth century.” [P.F. Drucker 2001] This new process is not just Agile and it’s evolving so quickly, if researchers don't study it no one will... 7
  8. Research Goal The overarching goal of the proposed thesis is

    to form a theory of knowledge in software development, similar to the work of Reinhardt et al. [2011] for knowledge workers. 9
  9. Research Questions RQ1 What characterizes a software development knowledge process?

    A. What are the tools and channels developers use? B. What are differentiable roles in software development? C. What are typical knowledge activities and actions that developers perform? 10
  10. Research Questions RQ1 What characterizes a software development knowledge process?

    A. What are the tools and channels developers use? B. What are differentiable roles in software development? C. What are typical knowledge activities and actions that developers perform? RQ2 How does the participatory process shape and challenge software development? A. How do communication channels shape development practices and activities? B. How do communication channels challenge developers? 11
  11. Research Questions RQ1 What characterizes a software development knowledge process?

    A. What are the tools and channels developers use? B. What are differentiable roles in software development? C. What are typical knowledge activities and actions that developers perform? RQ2 How does the participatory process shape and challenge software development? A. How do communication channels shape development practices and activities? B. How do communication channels challenge developers? RQ3 How can we capture the participatory process? 12
  12. Expected Contributions The proposed thesis aims to provide the following

    main contributions: 1. Characterize the participatory process in software development 2. Describe a Participatory Process framework 3. Demonstrate the use of the proposed framework by applying it to a specific case study (to be designed later) 14
  13. Communication Channels Shape Developer Practices: Understanding How Software Teams Use

    Slack (submitted to CSCW 2016 - poster) Personal benefits: discover and aggregate news and information, instant messaging features to support networking and social activities with developers who share similar interests, and for fun Team-wide purposes: communication (the way it is used varies), remote meetings and note taking, for communication with other stakeholders, supporting team collaboration, and Dev-Ops Community support: participation in communities of practice “Wait, but Slack is meant for team communications, but nobody told you the team has to be a certain size, you can literally build a community as big as 10,000 users or more” - anonymous comment But, what about challenges? Some OSS developers call to stop using Slack 17 RQ2-A, RQ1-A
  14. The Rise of The Social Bots in Software Development Developers

    engaging in the participatory culture have recently adopted a new and versatile channel—the social media bots. “The Most Important Startup’s Hardest Worker Isn’t a Person” - [wired] Our exploratory study of how and why developers use Slack revealed that developers use bots to retrieve or post messages, to integrate other communication channels, for information acquisition, and they further customize these bots. However, not much is known on how these bots affect software development and the knowledge building process. 18 RQ2-A
  15. How Communication Channels Challenge A Participatory Culture in Software Development

    (submitted to TSE 2016) Main challenge categories: 1. Developer issues 2. Collaboration and coordination hurdles 3. Barriers to community building and participation 4. Social and human communication challenges 5. Communication channel affordances, literacy and friction 6. Content and knowledge management concerns 20 RQ2-B
  16. Developer Roles in Software Development (This work has not been

    done yet) Developer roles is an essential part of understanding the knowledge flow, and it would allow to identify different types of stakeholders and better understand the “expected behavior pattern” The expected result is a typology of roles, describing the: roles, a description of each role, and typical knowledge activities and channels/tools associated to that role. 21 RQ1-B
  17. Studying Collaboration As Part of The Participatory Process (CHASE 2015

    + submitted to ICSE 2016) Understanding collaboration in today’s participatory development culture is important yet challenging - existing models do not adequately take into consideration knowledge co-construction by emergent stakeholders. We adapt the Model of Regulation: regulation forms, regulation processes, and types of process support provided by tools or channels. We find that users play an important role in the regulation of an open source project. 22 RQ1-A Figure by Maryi Arciniegas Méndez
  18. A Typology of Knowledge Activities in Software Development (This work

    has been partially completed) Based on Reinhardt’s work (and the work of others) we similarly aim to form an activity typology, for software development. We rely on Tell and Babar’s activity theory [2012] to frame our framework. 25 RQ1-C, RQ2-B
  19. A Typology of Knowledge Activities in Software Development (This work

    has been partially completed) 1. Acquisition 2. Authoring 3. Co-Authoring: Communicating and Coordinate with others 4. Dissemination: can be either of content or activities 5. Feedback 6. Information Organization 7. Learning 8. Monitoring 9. Networking 10. Searching (information, services, or experts) “if you're talking about learning... that's a critical critical thing” [P3] As part of this study, we also focused on the channels and tools developers use for each activity, and the involved challenges they face 26 RQ1-C, RQ2-B
  20. Discussion Why Do We Need Another Theory Is This A

    Theory or A Meta-Theory My Contribution 29
  21. Timeline 1. Continue study on developer activity typology (August 2016)

    a. Conduct additional interviews (7 so far) b. Transcribe + analyze c. An additional phase: observations or a survey 2. Build a framework of the Participatory Process in software development (January 2017) 3. Demonstrate the use of the framework on a developer community (August 2018) a. Determine case study (e.g., SendWithUs or Neo4J) b. Survey / Interviews 4. Write up dissertation (September-December 2018) 30