Software Engineering 
& 
Social Media 
Instituto de Matemática e Estatística 
MAC6912 – Software Development 
Environments 
Jorge A. Melegati
Introduction 
● What comes to your mind for the words 
“Social Media”? 
– Facebook 
– Twitter 
● It is more than that 
– Blogs 
– Q & A sites (StackOverflow) 
– Source code comments
Introduction 
● What is Social Media? 
– Ahlqvist et al. 
● Key elements: 
– Content: user generated 
– Community: social, people communication 
– Web 2.0: technical aspects to content creation 
and sharing
Introduction 
● Development as a social activity 
● “What makes a good developer?” 
– Good code vs social skills 
● “http://www.quora.com/What-was-it-like-to-be-a- 
programmer-without-the-Internet”
Introduction 
● “Everything you knew about programming you 
had to either learn from a book or learn by 
talking to someone. Every tool you used you 
either had to write yourself, copy from a friend, 
or buy.” 
● “Reference manuals -- These were sometimes 
as long as a bookshelf with many volumes. 
Every system and library you used had a set 
of soft-bound programming guides.”
Introduction 
● Social Media Channels in SE 
– Source Code Comments 
– Reputation 
– Tagging 
– Q & A websites 
– Microblogging 
– Blogging 
– Wikis, social networking, etc
Introduction 
● Media (McLuhan) 
– The medium is the message 
● Media Effects 
– Enhances 
– Retrieves 
– Reverses 
– Obsolesces
Social Media Channels 
In 
Software Engineering
Q & A websites 
● “Crowd Documentation: Exploring the 
Coverage and the Dynamics of API 
discussions on Stack Overflow” 
– Parnin et al.
Q & A websites 
● Research questions 
– How Q & A websites facilitate crowd 
documentation? 
– Can we rely on the crowd to discuss an entire 
API on StackOverflow? 
● Are APIs widely covered? 
● What is discussed and what is not discussed? 
● How fast is the crowd at covering an entire 
API?
Q & A websites 
● What are the dynamics of a successful API 
community on Stack Overflow? 
– Who contributes? 
– How does the crowd contribute? 
– How many code samples does the crowd 
provide?
Q & A websites 
● Conclusions 
– The crowd does not provide questions and 
answers for an entire API 
– 80% of classes of Java and Android APIs 
– Some areas (such as acessibility) are ignored
Q & A websites 
● Conclusions 
– A “crowd” of developers asks questions and a 
small pool of “experts” answers 
– Possible break if “experts” are not contributing 
enough 
– Code samples can be mined 
● At least one code sample in an accepted 
answer for about half questions of classes of 
APIs
Microblogging 
● What comes to mind? 
– Twitter 
● “Combining Micro-Blogging and IDE 
Interactions to Support Developers in their 
Quests” 
– Guzzi et al.
Microblogging 
● Context 
– Software engineers spend a considerable 
amount of time on program comprehension 
– Current support for reusing and sharing 
program comprehension knowledge is 
limited
Microblogging 
● Proposed solution 
– An approach to making the knowledge gained 
during the program comprehension process 
accessible 
– Combining micro-blog messages with 
interaction data automatically collected from 
the IDE
Microblogging 
● Results 
– Number, frequency and content of messages 
indicate that developers are willing and 
inclined to share 
– One third of messages indicate future intent 
– More than one fourth reference a code 
element 
– Knowledge create has big potential for support 
manteinance tasks
Blogs 
● “How Do Developers Blog? An Exploratory 
Study” 
– Pagano e Maalej 
● SE community recognized potentials of social 
media to improve communication and 
collaboration 
● Several studies about Wikis
Blogs 
● Research questions 
– How often do developers and other 
stakeholders create blog entries? 
– What are typical elements included or 
referenced in a blog post? 
– Which topics are used in blogs of software 
development communities? 
– How popular are these topics (i.e. frequency 
distribution across the different projects)?
Blogs 
● Research questions 
– Are there particular patterns, which describe 
when developers use blogs within their 
development workflows? 
– Are there relationships between the work 
performed and the information blogged? 
● Eclipse, GNOME, PostgreSQL and Python 
● Commit messages and blog posts
Blogs 
● Publishing frequency 
– Committers had written more blog posts than 
others 
– Eclipse evangelists 
– Several metrics 
● How often? 
● How long?
Blogs 
● Post structure 
– Do not tend to include source code 
– Links are frequently 
● More links to Wikis 
– Images 
● Eclipse and GNOME twice the others 
– Interface projects 
– Committers tend to use more screenshots
Blogs 
● Blog content 
– Most common topics 
● Functional requirements & domain concepts 
● Community & contributions 
● API usage & project documentation 
– More high-level concepts than low-level
Blogs 
● Blog integration 
– How blogging is integrated to developers' 
workflow? 
– Publishing patterns – When? 
● 30-43% follow a corrective engineering activity 
● 13-25% follow a management activity 
● Forward or re-engineering less 
– Content dependency 
● Dependency decreases with an increasing time 
period between commit and posting
Social Media Effects 
In 
Software Engineering
Enhances 
● Task management, coordination 
● Awareness, transparecy 
● Learning 
● Personal portfolio development, expertise 
finder, recruitment
Retrieves 
● What does it make relevant again? 
● Programmer “rock stars” 
● Oral culture (talkbacks on blogs) 
● End-user programmers 
● Portfolios
Reverses 
● Geek culture 
● Reliance on search 
● Interruptions 
● Security holes 
● Spaghetti code
Obsolesces 
● Formal documentation 
● In-house expertise, certain jobs 
● Need for co-location 
● Classroom education 
● Email lists 
● CVs
And now?
And now? 
● “The Impact of Social Media on Software 
Engineering Practices and Tools” 
– Storey et al. 
● There is little known about the benefits or risks 
of using such tools, and the impact they may 
have on the quality of software.
And now? 
● 10 Questions related to: 
– Community and End User involvement 
– Project Coordination and Management 
– Software development activities
Conclusion 
● Software Development as a collaborative 
process 
● Dev in a bubble is dead 
● Research still in its infancy 
– Effects of using social media is still unknown
Conclusion 
“We shape our tools and thereafter our tools 
shape us.” 
Marshall McLuhan 
Thank you

Software Engineering and Social media

  • 1.
    Software Engineering & Social Media Instituto de Matemática e Estatística MAC6912 – Software Development Environments Jorge A. Melegati
  • 2.
    Introduction ● Whatcomes to your mind for the words “Social Media”? – Facebook – Twitter ● It is more than that – Blogs – Q & A sites (StackOverflow) – Source code comments
  • 3.
    Introduction ● Whatis Social Media? – Ahlqvist et al. ● Key elements: – Content: user generated – Community: social, people communication – Web 2.0: technical aspects to content creation and sharing
  • 4.
    Introduction ● Developmentas a social activity ● “What makes a good developer?” – Good code vs social skills ● “http://www.quora.com/What-was-it-like-to-be-a- programmer-without-the-Internet”
  • 5.
    Introduction ● “Everythingyou knew about programming you had to either learn from a book or learn by talking to someone. Every tool you used you either had to write yourself, copy from a friend, or buy.” ● “Reference manuals -- These were sometimes as long as a bookshelf with many volumes. Every system and library you used had a set of soft-bound programming guides.”
  • 6.
    Introduction ● SocialMedia Channels in SE – Source Code Comments – Reputation – Tagging – Q & A websites – Microblogging – Blogging – Wikis, social networking, etc
  • 7.
    Introduction ● Media(McLuhan) – The medium is the message ● Media Effects – Enhances – Retrieves – Reverses – Obsolesces
  • 8.
    Social Media Channels In Software Engineering
  • 9.
    Q & Awebsites ● “Crowd Documentation: Exploring the Coverage and the Dynamics of API discussions on Stack Overflow” – Parnin et al.
  • 10.
    Q & Awebsites ● Research questions – How Q & A websites facilitate crowd documentation? – Can we rely on the crowd to discuss an entire API on StackOverflow? ● Are APIs widely covered? ● What is discussed and what is not discussed? ● How fast is the crowd at covering an entire API?
  • 11.
    Q & Awebsites ● What are the dynamics of a successful API community on Stack Overflow? – Who contributes? – How does the crowd contribute? – How many code samples does the crowd provide?
  • 12.
    Q & Awebsites ● Conclusions – The crowd does not provide questions and answers for an entire API – 80% of classes of Java and Android APIs – Some areas (such as acessibility) are ignored
  • 13.
    Q & Awebsites ● Conclusions – A “crowd” of developers asks questions and a small pool of “experts” answers – Possible break if “experts” are not contributing enough – Code samples can be mined ● At least one code sample in an accepted answer for about half questions of classes of APIs
  • 14.
    Microblogging ● Whatcomes to mind? – Twitter ● “Combining Micro-Blogging and IDE Interactions to Support Developers in their Quests” – Guzzi et al.
  • 15.
    Microblogging ● Context – Software engineers spend a considerable amount of time on program comprehension – Current support for reusing and sharing program comprehension knowledge is limited
  • 16.
    Microblogging ● Proposedsolution – An approach to making the knowledge gained during the program comprehension process accessible – Combining micro-blog messages with interaction data automatically collected from the IDE
  • 17.
    Microblogging ● Results – Number, frequency and content of messages indicate that developers are willing and inclined to share – One third of messages indicate future intent – More than one fourth reference a code element – Knowledge create has big potential for support manteinance tasks
  • 18.
    Blogs ● “HowDo Developers Blog? An Exploratory Study” – Pagano e Maalej ● SE community recognized potentials of social media to improve communication and collaboration ● Several studies about Wikis
  • 19.
    Blogs ● Researchquestions – How often do developers and other stakeholders create blog entries? – What are typical elements included or referenced in a blog post? – Which topics are used in blogs of software development communities? – How popular are these topics (i.e. frequency distribution across the different projects)?
  • 20.
    Blogs ● Researchquestions – Are there particular patterns, which describe when developers use blogs within their development workflows? – Are there relationships between the work performed and the information blogged? ● Eclipse, GNOME, PostgreSQL and Python ● Commit messages and blog posts
  • 21.
    Blogs ● Publishingfrequency – Committers had written more blog posts than others – Eclipse evangelists – Several metrics ● How often? ● How long?
  • 22.
    Blogs ● Poststructure – Do not tend to include source code – Links are frequently ● More links to Wikis – Images ● Eclipse and GNOME twice the others – Interface projects – Committers tend to use more screenshots
  • 23.
    Blogs ● Blogcontent – Most common topics ● Functional requirements & domain concepts ● Community & contributions ● API usage & project documentation – More high-level concepts than low-level
  • 24.
    Blogs ● Blogintegration – How blogging is integrated to developers' workflow? – Publishing patterns – When? ● 30-43% follow a corrective engineering activity ● 13-25% follow a management activity ● Forward or re-engineering less – Content dependency ● Dependency decreases with an increasing time period between commit and posting
  • 25.
    Social Media Effects In Software Engineering
  • 26.
    Enhances ● Taskmanagement, coordination ● Awareness, transparecy ● Learning ● Personal portfolio development, expertise finder, recruitment
  • 27.
    Retrieves ● Whatdoes it make relevant again? ● Programmer “rock stars” ● Oral culture (talkbacks on blogs) ● End-user programmers ● Portfolios
  • 28.
    Reverses ● Geekculture ● Reliance on search ● Interruptions ● Security holes ● Spaghetti code
  • 29.
    Obsolesces ● Formaldocumentation ● In-house expertise, certain jobs ● Need for co-location ● Classroom education ● Email lists ● CVs
  • 30.
  • 31.
    And now? ●“The Impact of Social Media on Software Engineering Practices and Tools” – Storey et al. ● There is little known about the benefits or risks of using such tools, and the impact they may have on the quality of software.
  • 32.
    And now? ●10 Questions related to: – Community and End User involvement – Project Coordination and Management – Software development activities
  • 33.
    Conclusion ● SoftwareDevelopment as a collaborative process ● Dev in a bubble is dead ● Research still in its infancy – Effects of using social media is still unknown
  • 34.
    Conclusion “We shapeour tools and thereafter our tools shape us.” Marshall McLuhan Thank you