89
The Evolution of the Social Programmer Social Media and Software Engineering Margaret-Anne (Peggy) Storey Keynote for MSR 2012, Zurich, Switzerland University of Victoria, Victoria, BC Can

Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

Audio+slide video is posted at http://margaretannestorey.wordpress.com. Slides from a Keynote at Mining Software Repository Conference 2012, co-located with ICSE 2012 in Zurich, Switzerland.

Citation preview

Page 1: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

The Evolution of the Social Programmer Social Media and Software EngineeringMargaret-Anne (Peggy) StoreyKeynote for MSR 2012, Zurich, Switzerland

University of Victoria, Victoria, BC Canada

Page 2: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

22 Acknowledgements

Page 3: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

3

Page 4: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

CHISEL group, UVic, Canada: – Christoph Treude– Brendan Cleary– Fernando Figueira Filho– Jamie Starke– Gargi Bougie– Peter Rigby– Lars Grammel

Chris Parnin, Georgia Tech, USA

Leif Singer, Leibniz Universität, Germany

Ohad Barzilay, Tel-Aviv University, Israel

Daniel German, UVic, Canada

Arie van Deursen, TU Delft, the Netherlands

Li-Te Cheng, IBM Research

Page 5: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Software repositories

Goals

“Software repositories such as source control systems, archived communications between project personnel, and defect tracking systems are used to help manage the progress of software projects. Software practitioners and researchers are

recognizing the benefits of mining this information to support the maintenance of software systems, improve software design/reuse, and empirically

validate novel ideas and techniques.” MSR CFPs 2004-2012

Page 6: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

RoadmapBroaden goals of MSR

Redefine software repository to include

social media

Explore the impact of social media on software engineering

Suggest how future MSR research may play a role in emerging practices and

software ecosystems

Page 7: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Broadening

Goals

Page 8: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Beyond maintenance activities and

developer actions…

Page 9: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

The emergence of software ecosystems

and communities of practice

Page 10: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Redefining Software

repositories

Page 11: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Historical importance of tools!Integrated development environments:

Software forges:

Page 12: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Trailblazers and early adopters of many communication tools in software development...

Page 13: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

PlaceSpace

P. Dourish and V. Bellotti. Awareness and Coordination in Shared Workspaces. Proceedings of the ACM Conference on Computer-Supported Cooperative Work (CSCW'92).

Page 14: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

“Architecture of participation” Tim O’Reilly

“Architecture of participation” Tim O’Reilly

Page 15: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)
Page 16: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

"We shape our tools and thereafter our tools shape us", Laws of Media by Marshall McLuhan

"We shape our tools and thereafter our tools shape us", Laws of Media by Marshall McLuhan

http://www.youtube.com/watch?v=A7GvQdDQv8g

Page 17: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

McLuhan Quotes:

It is the framework which changes with each new technology and not just the picture within the frame. 1955

It is the framework which changes with each new technology and not just the picture within the frame. 1955

The medium is the message. 1958The medium is the message. 1958

There are many reasons why most people prefer to live in the age just behind them. It's safer. To live right on the

shooting line, right on the frontier of change, is terrifying. 1970

There are many reasons why most people prefer to live in the age just behind them. It's safer. To live right on the

shooting line, right on the frontier of change, is terrifying. 1970

Page 18: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Medium

Page 19: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

What role is social media playing in Software

Engineering?

What role is social media playing in Software

Engineering?

M.-A. Storey, C. Treude, A. van Deursen and L.-T. Cheng. The Impact of Social Media on Software Engineering Practices and Tools. In FoSER ’10: Proceedings of the FSE/SDP workshop on Future of software engineering research.

Page 20: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Social Media Channels in Software Engineering

Wikis, social networking, etc.

Tagging

MicrobloggingQuestion &

Answer Websites

Reputation

Blogging

Source codecomments

Page 21: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Research methods used

Studies to inform tool designs and software practices

Mixed methods:– Mining and analysis of software artifacts

– Ethnographic observations– Interviews– Surveys

Page 22: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Wikis, social networking, etc.

Tagging

MicroBloggingQuestion &

Answer Websites

Reputation

Blogging

Source codecomments

Page 23: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Source code comments

Source code comments

How programmers use source comments for communicating with developers?

Page 24: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

The role of annotations in program

comprehensioni.e. for human

usage

e.g. comments, bookmarks, tasks, etc

Source Code Comments: Graffiti or Information?

Page 25: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Fermat: "I have a truly marvellous proof of this proposition which this margin is too narrow to contain."

Fermat: "I have a truly marvellous proof of this proposition which this margin is too narrow to contain."

Marginalia, by H. J. Jackson

2001

Page 26: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)
Page 27: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)
Page 29: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Wikis, social networking, etc.

Question & Answer Websites

Reputation

Tagging

Source codecomments

MicroBlogging

Blogging

Page 30: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Social TaggingSocial Tagging

Inspired by how social tagging is used on the web

Page 31: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Tagging on the web Social bookmarking,

folksonomies

Page 32: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

TagSEA: Tagging “waypoints” in source code and gathering into “tours”

M.-A. Storey, J. Ryall, J. Singer, D. Myers, L.-T. Cheng, M. Muller, 2009. How Software Developers Use Tagging to Support Reminding and Refinding. IEEE Transactions on Software Engineering (TSE), 2009.

Page 33: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Tagging inStudied introduction and adoption of tags by several teams for work items

C. Treude and M.-A. Storey. Work Item Tagging: Communicating Concerns in Collaborative Software Development. In IEEE Transactions on Software Engineering 38, 1 (January/February 2012). pp. 19-34.

Page 34: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Tagging in

Findings: – Categorization (cross cutting concerns)

– Organization– Finding and refinding– Team work practices emerged

C. Treude and M.-A. Storey. Work Item Tagging: Communicating Concerns in Collaborative Software Development. In IEEE Transactions on Software Engineering 38, 1 (January/February 2012). pp. 19-34.

Page 35: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Tags used in

Page 36: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

ConcernLines

Page 37: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

WorkItemExplorer: ICSE, Friday 10:45am

Page 38: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Wikis, social networking, etc.

Question & Answer Websites

Reputation Tagging

Source codecomments

MicroBlogging

Blogging

Page 39: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

MicrobloggingMicrobloggingWhy do developers tweet?

Page 40: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

MicrobloggingSoftware engineers tweet actively (share) facts about software engineering topics and technology

G. Bougie, J. Starke, M.-A. Storey and D. German. Towards Understanding Twitter Use in Software Engineering: Preliminary Findings Ongoing Challenges and Future QuestionsIn Proceedings of the 2nd International Workshop on Web 2.0 for Software Engineering. 2011.

Page 41: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Should microblogging be integrated in the IDE for the enterprises?

A. Guzzi, M. Pinzger, A. van Deursen. Combining micro-blogging and IDE interactions to support developers in their quests. ICSM 2010.

W. Reinhard, Communication is the key – Support Durable Knowledge Sharing in Software Engineering by Microblogging. SENSE 2009.

Page 42: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Wikis, social networking, etc.

Question & Answer Websites

Reputation Tagging

Source codecomments

MicroBlogging

Blogging

Page 43: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

BloggingBloggingWhy do developers blog?

Page 44: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Blogging (1)“Our internal blog (only readable by those at the company) is really a virtual "water cooler". We are expected to blog there at least once a week (spelling and grammar don't matter) just to keep others at the company updated on what we are doing. If you can't find something interesting to say at least once a week, then you're not doing enough interesting work. Blogs are everything from: I hit this really annoying bug, to I completed this new awesome feature.”

(Ian Bull, Software Engineer, EclipseSource)

“Our internal blog (only readable by those at the company) is really a virtual "water cooler". We are expected to blog there at least once a week (spelling and grammar don't matter) just to keep others at the company updated on what we are doing. If you can't find something interesting to say at least once a week, then you're not doing enough interesting work. Blogs are everything from: I hit this really annoying bug, to I completed this new awesome feature.”

(Ian Bull, Software Engineer, EclipseSource)

Page 45: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Blogging (2)

Determining requirements through blogs [Park and Maurer, CHASE 2009]

How developers blog: high-level concept discussion and requirements

[Pagano and Maalej, MSR 2011]

Blogs play a role in documenting APIs [Treude and Parnin, Web2SE 2011]

Page 46: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Wikis, social networking, etc.

Question & Answer Websites

Reputation Tagging

Source codecomments

MicroBlogging

Blogging

\

Page 47: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Question and Answer WebsitesQuestion and

Answer WebsitesWhat role do Question and Answer

websites play in software engineering?

Page 48: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)
Page 49: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)
Page 50: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Stackoverflow

Page 51: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Over 92% of the questions on Stackoverflow are answered, and for those 92% the median answer time is 11 minutes

L. Mamykina, B. Manoim, M. Mittal, G. Hripcsak, and B. Hartmann. Design lessons from the fastest q&a site in the west. CHI 2011.

Page 52: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Stackoverflow

How-to questions prevalent, and used frequently by novices

C. Treude, O. Barzilay and M.-A. Storey. How do Programmers Ask and Answer Questions on the Web? NIER/ICSE 2011.

Page 53: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Linking Stackoverflow data with API usage

C. Parnin, C. Treude, L. Grammel and M.-A. Storey. Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow”. Under submission, May 25 2012, related blog (15,000 hits so far).

Page 54: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Stackoverflow as Crowd DocumentationCoverage of API documentation: 77% of the Java API classes & 87% of Android API classes

Speed of coverage:

C. Parnin, C. Treude, L. Grammel and M.-A. Storey. Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow”. Under submission, May 25 2012, related blog (15,000 hits so far).

Page 55: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Impact on documentation tools? Automatically generating documentationVisualizing crowd documentation

http://latest-print.crowd-documentation.appspot.com/?api=android

Page 56: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)
Page 57: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Wikis, social networking, etc.

Question & Answer Websites

Reputation

Tagging

Source codecomments

MicroBlogging

Blogging

Page 58: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

ReputationReputationWhy do developers and recruiters use reputation

features in social networking sites?

Page 59: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Social Coding in GitHubGitHub supports transparency Management of profiles and their visibility important for project successExplicit self promotion not valued

L. Dabbish, H.C. Stuart, J. Tsay and J. Herbsleb. Social coding in github: transparency and collaboration in an open software repository. CSCW 2012.

Page 60: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Masterbranch and Coderwall

Page 61: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Developer motivations

L. Singer, F. F. Filho, B. Cleary, C. Treude, M.-A. Storey, K. Schneider. Mutual Assessment in the Social Programmer Ecosystem: An Empirical Investigation of Developer Profile Aggregators Under submission, June 2012.

“As a software developer, you need to learn a lot. It's a constant challenge to keep up with technologies. […] It's the proof that you have that kind of mindset, if you do it [learning, keeping up] anyway in your free time”

“[When] I look at repos around this topic [...], I may be interested in seeing the coder footprint of people that

work in this area [...] their favorite languages, the topics they write code about, what they work on”

Page 62: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Recruiter motivations

Social connections for finding candidates that are passionate, learn quickly and with diverse skills

Mutual Assessment in the Software Ecosystem

L. Singer, F. F. Filho, B. Cleary, C. Treude, M.-A. Storey, K. Schneider. Mutual Assessment in the Social Programmer Ecosystem: An Empirical Investigation of Developer Profile Aggregators Under submission, June 2012.

Page 63: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Wikis, social networking, etc.

Question & Answer Websites

Reputation

CommunityPortals

Tagging

Source codecomments

MicroBlogging/Blogging

Page 64: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Wikis etc...Wikis etc...

• Wikis useful for documentation, requirements engineering, knowledge sharing

• Impact of social networking in software engineering (Codebook, Github) - can also follow software artifacts!

• Crowdsourcing of coding (TopCoder) and testing (e.g. Google’s A/B testing approach)

• End-user involvement in closed, open source and mixed initiative projects

• Community portals in software communities

Page 65: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Making sense of the social media ecosystem (the social era) in software engineering

Wikis, social networking, etc.

Tagging

MicrobloggingQuestion & Answer

Websites

Reputation

Blogging

Source codecomments

Page 66: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Social Media

Page 67: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Enhances

Task management, coordination

Awareness, transparency

Learning

Personal portfolio development, expertise finder, recruitment

Page 68: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Social Media

Page 69: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Retrieves??

Programmer “rock stars”Oral culture (talkbacks on blogs)End-user programmersPortfolios

“On Twitter, I follow a few prominent software developers. For example, Kelly Sommers from Canada, she’s constantly trying new things. I don’t think she ever sleeps. So she’s a great source of inspiration.” (From the Reputation study)

Page 70: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Social Media

Page 71: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Reverses??

Geek cultureReliance on searchInterruptionsSecurity holesSpaghetti code

“Google as the most important member on your programming team”, Brendan Cleary

Page 72: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Social Media

Page 73: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Obsolesces??

Formal documentationIn-house expertise, certain jobsNeed for co-locationClassroom educationEmail listsCVs

"It's always good to document a widget, but it's more important in many cases to document a process [...]. It's the context of how you use the widget that's much more important."

Page 74: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

(Distributed) Community formation, awareness, transparency, knowledge curation,learning, reuse, reputation

Community fragmentation,

informal processes, geek culture,

reliance on search,security concerns,

interruptions, advertisements

Programming gurus,end users as developers,verbal discussions, portfolios,communities of practice

In-house expertise/jobs, formal documentation,classroom education,

CVs, email lists, need for co-location

Social Media

Page 75: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

7 Burning Questions about Social Media use in

Software Engineering...

Wikis, social networking, etc.

Tagging

MicrobloggingQuestion & Answer

Websites

Reputation

Blogging

Source codecomments

Page 76: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Q1: Towards the “Social Programmer”?• What makes a good developer?

– Ability to write good code… or…– Ability to search for good code and to network? Do social skills matter?

• Can you assess a programmer’s ability independently of the larger community?

Page 77: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Q2: Classroom education still relevant? Knowledgeable -> Knowledge-able

http://www.academiccommons.org/commons/essay/knowledgable-knowledge-able, by Michael Wesch

Page 78: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Less than 13% of Wikipedia content is authored by women, fewer than 9% of editors are women

Why does this matter?Less female oriented contentFewer opportunities to gain expertise, build portfolios, reputation

Q3: Gamification and marginalization?

“Define Gender Gap? Look up Wikipedia’s Contributor List. New York Times, January, 2011.

http://blog.20sb.net/2011/10/changing-the-ratio-on-wikipedia.html

Page 79: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

“obsessive web browsing can cause attention spans to drop to as little as nine seconds—equivalent to a goldfish”, Ted Selker, MIT 2002

“obsessive web browsing can cause attention spans to drop to as little as nine seconds—equivalent to a goldfish”, Ted Selker, MIT 2002

Q4: Information overload?

Page 80: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Q5: Impact on design and documentation?

What are the risks of using social media for requirements

gathering/elicitation?

Does the use of social media lead to a

“laissez-faire” documentation approach?

Page 81: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Q6: Impact on software quality? Does social media use lead to:Spaghetti code and brittle integrations? More (viral) bugs? Security concerns? Undesirable clones? More license violations? Poor code ownership?

Page 82: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Q7: Impact on mining methods?Can mining of social media lead to improved predictions, detections and recommendations?

Challenge!! mining an ecosystem of media!

Page 83: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Concluding remarks...

Page 84: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Mining community takeawaysThe social era in software engineering begs us to ask different kinds of questions

Social media ecosystems as an integral component of software repositories (or vice versa?)

Abundant and exciting mining opportunities! Combine with other research methods

The social era in software engineering begs us to ask different kinds of questions

Social media ecosystems as an integral component of software repositories (or vice versa?)

Abundant and exciting mining opportunities! Combine with other research methods

Page 85: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Software repositories

“If we understand the revolutionary transformations caused by new media, we can anticipate and control them; but if we continue in our self-induced subliminal trance, we will be their slaves.” Marshall McLuhan, 1974

“If we understand the revolutionary transformations caused by new media, we can anticipate and control them; but if we continue in our self-induced subliminal trance, we will be their slaves.” Marshall McLuhan, 1974

Goals

MSR 2012-...

Goals first...

Page 86: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

http://www.thechiselgroup.orghttp://margaretannestorey.wordpress.com

/ @thechiselgroup, @margaretstorey

on [email protected]

Funded by NSERC/DRDC/IBMAcknowledgements for feedback on my talk: C. Treude, B. Cleary, I. Richardson, J. Aranda, B. Fu, J. Starke, C. Petrachenko, and to C. Parnin and L. Singer

Page 87: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

IEEE Software special issueBridging Software Communities through Social Networking

Papers due June 25th, 2012

http://www.computer.org/portal/web/computingnow/swcfp1

Editors:Jan Bosch, Chalmers University of Technology, SwedenMargaret-Anne Storey, University of Victoria, CanadaAndrew Begel, Microsoft Research, USA

Page 88: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

(Distributed) Community formation, awareness, transparency, knowledge curation,learning, reuse, reputation

Community fragmentation,

informal processes, geek culture,

reliance on search,security concerns,

interruptions, advertisements

Programming gurus,end users as developers,verbal discussions, portfolios,communities of practice

In-house expertise/jobs, formal documentation,classroom education,

CVs, email lists, need for co-location

Social Media

Page 89: Towards the Social Programmer (MSR 2012 Keynote by M. Storey)

Additional ReferencesC. Treude and M.-A. Storey. Effective Communication of Software Development Knowledge Through Community Portals. ESEC/FSE ’11.

Communities of practice: http://www.ewenger.com/theory/

See the following two links for other references on social media use in software engineering:

M.-A. Storey, C. Treude, A. van Deursen and L.-T. Cheng. The Impact of Social Media on Software Engineering Practices and Tools. In FoSER ’10: Proceedings of the FSE/SDP workshop on Future of software engineering research.

Christoph Treude’s Blog: http://www.ctreude.ca/

See also this year’s and last’s MSR proceedings for some new work on this topic.