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

How social and communication channels shape and challenge a participatory culture in software development

How social and communication channels shape and challenge a participatory culture in software development

Slides of the talk I've given at the advanced SE topics research seminar, at University of Victoria, April 2016

https://github.com/research-seminar/advanced-se-topics

The paper described here is to be published at the IEEE Transactions on Software Engineering journal (TSE). A preprint of the paper can be found here:
http://alexeyza.com/pdf/tse2016.pdf

Alexey Zagalsky

April 28, 2016
Tweet

More Decks by Alexey Zagalsky

Other Decks in Research

Transcript

  1. How social and communication channels
    shape and challenge a participatory
    culture in software development
    Margaret-Anne Storey, Alexey Zagalsky, Fernando
    Figueira Filho, Leif Singer, and Daniel M. German
    Talk given at the Advanced Software Engineering Topics research seminar at UVic

    View full-size slide

  2. In the talk today
    I’ll talk about a single study, however it is important to note
    that it is part of a long-term ongoing research
    The part of the study described today is currently under
    review as a journal paper

    View full-size slide

  3. Communities of practice arise when “groups of people
    share a concern or a passion for something they do and
    learn how to do it better as they interact regularly”
    [Wenger 2000]

    View full-size slide

  4. The Importance of Media in Software Development
    The collaborative and participatory nature of software
    development continues to evolve, shape, and be shaped by
    communication channels
    Media—i.e., development tools and communication
    channels—play a critical role in how externalized and tacit
    knowledge is formed, shared, manipulated, and captured

    View full-size slide

  5. The study of Media in SE (just to name a few)
    Software Engineering
    at the Speed of Light:
    How Developers Stay
    Current Using Twitter
    [Singer et al. 2013]
    Mutual Assessment in the
    Social Programmer
    Ecosystem: An Empirical
    Investigation of Developer
    Profile Aggregators
    [Singer et al. 2012]
    How do programmers
    ask and answer
    questions on the web?
    [Treude et al. 2011]
    The impact of social
    media on software
    engineering
    practices and tools
    [Storey et al. 2010]
    Communication in open
    source software
    development mailing lists
    [Guzzi et al. 2013]
    Exploring the role of instant
    messaging in a global software
    development project
    [Dittrich and Giuffrida 2011]
    A survey of social
    media use in
    software systems
    development
    [Black et al. 2010]
    The (r)evolution of social
    media in software engineering
    [Storey et al. 2014]
    Why Developers
    Are Slacking Off:
    Understanding
    How Software
    Teams Use Slack
    [Lin et al. 2016]

    View full-size slide

  6. The study of Media in SE (just to name a few)
    Software Engineering
    at the Speed of Light:
    How Developers Stay
    Current Using Twitter
    [Singer et al. 2013]
    Mutual Assessment in the
    Social Programmer
    Ecosystem: An Empirical
    Investigation of Developer
    Profile Aggregators
    [Singer et al. 2012]
    How do programmers
    ask and answer
    questions on the web?
    [Treude et al. 2011]
    The impact of social
    media on software
    engineering
    practices and tools
    [Storey et al. 2010]
    Communication in open
    source software
    development mailing lists
    [Guzzi et al. 2013]
    Exploring the role of instant
    messaging in a global software
    development project
    [Dittrich and Giuffrida 2011]
    A survey of social
    media use in
    software systems
    development
    [Black et al. 2010]
    The (r)evolution of social
    media in software engineering
    [Storey et al. 2014]
    Why Developers
    Are Slacking Off:
    Understanding
    How Software
    Teams Use Slack
    [Lin et al. 2016]
    The rise of the
    Social Programmer

    View full-size slide

  7. RQ1: Who is the social programmer that participates in
    these communities?
    RQ2: Which communication channels do these developers
    use to support development activities?
    RQ3: Which communication channels are the most
    important to developers and why?
    RQ4: What challenges do developers face using an
    ecosystem of communication channels to support their
    activities?

    View full-size slide

  8. RQ1: Who is the social programmer that participates in
    these communities?
    RQ2: Which communication channels do these developers
    use to support development activities?
    RQ3: Which communication channels are the most
    important to developers and why?
    RQ4: What challenges do developers face using an
    ecosystem of communication channels to support their
    activities?

    View full-size slide

  9. RQ1: Who is the social programmer that participates in
    these communities?
    RQ2: Which communication channels do these developers
    use to support development activities?
    RQ3: Which communication channels are the most
    important to developers and why?
    RQ4: What challenges do developers face using an
    ecosystem of communication channels to support their
    activities?

    View full-size slide

  10. RQ1: Who is the social programmer that participates in
    these communities?
    RQ2: Which communication channels do these developers
    use to support development activities?
    RQ3: Which communication channels are the most
    important to developers and why?
    RQ4: What challenges do developers face using an
    ecosystem of communication channels to support their
    activities?

    View full-size slide

  11. Methodology
    We conducted an online survey with 1449 developers who
    are active on GitHub [deployed at 2013 and 2014]
    Survey available online at http://leif.me/devsurvey/

    View full-size slide

  12. Methodology
    We asked about 11 development activities:
    STAY UP TO DATE about technologies,
    practices, and tools for software
    development
    FIND ANSWERS to technical questions
    LEARN and improve skills
    DISCOVER interesting developers
    CONNECT with interesting developers
    GET and GIVE FEEDBACK
    PUBLISH development activities
    WATCH other developers’ activities
    DISPLAY my SKILLS/ACCOMPLISHMENTS
    ASSESS other developers
    COORDINATE with other developers when
    participating on projects

    View full-size slide

  13. Methodology
    We asked about the challenges developers face using
    communication channels
    Based on our previous work, distractions, privacy, and
    being overwhelmed were anticipated to be the main
    challenges, thus the survey specifically inquired about them
    We also asked about any additional challenges developers
    face through an open-ended question (432 responses)

    View full-size slide

  14. RQ1: Who is the social programmer?

    View full-size slide

  15. RQ1: Who is the social programmer?

    View full-size slide

  16. RQ1: Who is the social programmer?

    View full-size slide

  17. RQ2: Which communication channels do these
    developers use to support development
    activities?

    View full-size slide

  18. RQ2: Which communication channels developers use?

    View full-size slide

  19. RQ3: Which communication channels are the
    most important to developers and why?

    View full-size slide

  20. RQ3: Which channels are most important?

    View full-size slide

  21. RQ4: What challenges do developers face using
    an ecosystem of communication channels to
    support their activities?

    View full-size slide

  22. RQ4: What challenges do developers face?

    View full-size slide

  23. “Notifications: when used in a moderate way, it is fine, but
    when overused, it is a distraction for developers. Emails: too
    many emails from Project Coordination Tools can easily waste
    15-30 minutes only to go through them all in the morning,
    specially when I’m involved in more than a few projects
    simultaneously.” [P320]
    Distractions and interruptions from communication
    channels negatively impact developer productivity

    View full-size slide

  24. “Staying cutting edge is a never-ending task.” [P625]
    “In a big project (WebKit, Mozilla, etc.) it can be hard to filter
    for only ongoing work that is relevant. Most legacy UIs are
    terrible (Bugzilla) and new ones (GitHub) lack features for
    large-scale development.” [P109]
    Keeping up with new technologies and project activities
    can be challenging, but social tools help

    View full-size slide

  25. “The biggest challenge in soft-dev for me is four-fold:
    communicating the idea (Hangout), managing the idea
    (Trello), logging the implemented idea (GitHub), and
    explaining the implemented idea with the team (Nitrous.io).
    The first three solutions are pretty solid. It’s the fact you can’t
    always sit right next to someone and show them the code
    and explain how everything works that is the most
    challenging part. Cloud9, Koding, Nitrous, etc. are all trying
    to solve the last problem.” [P445]
    There is a lack of adequate tool support for sharing and
    explaining code

    View full-size slide

  26. “Getting quick feedback for internal [proprietary] technology
    because you cannot ask on Stack Overflow.” [P706]
    “It’s difficult to share small new projects that aren’t very far
    along and get feedback.” [P751]
    Getting feedback on development activities is challenging

    View full-size slide

  27. “Live collaborative coding tools. For example, we can currently
    edit a document collaboratively in Google Docs.
    Collaborative coding activities need improved tool support
    If we can have an
    IDE/tool like that for
    coding too, that
    would be useful.”
    [P1154]

    View full-size slide

  28. “The majority of development-related communication I do is
    primarily written—IRC, chat, email, forums, microblogging,
    blogging, etc. Considering that the developers I work with
    come from a variety of nationalities and cultural backgrounds,
    the intent of communication is often hard to impart or judge,
    which can lead to misunderstanding.” [P31]
    Geographic, cultural, and economic factors can pose
    barriers to participation through social channels

    View full-size slide

  29. “I used to think that publishing application code with an open
    source license would attract collaborators with an interest in
    using/improving that application, but now I feel like most
    users of code hosting sites are more interested in
    collaborating on tools they can incorporate into their own
    projects, and almost no one is interested in working on
    application code. I guess the challenge here is convincing
    developers that your application is interesting even if your
    code is not.” [P1285]
    Despite using social channels, finding developers to
    participate can be difficult

    View full-size slide

  30. “When you write, context and expression is lost. There have
    been so many times when something I wrote did not come
    across to the other person as intended. This causes problems
    all the time. You must be careful and spend time on the words
    and phrases you use when communicating in text. If you can’t
    pick up the phone, then use IM, and as a last resort, email.”
    [P126]
    Miscommunication on text-based channels is common

    View full-size slide

  31. “When you write, context and expression is lost. There have
    been so many times when something I wrote did not come
    across to the other person as intended. This causes problems
    all the time. You must be careful and spend time on the words
    and phrases you use when communicating in text. If you can’t
    pick up the phone, then use IM, and as a last resort, email.”
    [P126]
    Miscommunication on text-based channels is common
    [I] have been called an arrogant dickhead once and have
    also been informed that I was dictating somebody
    something when I actually tried to SUGGEST something.
    So, language is also a challenge because I am a Dane.”
    [P31]

    View full-size slide

  32. “Clarity of intent (it can be hard to get a point across through
    text-based media) — it can be difficult to see the big picture,
    or even the pieces, without talking face-to-face.” [P1241]
    “Often collaboration tools are still not as good as face-to-
    face communication. Many software companies have moved
    to having all of their staff on-site full-time, because the
    communication is just better. Especially when two or more
    developers are collaborating on the same code in real time
    (pair programming) or ‘whiteboarding’ on a design... being
    there in person is just different.” [P176]
    For many developers, face-to-face communication is best

    View full-size slide

  33. “Tools facilitate good processes and interactions between
    individuals who are willing to collaborate and cooperate. They
    don’t make people willing to cooperate in the first place; in
    these situations they actually get in the way of identifying the
    root problems and dealing with them. People can hide behind
    GitHub better than they can in person.” [P532]
    People are challenging, no matter what channels are used

    View full-size slide

  34. Private vs. public
    Group size
    Synchronous vs. asynchronous
    Ephemeral vs. archival
    Anonymous vs. identified
    Text-based vs. verbal
    Face to face (vs. not)
    Developers need to consider channel affordances
    No one tool/channel fits all
    Communication with users
    is challenging

    View full-size slide

  35. “I still don’t understand how to do simple things in IRC and
    often don’t bother because of the perceived effort involved—
    much easier to post on Stack Overflow. With tools like GitHub,
    there are similar issues (like how to submit patches) although
    documentation is improving.” [P1385]
    Developers need to be literate with communication
    channels

    View full-size slide

  36. Technical issues
    Lack of mobile support and hardware limitations
    Usability issues
    Vendor lock-in
    Poor or scattered tool adoption
    Communication channel friction can obstruct participatory
    development activities

    View full-size slide

  37. “Making sure everyone else you’re working with also uses the
    tools. One of the biggest issues with fragmentation of the
    communication options is that there are so many different
    ways to communicate that it’s harder to find it all in one
    place. Important communications get lost; Key people don’t
    see them; They can’t be retrieved by a single search tool.
    Companies such as Slack are attempting to solve this problem,
    but it has a long way to go.” [P1250]
    Use of many channels leads to information fragmentation

    View full-size slide

  38. “Too many channels means that needed or interesting
    information disappears, and going through all of the channels
    you mentioned is impossible in limited time.” [P917]
    The quantity of communicated information is
    overwhelming

    View full-size slide

  39. The quantity of communicated information is
    overwhelming

    View full-size slide

  40. “Judging the reliability and credibility of sources can be a
    challenge as information changes quickly and isn’t always
    correct.” [P846]
    “Technologies are moving so fast, and most of the content on
    the Internet could be outdated quickly. It’s sometimes hard to
    filter that outdated information.” [P492]
    The quality of communicated information is hard to
    evaluate

    View full-size slide

  41. Developers
    Tools & Channels
    IDE face-to-face

    View full-size slide

  42. Developers
    Communities of
    Practice
    Tools & Channels
    IDE face-to-face

    View full-size slide

  43. Developers
    Communities of
    Practice
    Tools & Channels
    IDE face-to-face
    Activities
    Coding
    Learning

    View full-size slide

  44. Actors
    Contributors, Stakeholders
    Assemblages &
    Communities of
    Practice
    Teams, Organization
    Practices & Activities
    Tools & Channels
    Artifacts
    Code, Documentation,
    Q&A, History
    fosters / shaped by
    Agile Coding
    IDE face-to-face
    adapted from Alexey Zagalsky candidacy proposal

    View full-size slide

  45. Meta Discussion

    View full-size slide

  46. Challenges
    Qualitative research
    - forming the survey questions and deciding on the activities
    - studying channels, activities, roles, and developers - in parallel
    Conducting a long-term study
    - channels/tools change, do we update the survey?
    Reporting qualitative results
    - finding the “right way” to present the results
    - conference paper length is a limitation

    View full-size slide

  47. Questions?
    Alexey Zagalsky
    alexeyza.com

    View full-size slide