Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
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
● 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
3. 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
4. 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”
5. 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.”
6. Introduction
● Social Media 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
9. Q & A websites
● “Crowd Documentation: Exploring the
Coverage and the Dynamics of API
discussions on Stack Overflow”
– Parnin et al.
10. 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?
11. 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?
12. 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
13. 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
14. Microblogging
● What comes 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
● 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
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
● “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
19. 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)?
20. 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
21. Blogs
● Publishing frequency
– Committers had written more blog posts than
others
– Eclipse evangelists
– Several metrics
● How often?
● How long?
22. 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
23. Blogs
● Blog content
– Most common topics
● Functional requirements & domain concepts
● Community & contributions
● API usage & project documentation
– More high-level concepts than low-level
24. 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
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
● 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
34. Conclusion
“We shape our tools and thereafter our tools
shape us.”
Marshall McLuhan
Thank you