benevol 2012 keynote: the social software (r)evolution
DESCRIPTION
In this talk, I consider various channels of social media and consider how they impact software engineering. I then focus on what the channels enable (e.g. peer production, social programmer) and how these may change the laws and assumptions of software evolution.TRANSCRIPT
Margaret-Anne (Peggy) StoreyKeynote for BENEVOL 2012, TU Delft, the Netherlands
The Social Software (R)evolution:Impact of Social Media on Software Evolution
CHISEL group, UVic, Canada: – Brendan Cleary– Christoph Treude– Fernando Figueira Filho– Jamie Starke– Gargi Bougie– Peter Rigby– Lars Grammel
Arie van Deursen, TU Delft, the Netherlands Chris Parnin, Georgia Tech, USA Leif Singer, Leibniz Universität, GermanyOhad Barzilay, Tel-Aviv University, Israel Daniel German, UVic, Canada
Research interests
Human and social aspects in software and knowledge engineering
Goal: develop theories to inform or suggest tool design
Impact of social media on 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.
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
Roadmap
How social media impacts software engineering
How social media impacts today’s software evolution challenges
Future research directions for software evolution
M.-A. Storey. Keynote for MSR 2012. The Evolution of the Social Programmer: Social Media and Software Engineering. On slideshare.
Social Media Channels in Software Engineering
Wikis, social networking, etc.
Tagging
MicrobloggingQuestion &
Answer Websites
Reputation
Blogging
Social Coding
Wikis, social networking, etc.
Question & Answer Websites
Reputation Tagging
Social Coding
MicroBlogging
Blogging
Social TaggingInspired by how social tagging is used on the web(and by inadequacies with source code comments)
TagSEA: Social bookmarks (tagging) to create “waypoints” through software
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 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.
Studied introduction and adoption of tags by several teams for work items
Wikis, social networking, etc.
Question & Answer Websites
Reputation Tagging
Social Coding
MicroBlogging
Blogging
MicrobloggingWhy do developers tweet?
Microblogging
Software engineers tweet (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 Questions 2nd International Workshop on Web 2.0 for Software Engineering. 2011.
A. Guzzi, M. Pinzger, A. van Deursen. Combining micro-blogging and IDE interactions to support developers in their quests. ICSM 2010.
Should microblogging be integrated in the IDE for the enterprise?
Wikis, social networking, etc.
Question & Answer Websites
Reputation Tagging
Social Coding
MicroBlogging
Blogging
BloggingWhy do developers blog?
Blogging
Determining requirements through blogs [Park and Maurer, CHASE 2009]
How developers blog: domain concepts and functional requirements (linked to commits)
[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
Social Coding
MicroBlogging
Blogging
Question and Answer Websites
What role do Question and Answer websites play in software engineering?
Stackoverflow
0"
20"
40"
60"
80"
100"
120"
140"
160"
Jun+09"
Aug+09"
Oct+09"
Dec+09"
Feb+10"
Apr+10"
Jun+10"
Aug+10"
Oct+10"
Dec+10"
Feb+11"
Apr+11"
Jun+11"
Aug+11"
Oct+11"
Dec+11"
Millions'
Stack'Overflow'Website'Traffic'
views'
visits'
people' 0"
200,000"
400,000"
600,000"
800,000"
1,000,000"
Jul+08" Dec+08" Jun+09"Dec+09" Jun+10"Dec+10" Jun+11"Dec+11"
Stack'Overflow'Register'Users'
0"
20000"
40000"
60000"
80000"
100000"
120000"
140000"
Jul+08" Dec+08" Jun+09" Dec+09" Jun+10" Dec+10" Jun+11" Nov+11"
Stack'Overflow'Ques=ons''Per'Month' 3.1M'
Ques=ons'6.2M'Answers'
12M'Comments'
3.5k'Views'per'minute'
1.5M'PersonJhours''(es=mate'of'10'min'per'post)'
274th'USA'website'ranking'(Quantcast'Jan'2012)'
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.
Crowd documentation (API documentation)
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.
Wikis, social networking, etc.
Question & Answer Websites
Reputation
Tagging
Social Coding
MicroBlogging
Blogging
ReputationWhy do developers and recruiters use reputation features in
social networking sites?
Social Coding in GitHubManagement 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
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 To appear CSCW 2013. Blog: http://to.leif.me/devprofiles
Mutual Assessment in the Software Ecosystem
Wikis, social networking, etc.
Tagging
MicroBloggingQuestion &
Answer Websites
Reputation
Blogging
Social Coding
Social CodingHow do social coding sites support collaborative processes in
software engineering and improve project quality?
Social Coding in GitHubGitHub supports transparencyTransparency may promote good testing practices; infrastructure for drive-by commitsValuable resource for research
L. Dabbish, H.C. Stuart, J. Tsay and J. Herbsleb. Social coding in github: transparency and collaboration in an open software repository. CSCW 2012.
R. Pham, L. Singer, O. Liskin, F. Figueira Filho, K. Schneider. On Testing Culture in GitHub Projects, To Appear ICSE 2012.
G. Gousios and D. Spinellis, GHTorrent: Github's data from a firehose, MSR 2012.
Wikis, social networking, etc.
Question & Answer Websites
Reputation
CommunityPortals
Tagging
Social Coding
MicroBlogging/Blogging
Wikis etc...
• Wikis useful for documentation, requirements engineering, knowledge sharing
• Impact of social networking in software engineering (Codebook) - can also follow software artifacts
• Crowdsourcing of coding (TopCoder) and testing (e.g. Google’s A/B testing approach)
• Community portals in software communities• Facilitates end-user involvement in closed, open source
and mixed initiative projects
Marshall McLuhan
It is the framework which changes with each new
technology and not just the picture within the frame. 1955
The medium is the message. 1958
We shape our tools and thereafter our tools shape us. Laws of Media by Marshall McLuhan
Medium
Making sense of the social media ecosystem (the social era) in software engineering
Wikis, social networking, etc.
Tagging
MicrobloggingQuestion & Answer Websites
Reputation
Blogging
Social Coding
Social Media
Crowdsourcing of content and peer curation of knowledge
EnhancesTask management, coordination
Awareness, transparency
Learning
Personal portfolio development, expertise finding, 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
Wikis,
Tagging
MicroblogQ&A
Reputation
Blogging
Social Coding
Shift from the technology of social software to what it and a culture of participation enables...
Peer production
Beyond source code!Crowd documentationDeveloper profiles and portfoliosTechnology diffusionLearning materials
Motivations: personal and socialInnovation friendly!
Not just code writing abilityAbility to searchAbility to networkAbility to document/publish to facilitate searchKnowledgeAble rather than Knowledgeable
The evolution of the social programmer
http://www.academiccommons.org/commons/essay/knowledgable-knowledge-able, by Michael Wesch
Evolution of software engineering process?
Peer productionSocial programmer
Software ecosystemsSocial networks and communities of practice
Cambrian explosion of technologies User empowerment
Semantics and quantificationSocial development process
Social Programmer Ecosystem
Software Evolution
Laws of software evolution
Software that remains useful over time, willcontinually change…become more complexincrease in sizedecrease in quality…
Manny Lehman, 1925-2010
Fred Brooks
No silver bullet... Accidental versus essential complexity!
Essential complexitiesComplexity of softwareConformability (real world is complex)Changeability (success drives change)Invisibility (dynamic aspects)
"there is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity.“ Fred Brooks, 1986
Software development as a human activity
Mythical man month, Brooks’ Law Many good designers, but only so many “great” designersProposes a hierarchical structure with documentation for communication
Evolution challenges (human-centric)
Requirements change, understanding
Developer knowledgeTeam work (which process is best?)
Documentation, knowledge managementTesting, quality control
Research on software evolution
Knowledge ProgramsTechnologiesDevelopersTeamsUsersToolsProcesses
Yesterday’s software evolution world....
Today’s software evolution world....
Knowledge ProgramsTechnologiesDevelopersTeamsUsersToolsProcesses
BUT: Are we doing any better?Are developers more productive, successful, creative today? Is social software closing gap between good and great designers?
Is quality and variety of software and documentation improving?
Are today’s users more satisfied? Is today’s software helping users become more productive (paradox of computing)?
Something to chew on...
Was the problem of building an encyclopedia of knowledge an essential complexity or an accidental one?
Research opportunities and challenges
Great resources out there to support research of evolution! But software development landscape changing rapidly, can research keep up?
Are the laws/theories of evolution outdated?
Is the social development ecosystem addressing “essential” complexities or just accidental ones?What risks are we facing? (IP, company assets, programmer time, ...)
Concluding remark
“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 code is a form of communication, is the way we write software (process, culture and tools) a new medium?
IEEE Software special issueBridging Software Communities through Social Networking, January/February 2013
http://www.thechiselgroup.orghttp://margaretannestorey.wordpress.com/
@thechiselgroup, @[email protected]
Funded by NSERC/DRDC/IBM