Abstract and video link below)
Presented at ICGSE 2016: Conference on Global Software Engineering (http://www.ics.uci.edu/~icgse2016/2_0cfp.html)
Video link: https://www.youtube.com/watch?v=BsgnLwPMqWM&feature=youtu.be&list=PLcm9UtazJCOLBwPaaHNn_htAjPAXIdRGr
Abstract:
Software development stakeholders require a constellation of tools to support their communication, collaboration and coordination activities. But poor tool integration can lead to gaps in knowledge flow, or worse, to an overabundance of shared communication and information. The software development community is witnessing the rise of "social bots" to integrate diverse development and communication tools and to address the challenge of information overload. A bot is a conversational user interface that can automate rote or tedious tasks. It may fetch or share information, extract and analyze data, detect and monitor events and activities in communication and social media, connect developers with each other or with other tools, or it may provide feedback on individual and collaborative development tasks. Some bots are emerging as important team members, providing support for individual and team task management and for the automation of dev-ops and customer support. However, the rapid adoption of bots and the platforms that support them brings possible drawbacks. Designing effective platforms for bots is challenging and bots may introduce alienation among stakeholders or lead to other technical challenges. In this talk, I will discuss the emerging role of bots in software development and describe some of the advantages and challenges that may lie ahead.
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
To Bot or Not: How Bots can Support Collaboration in Software Engineering (ICGSE 2016)
1. To Bot or Not:
How Bots can Support Collaboration in Software Development
Margaret-Anne (Peggy) Storey
University of Victoria
@margaretstorey
ICGSE 2016
5. 1968 1980 1990 2000 20101970
Developer tools over time
Towards the social programmer…
Storey et al., ICSE FOSE 2014
6. How developers stay up to date using Twitter
How developers assess each other based
on their development and networking activity
How a crowd of developers document open
source API’s through Stackoverflow
How developers share tacit knowledge on
How developers coordinate which code is
committed and accepted through GitHub
7. 1968 1980 1990 2000 20101970
Developer tools over time
Towards the social programmer…
Surveyed over 2,500 devs
Storey et al., ICSE FOSE 2014
8. Challenges 2
3. Community
Economic/Geographic/Demographic (23)
economic constraints (poor internet) (2)
censorship (2)
cultural barriers(3)
minorities (2)
time zones (12)
technological contraints (2)
Participation (21)
participating in (12)
difficulty joining(1)
intimidation (ability or skills) (9)
need for mentors (2)
involving others (9)
lack of involvement (2)
finding right people (4)
convincing others (to participate) (2)
managing community (1)
1. Developer
Distractions & Interruptions (36+)
Keeping up (45)not enough time (3)
keeping up with technologies (34)
Keeping up with projects (8)
finding good examples (3)
Design comprehension (2)
Bug comprehension (1)
Code comprehension (2)
Privacy (6+)
Collaborating with others (27)
code sharing (7)
(tool support for) pairing (3)
activity watching (3)
getting feedback (5)
explaining code (4)
code review (5)
6. Content
Quantity (5)
Quality (39)
obsolete information (5)
spam (4)
saving/retrieving historical data (3)
finding niche content (4)
poor quality (23)
Noise (23)
5. Channels/tools
Channel/tool overload (19)
Channel/tool fragmentation (45) Fragmented communication over tools (42)
tool adoption (reluctance) (3)
Usability and Learnability (27)
tool documentation (lacking) (4)
vendor lockin (5)
tool friction18)
buggy tools (2)
(too many) notifications (5)
time to learn (5)
media literacy (22)
anonymous (not wanted) (1)
Lacking tool support (33)
poor coordination tools (2)
poor project management tools (3)
search (inadequate) (10)
poor mobile support (3)
no one tool fits all (10)
poor communication tools (5)
2. ProjectCoordination (19)scheduling (3)
taking ownership (1)
no roadmap (1)
distributing work (7)
workflow friction (4)
task understanding (1)
code conflicts (1)
Technical, organizational issues (13)
project documentation (1)
code quality (1)
organizational constraints (5)outside communication discouraged (1)
many social tools specific to open source (1)
timely release of government data (1)
proprietary services (3)
standards (2)
licensing (2)
managing requirements (2)
poor project management (1)
4. Social
People issues (20)
dealing with people (11)
attitude (of other developers) (9)
Communication (105)
missing communication (3)
communicating with users (18)
slow responses (7)
language (barriers) (19)
miscommunication (26)
not synchronous (6)
urgent communication (1)
communication takes effort (9)
not f2f (16)
M. Storey, et al., How Social and Communication Channels Shape and Challenge a Participatory Culture in
Software Development, Transactions on Software Engineering, to appear.
9. B. Lin, A. Zagalsky, M.-A. Storey, and
A. Serebrenik. Why developers are
slacking off: Understanding how
software teams use slack. CSCW
2016 (poster paper).
10. To Bot or Not?
What is a Bot
How Bots play a role in SE
Enhancing (Global) Software Development with Bots
Risks and Research Opportunities
11. To Bot or Not?
What is a Bot
How Bots play a role in SE
Enhancing (Global) Software Development with Bots
Risks and Research Opportunities
12. What is a bot?
A bot is an application
that performs automated,
repetitive, pre-defined
tasks.
From setting an alarm, to
telling you today’s
weather forecast, to
gathering and
broadcasting information.
14. Bots — 1988
IRC provided a platform and language for
writing your bots
15.
16.
17.
18. Defining Bots?
From scripts to processes to agents to apps to
integration to bots… An emergent software concept…
One definition:
Conduits between users and services typically through
a conversational UI
19. Dimensions of Bots
What they do…
How autonomous…
How intelligent…
How to interact with them…
Where they dwell…
How they are created…
20. What they do!
Good Bots:
•Chatbots
•Crawlers
•Transactional bots
•Informational bots
•Monitoring (health,
vulnerabilities)
•Art bots
•Game bots
Bad Bots:
• Hackers
• Spammers
• Scrapers
• Impersonators
• Fraud
21. How autonomous…
Pull mode: User initiates the interaction
Push mode: Bot initiates the interaction
May have a combination of both
22. How intelligent…
Some follow simple rules… (SLT)
passing control to human if needed
More intelligent bots use NLP
and AI, learning over time
https://techcrunch.com/2016/07/30/the-human-role-in-a-bot-dominated-future/
23. How to interact with Bots
“In conversational UIs,
personality is the new UX”
How people interact with them influenced by
gender, personality, metaphor used etc
http://www.fastcodesign.com/3054934/the-next-phase-of-ux-designing-chatbot-personalities
24. Where Bots dwell
On the internet at large or on particular
platforms/networks such as:
• Facebook (11,000 bots in 3 months)
• Microsoft
• Telegram
• Kik
• Slack
…….
http://www.theverge.com/2016/7/1/12072456/facebook-messenger-bot-growth
28. Howdy launched Botkit, a library of "building blocks for
building Slack bots”
Microsoft Bot connector:
Requires APIs and developer ecosystem… bottom up..
How they are created
30. To Bot or Not?
What is a Bot
How Bots play a role in SE
Enhancing (Global) Software Development with Bots
Risks and Research Opportunities
31. “Scaling to 1000’s of developers —
automation is required!” [Jacek Czerwonka]
32. Software development Bot roles
Code Bots
Test Bots
DevOps Bots
Support Bots
Documentation Bots
Entertainment Bots
Storey and Zagalsky, Disrupting Developer Productivity One Bot at a Time, FSE Visions and Reflections
Track 2016 (to appear)
Categories also inspired by Sven Peter: https://svenpet.com/talks/rise-of-the-machines-automate-your-development/
33. Code Bots
Make coding activities more efficient/effective through
integration of services and task automation:
• Commit code automatically (after review/tests)
• Update/create tasks/issues/bugs (BugBot)
• Conduct/facilitate peer review (find reviewers)
• Automatically merge pull requests (Travis)
35. Test bots
Bots that help test or detect bugs or code quality issues:
• Run static analysis tests (FindBugs)
• Open issue for code quality concern (Freud)
• Monitor technical debt over time
• Test UI changes
• Detect flaky tests
• Balance tests
37. DevOps Bots
Help teams manage complex build, deployment
from within their chat environment:
• Stakeholders gain awareness while learning
• Monitor running services
• Coordinate team schedules (who is on call)
• Measure and analyze workflow, improve
feedback
ChatOps are "putting tools right in the middle of the conversation"
- Jesse Newland, GitHub
38. “Chatting with your infrastructure might seem strange at first but
it's easy to see the benefits. A timeline of who's deploying what
and deployments that are so easy anyone can trigger them.’'
https://skillsmatter.com/skillscasts/7629-devops-for-slackers-deploying-code-with-a-chat-bot
https://www.pagerduty.com/why-pagerduty/it-operations/
39. Interact with users (at scale) to offer support:
• Answer frequently asked questions (consult
and then build up knowledge base)
• Analyze user feedback, identify and triage most
important bugs to fix
Support Bots
40.
41. Documentation Bots
Bots that produce documentation from developer artifacts:
• Author release notes from commit messages
• Integrate analytics and visualizations into reports and
dashboards
• Translating documentation on the fly
• Find/aggregate answers/documentation from community
resources such as Stack Overflow or Youtube
44. Entertainment Bots
Bots that can entertain, amuse,
play games!
http://www.wired.com/2016/05/giphy-google-gifs-gifts-world-keyboard/
45. SE Bot Roles
Code Bots
Test Bots
DevOps Bots
Support Bots
Documentation Bots
Entertainment Bots
Collaboration is everywhere…
Storey and Zagalsky, Disrupting Developer Productivity One Bot at a Time, FSE Visions
and Reflections Track 2016 (to appear)
46. Collaboration…
Awareness
Coordination
Communication
"ChatOps is a collaboration model that connects people, tools,
processes, and automation into a transparent workflow"
- Sean Regan, Atlassian
“The team with the most situational awareness wins”
— Mary Poppendieck, Lean Software Development
49. "The real potential of bots isn’t going to be realized with
one person using one bot (that’s the old app model), but
with multiple people having a normal conversation
while the bots augment the stream with relevant
context and functionality. This is a pretty far-reaching
evolution of how humans interact with technology. It’s
cognitively ergonomic."
https://www.linkedin.com/pulse/bots-get-serious-my-two-new-investments-from-
general-catalyst-libin
50. To Bot or Not?
What is a Bot
How Bots play a role in SE
Enhancing (Global) Software Development with Bots
Risks and Research Opportunities
51. How to design Bots?
Metaphor matters!
The writing matters!
Command line or conversational UI?
Principles but which ones?
"The software must be doing a good job, because people
know it’s a robot, but still feel the need to say ‘thank you.’”
https://blog.kik.com/2016/03/14/three-golden-rules-for-bot-development/
“Avoid rhetorical questions”
“Watch for notification overload”
“Build in a kill switch”
52. Preliminary productivity framework
of design elements for bots
Efficiency — do things faster
Effectiveness —work towards meaningful goals
M. Storey and A. Zagalsky, Disrupting Developer Productivity One Bot at a Time, FSE 2016
Visions and Reflections Track, 2016, To appear.
http://www.productiveflourishing.com/a-general-theory-of-productivity/
54. Effectiveness
Improve decision making:
capture, analyze data
share knowledge across team members
Support team cognition:
provide situational awareness
support team communication
Regulate individual and team tasks and goals…
55. M. Arciniegas-Mendez, A. Zagalsky, M.-A.
Storey, and A. F. Hadwin. Regulation as
an enabler for collaborative software
development. CHASE, 2015.
56. Effectiveness
Improve decision making
Support team cognition
Regulate individual and team tasks and goals:
initiate and track reminders
support coordination across tasks
visualize progress
promote/adapt to team culture
M. Arciniegas-Mendez, A. Zagalsky, M.-A. Storey, and A. F. Hadwin. Regulation as an
enabler for collaborative software development. CHASE, 2015.
61. To Bot or Not?
What is a Bot
How Bots play a role in SE
Enhancing (Global) Software Development with Bots
Risks and Research Opportunities
62. Risk #1
Will Bots Change how people relate to one
another?
“Children are learning that it’s safer to talk to a computer
than to another human.” Sherry Turkle
www.nytimes.com/2015/08/04/science/for-sympathetic-
ear-more-chinese-turn-to-smartphone-program.html?_r=0
63. Risk #2
What ethical framework should we use for Bots?
Is deception ok?
What about privacy of information that is more
likely to be shared by users with Bots?
Misuse of sentiment analysis?
Stalking?
65. Risk #4
When not to Bot!
Information/interactions are not discoverable
Interactions may be ephemeral (in Chat platforms)
Reduced opportunities for serendipity and learning
Direct manipulation better for complex tasks
May bring new disruptions and complexities
[Code Drones to the rescue? Acharya et al, ICSE 2016]
66. “Bots are a test bed for experiments in the area of artificial
intelligence” [Leonard, Andrew. Bots: The Origin of the New Species]
Ease adoption of automated software engineering
How do these “virtual team members” impact (global)
software developers as well as the projects they participate on?
Research opportunities
Would adding “botpower” to a late project make it later?
67. To Bot or Not?
What is a Bot
How Bots play a role in SE
Enhancing (Global) Software Development with Bots
Risks and Research Opportunities
69. References
M. Storey, The Evolution of the Social Programmer, Mining Software Repositories
(MSR) 2012 Keynote http://www.slideshare.net/mastorey/msr-2012-keynote-storey-slideshare
M. Storey et al., The (R)evolution of Social Media in Software Engineering, ICSE
Future of Software Engineering 2014, http://www.slideshare.net/mastorey/icse2014-fose-
social-media http://chiselgroup.files.wordpress.com/2014/01/fose14main-storey-submitted.pdf
M. Arciniegas-Mendez, A. Zagalsky, M.-A. Storey, and A. F. Hadwin. Regulation as
an enabler for collaborative software development. In Proceedings of the
Eighth International Workshop on Cooperative and Human Aspects of Software
Engineering, pages 97-100. IEEE Press, 2015.
B. Lin, A. Zagalsky, M.-A. Storey, and A. Serebrenik. Why developers are slacking
off: Understanding how software teams use slack. In Proceedings of the
19th ACM Conference on Computer Supported Cooperative Work and Social
Computing Companion, pages 333{336. ACM, 2016.
M. Storey and A. Zagalsky, Disrupting Developer Productivity One Bot at a
Time, FSE 2016 Visions Track, 2016, to appear.
M. Storey, L. Singer, F. Figueira Filho, A. Zagalsky, and D. German, How Social and
Communication Channels Shape and Challenge a Participatory Culture in
Software Development, Transactions on Software Engineering, to appear.
70. Additional references
(in addition to links throughout the talk)
Leonard, Andrew. Bots: The Origin of the New Species. Wired Books,
Incorporated, 1997.
M. P. Acharya, C. Parnin, N. A. Kraft, A. Dagnino, and X. Qu. Code drones. In
Proceedings of the 38th International Conference on Software Engineering
Companion, ICSE '16, pages 785-788, New York, NY,USA, 2016. ACM.
M. Poppendieck and T. Poppendieck. Lean Software Development: An Agile
Toolkit. Addison-Wesley, 2003.
A, Murgia, D. Janssens, S, Demeyer, and B, Vasilescu. 2016. Among the
Machines: Human-Bot Interaction on Social Q&A Websites. In Proceedings of
the 2016 CHI Conference Extended Abstracts on Human Factors in Computing
Systems (CHI EA '16). ACM, New York, NY, USA, 1272-1279.