sense (yet). I’ve been lucky to collaborate with many talented people. The work I describe next has been done in collaboration with: Margaret-Anne Storey, Daniel M. German, Carlos Gómez Teshima, Germán Poo-Caamaño, Leif Singer, Fernando Figueira Filho, Maryi Arciniegas-Mendez, Carlene Lebeuf, and Bin Lin. 2 Images used in these slides are used for educational purposes only and I claim no credit for any of the images. Images are copyright to its respectful owners.
use to build software are buckling under increased demand.” Nadia Eghbal, Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure “Software is eating the world” - Marc Andreessen 3
bots Documenting bots Entertainment bots Developer bots enhance efficiency by effectiveness by automating tasks, help developers stay in flow, improve decision making, support team cognition, and regulate individual and team tasks and goals. 15
Understanding team members’ roles and expertise Adhering to team procedures and agreements Understanding and working towards team goals Coordinating team activities Managing trust and team cooperation Friction in Individuals’ interactions with Technology Distracting and interrupting technologies Maintaining awareness of new technologies Understanding channel affordances Friction in Team’s interaction with Technology Information fragmentation and overload Adopting and understanding tool usage in the team’s context Maintaining awareness of project activities Inadequate collaboration tooling Miscommunication on text-based channels 16
and automation into a transparent workflow. This flow connects the work needed, the work happening, and the work done in a persistent location staffed by the people, bots, and related tools.” - Sean Regan, Atlassian 17
know-how, interactions with others, and individual creativity to achieve work outcomes.” [Winslow and Bramer, 1994] “Knowledge workers are said to be involved in defining the scope of their work, being self-managed, searching for new ways of doing things, continuously learning and teaching others, and emphasizing both the quality and quantity of the outcomes.” [Drucker, 1999] 19
that this form of work is seldom performed as a solitary endeavor.” [McDermott, 2005] “Perhaps more than any other form of work, knowledge work has pointed to the need for individuals to collaborate together, rather than work alone.” [Woolley, 2009] Social Context of Knowledge Work 20
Software can help automate many routine activities in the workplace Social and communication channels can serve as the content of the work itself Knowledge Work and Social Media 21
In many ways, they’re the prototype of the future knowledge worker; they’re pushing the boundaries of twenty-first century knowledge work. Modern knowledge work is enabled by and dependent on information technology-technologies that are created by software developers and used by legions of knowledge workers worldwide.” [Allan Kelly, 2014] 22
meets experience, values, contextual understanding about the specific situations, application, intuition and beliefs.” Tanmay Vora “A process or a competent goal-oriented activity rather than as an observable and transferable resource” Billet, 1998 23
head, and the externalized knowledge (explicit) 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 (e.g., practiced skills) and declarative knowledge (e.g., facts) [Robillard 1999] “Knowledge is created out of a dialogue between tacit and explicit knowledge” [Nonaka, 1991, 1994] Tacit - Tacit (e.g., apprenticeship) Explicit - Explicit Tacit - Explicit (e.g., learning craft skills) Explicit - Tacit (e.g., internalization of new knowledge) 24
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] 25
Organization Processes & Practices Tools & Channels IDE face-to-face Artifacts Code, Documentation, Q&A, History Agile Coding Current mental model (after many iterations) 30
be either of content or activities) Feedback Information Organization and Curation Learning Monitoring Networking Searching (information, services, or experts) Knowledge Activity Typology for Soft. Dev. 34
in a developer community? “In software development, the main difference between social media artifacts and traditional artifacts is that the former can be freely configured by everybody participating in the development, whereas the latter can only be configured by a ‘gatekeeper’. ” C. Treude, Thesis, 2012 37
R community plays an important role in knowledge creation and diffusion Two particular communication channels for Q&A are Stack Overflow and the R-help mailing list 39
a decrease in the number of messages on R-help and an increase on Stack Overflow [Vasilescu 2014] Projects that migrated from mailing lists to Stack Overflow showed improvements [Squire 2015] 40
with a positive score: 1. We found the proportion of questions marked as duplicates is increasing, but the overall number is only 3% of all questions. 2. Then we counted the number of questions with a negative score, but this only accounts for 2.9% of all questions. 3. We found that 29.2% of all posts have a score equal to zero. A small proportion of these questions (3%) had a zero score after being voted up and down. 49
(Twitter) GitHub Blogs Bounded Contexts (e.g. Amazon, IBM) Q&A: • size • culture • factors • success or failure? Yammer Hipchat / Slack Is it transferable from open to bounded? Can it be mixed? I come from this side Pushed by companies 60
Culture in Software Development (TSE 2016) The (R) Evolution of Social Media in Software Engineering (FOSE ICSE 2014) Disrupting Developer Productivity One Bot at a Time (VaR FSE 2016) How Software Developers Mitigate Collaboration Friction with Chatbots (CSCW workshop 2017) Software Bots (IEEE Software 2018) Why Developers Are Slacking Off: Understanding How Software Teams use Slack (CSCW 2016 poster) How the R Community Creates and Curates Knowledge: An Extended Study of Stack Overflow and Mailing Lists (EMSE 2017) How the R Community Creates and Curates Knowledge: A Comparative Study of Stack Overflow and Mailing Lists (MSR 2016) The Role of Social Media Knowledge Curation 65
Software Development Collaboration Practices and Tool Support (CSCW 2017) Regulation as an Enabler for Collaborative Software Development (CHASE 2015) Participatory Platforms for Education Student Experiences Using GitHub in Software Engineering Courses: A Case Study (SEET ICSE 2016) The Emergence of GitHub as a Collaborative Platform for Education (CSCW 2015) Research Methods for Software Engineering Selecting Research Methods for Studying a Participatory Culture in Software Development: Keynote (EASE 2015) Methodology Matters: Is There a Method Choice Bias in Software Engineering? (under review for NIER 2018) A Structured Travelogue Approach for Communicating Qualitative Research in Software Engineering (rejected, will be resubmitted to EMSE) 66