towards the social programmer (msr 2012 keynote by m. storey)

Post on 18-Sep-2014

23 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

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

22 Acknowledgements

3

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

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

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

Broadening

Goals

Beyond maintenance activities and

developer actions…

The emergence of software ecosystems

and communities of practice

Redefining Software

repositories

Historical importance of tools!Integrated development environments:

Software forges:

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

PlaceSpace

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

“Architecture of participation” Tim O’Reilly

“Architecture of participation” Tim O’Reilly

"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

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

Medium

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.

Social Media Channels in Software Engineering

Wikis, social networking, etc.

Tagging

MicrobloggingQuestion &

Answer Websites

Reputation

Blogging

Source codecomments

Research methods used

Studies to inform tool designs and software practices

Mixed methods:– Mining and analysis of software artifacts

– Ethnographic observations– Interviews– Surveys

Wikis, social networking, etc.

Tagging

MicroBloggingQuestion &

Answer Websites

Reputation

Blogging

Source codecomments

Source code comments

Source code comments

How programmers use source comments for communicating with developers?

The role of annotations in program

comprehensioni.e. for human

usage

e.g. comments, bookmarks, tasks, etc

Source Code Comments: Graffiti or Information?

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

Wikis, social networking, etc.

Question & Answer Websites

Reputation

Tagging

Source codecomments

MicroBlogging

Blogging

Social TaggingSocial Tagging

Inspired by how social tagging is used on the web

Tagging on the web Social bookmarking,

folksonomies

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.

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.

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.

Tags used in

ConcernLines

WorkItemExplorer: ICSE, Friday 10:45am

Wikis, social networking, etc.

Question & Answer Websites

Reputation Tagging

Source codecomments

MicroBlogging

Blogging

MicrobloggingMicrobloggingWhy do developers tweet?

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.

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.

Wikis, social networking, etc.

Question & Answer Websites

Reputation Tagging

Source codecomments

MicroBlogging

Blogging

BloggingBloggingWhy do developers blog?

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)

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]

Wikis, social networking, etc.

Question & Answer Websites

Reputation Tagging

Source codecomments

MicroBlogging

Blogging

\

Question and Answer WebsitesQuestion and

Answer WebsitesWhat role do Question and Answer

websites play in software engineering?

Stackoverflow

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.

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.

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

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

Impact on documentation tools? Automatically generating documentationVisualizing crowd documentation

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

Wikis, social networking, etc.

Question & Answer Websites

Reputation

Tagging

Source codecomments

MicroBlogging

Blogging

ReputationReputationWhy do developers and recruiters use reputation

features in social networking sites?

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.

Masterbranch and Coderwall

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”

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.

Wikis, social networking, etc.

Question & Answer Websites

Reputation

CommunityPortals

Tagging

Source codecomments

MicroBlogging/Blogging

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

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

Social Media

Enhances

Task management, coordination

Awareness, transparency

Learning

Personal portfolio development, expertise finder, recruitment

Social Media

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)

Social Media

Reverses??

Geek cultureReliance on searchInterruptionsSecurity holesSpaghetti code

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

Social Media

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

(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

7 Burning Questions about Social Media use in

Software Engineering...

Wikis, social networking, etc.

Tagging

MicrobloggingQuestion & Answer

Websites

Reputation

Blogging

Source codecomments

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?

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

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

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

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

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?

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?

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

Challenge!! mining an ecosystem of media!

Concluding remarks...

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

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

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

/ @thechiselgroup, @margaretstorey

on Twittermstorey@uvic.ca

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

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

(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

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.

top related