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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  8. Knowledge Theory in Software Development
    8

    View Slide

  9. 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

    View Slide

  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?
    10

    View Slide

  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?
    11

    View Slide

  12. 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

    View Slide

  13. Theory of Knowledge in Software Development
    13
    RQ1-B, RQ2-B RQ1-C
    RQ1-A, RQ2-A

    View Slide

  14. 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

    View Slide

  15. Communication
    Channels
    How
    shape the participatory process
    15

    View Slide

  16. Communication Media Shapes the Participatory Process
    in Software Development (FOSE 2014)
    16
    RQ1-A, RQ1-C, RQ2-B

    View Slide

  17. 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

    View Slide

  18. 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

    View Slide

  19. Studying
    as part of the participatory process
    Developers and
    Their Roles
    19

    View Slide

  20. 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

    View Slide

  21. 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

    View Slide

  22. 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

    View Slide

  23. Knowledge
    Activities
    in Software
    Development
    Towards a typology of
    23

    View Slide

  24. Communication Channels Developers Use to Support Their
    Development Activities (FOSE 2014)
    24
    RQ1-C

    View Slide

  25. 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

    View Slide

  26. 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

    View Slide

  27. Practice,
    Research, &
    Education
    A Participatory Process in SE
    Research & Education
    27
    Software Development

    View Slide

  28. Discussion
    &
    Timeline
    28

    View Slide

  29. Discussion
    Why Do We Need Another Theory
    Is This A Theory or A Meta-Theory
    My Contribution
    29

    View Slide

  30. 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

    View Slide

  31. In Summary
    31
    RQ1-B, RQ2-B RQ1-C
    RQ1-A, RQ2-A
    http://alexeyza.com/

    View Slide