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.
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Benevol 2012 Keynote: The Social Software (R)evolution
1. The Social Software (R)evolution:
Impact of Social Media on Software Evolution
Margaret-Anne (Peggy) Storey
Keynote for BENEVOL 2012, TU Delft, the Netherlands
2. 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, Germany
Ohad Barzilay, Tel-Aviv University, Israel
Daniel German, UVic, Canada
3. 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.
4. Space Place
P. Dourish and V. Bellotti. Awareness and Coordination in Shared Workspaces. Proceedings of the ACM Conference on
Computer-Supported Cooperative Work (CSCW'92).
6. 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.
7. Social Media Channels in
Software Engineering
Social
Coding
Reputation
Tagging
Wikis, social
networking, etc.
Question &
Answer Websites Microblogging
Blogging
8. Social
Coding
Tagging
Reputation
Wikis, social
networking, etc.
Question &
Answer Websites MicroBlogging
Blogging
9. Social Tagging
Inspired by how social tagging is used on the web
(and by inadequacies with source code comments)
10. 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.
11. Tagging in
Studied introduction and adoption of tags by
several teams for work items
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.
12. Social
Coding
Reputation
Tagging
Wikis, social
networking, etc.
Question &
Answer Websites
MicroBlogging
Blogging
14. Microblogging
Software engineers tweet (share) facts about
software engineering topics and technology
Should microblogging be integrated in the IDE
for the enterprise?
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.
15. Social
Coding
Reputation
Tagging
Wikis, social
networking, etc.
Question &
Answer Websites MicroBlogging
Blogging
17. 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]
18. Social
Coding
Reputation
Tagging
Wikis, social
networking, etc.
MicroBlogging
Question &
Answer Websites
Blogging
19. Question and Answer
Websites
What role do Question and Answer websites play in software
engineering?
21. 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.
22. Stackoverflow
How-to questions prevalent, and
used frequently by novices
Crowd documentation
(API documentation)
C. Treude, O. Barzilay and M.-A. Storey. How do Programmers Ask and Answer Questions on the Web? NIER/ICSE 2011.
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.
23. Social
Coding
Reputation
Tagging
Wikis, social
networking, etc.
Question &
Answer Websites MicroBlogging
Blogging
25. Social Coding in GitHub
Management of profiles and their visibility
important for project success
Explicit 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.
26. Masterbranch and Coderwall
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 To appear CSCW 2013. Blog: http://to.leif.me/devprofiles
27. Social
Coding
Reputation Tagging
Wikis, social
networking, etc.
Question &
Answer Websites MicroBlogging
Blogging
28. Social Coding
How do social coding sites support collaborative processes in
software engineering and improve project quality?
29. Social Coding in GitHub
GitHub supports transparency
Transparency may promote good testing
practices; infrastructure for drive-by commits
Valuable 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.
G. Gousios and D. Spinellis, GHTorrent: Github's data from a firehose, MSR 2012.
R. Pham, L. Singer, O. Liskin, F. Figueira Filho, K. Schneider. On Testing Culture in GitHub Projects, To Appear ICSE 2012.
30. Social
Coding
Reputation
Tagging
Wikis, social
networking, etc.
Question &
Answer Websites MicroBlogging/
Blogging
Community
Portals
31. 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
32.
33. Marshall McLuhan
The medium is the message. 1958
It is the framework which
changes with each new
technology and not just the
picture within the frame. 1955
We shape our tools and thereafter our tools shape us.
Laws of Media by Marshall McLuhan
35. Making sense of the social media ecosystem
(the social era) in software engineering
Social
Coding
Reputation
Tagging
Wikis, social
networking, etc.
Question & Answer
Microblogging
Websites
Blogging
39. Retrieves??
Programmer “rock stars”
Oral culture (talkbacks
on blogs)
End-user programmers
Portfolios
“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)
41. Reverses??
Geek culture
Reliance on search
Interruptions
Security holes
Spaghetti code
“Google as the most important member on
your programming team”, Brendan Cleary
43. Obsolesces??
Formal documentation
In-house expertise,
certain jobs
Need for co-location
Classroom education
Email lists
CVs
"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."
44. (Distributed) Community formation, Community fragmentation,
awareness, transparency, informal processes,
knowledge curation, geek culture,
learning, reuse, reliance on search,
reputation security concerns,
interruptions,
advertisements
Social
Media
Programming gurus,
end users as developers, In-house expertise/jobs,
verbal discussions, formal documentation,
portfolios, classroom education,
communities of practice CVs, email lists,
need for co-location
45. Shift from the technology of social software
to what it and a culture of participation
enables...
Social
Coding
Reputation Tagging
Wikis,
Q&A Microblog
Blogging
46. Peer production
Beyond source code!
Crowd documentation
Developer profiles and portfolios
Technology diffusion
Learning materials
Motivations: personal and social
Innovation friendly!
47. The evolution of the social
programmer
Not just code writing ability
Ability to search
Ability to network
Ability to document/publish to facilitate search
KnowledgeAble rather than Knowledgeable
http://www.academiccommons.org/commons/essay/knowledgable-knowledge-able, by Michael Wesch
49. Peer production
Social programmer
Software ecosystems
Social networks and communities of practice
Cambrian explosion of technologies
User empowerment
Semantics and quantification
Social development process
Social Programmer Ecosystem
51. Laws of software evolution
Software that remains useful over time, will
continually change…
become more complex
increase in size
decrease in quality
…
Manny Lehman, 1925-2010
53. Essential complexities
Complexity of software
Conformability (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
54. Software development as a
human activity
Mythical man month, Brooks’ Law
Many good designers, but only so
many “great” designers
Proposes a hierarchical structure
with documentation for communication
55. Evolution challenges
(human-centric)
Requirements change, understanding
Developer knowledge
Team work (which process is best?)
Documentation, knowledge management
Testing, quality control
Research on software evolution
58. 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)?
59. Something to chew on...
Was the problem of building an encyclopedia of
knowledge an essential complexity or an accidental
one?
60. 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, ...)
61. Concluding remark
If code is a form of communication, is the
way we write software (process, culture and
tools) a new medium?
“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
62. IEEE Software special issue
Bridging Software Communities through Social
Networking, January/February 2013