Upload
margaret-anne-storey
View
607
Download
0
Embed Size (px)
Citation preview
Disrupting Developer Productivity One Bot at a Time
Margaret-Anne (Peggy) StoreyUniversity of Victoriahttp://www.margaretstorey.com
@margaretstorey #bots4se
CASCON 2016Alexey Zagalsky, Carlene Lebeuf (UVic)Alexander Serebrenik, Bin Lin (TU Eindhoven)
1968 1980 1990 2000 20101970
Developer tools over time Towards the social programmer…
Surveyed over 2,500 devs
Storey et al., ICSE FOSE 2014
Social tools facilitate a participatory development culture in software engineering, with support for the social creation and sharing of content, informal mentorship, and awareness that contributions matter to one another
Storey, M.-A., L. Singer, F. Figueira Filho, B. Cleary and A. Zagalsky,The (R)evolutionary Role of Social Media in Software Engineering, ICSE 2014 Future of Software Engineering.
Challenges:Developer
“If you have to go to a web browser there is a 10% chance you'll be distracted. I use the project "howdoi" to get answers from Stack Overflow on the command line so I can stay out of the browser and keep focus."
“One of the biggest issues with fragmentation of the communication options is that there are so many different ways to communicate that it’s harder to find it all in one place. Important communications get lost; Key people don’t see them; They can’t be retrieved by a single search tool. Companies such as Slack are attempting to solve this problem, but it has a long way to go.”
Channel confusion and lack of integration:
To Bot or Not?What is a Bot
How Bots play a role in SE
Disrupting Productivity with Bots
Risks and Research Opportunities
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
Bots — 1988IRC provided a platform and language for writing your bots
https://www.wired.com/1996/04/netbots/
http://fortune.com/2016/10/26/ibm-watson-slack-chatbot/
IBM Watson Lends Brains to Slack's Chatbot
"It could be something like a 20 [percent] or 30 percent increase in knowledge worker productivity.” Stewart
Butterfield, founder of Slack
Defining Bots
From scripts to processes to agents to apps to integrations to bots… an emerging concept!
One definition?
Conduits between users and services typically through a conversational UI
Proposed Bot Dimensions
What they do… How intelligent… How autonomous… How to interact with them… How they are created…
@margaretstorey #bots4se
What they do (intent)!Helpful Bots:•Chatbots•Crawlers•Transactional bots• Informational bots•Monitoring (health, vulnerabilities)
•Art bots•Game bots
Harmful Bots:• Hackers• Spammers• Scrapers• Impersonators• Fraud
How intelligent…Some follow simple rules… (SLT)passing control to a human if needed
More intelligent bots use NLP and AI, learn over time
https://techcrunch.com/2016/07/30/the-human-role-in-a-bot-dominated-future/
How to interact with BotsPush versus Pull Command-line versus conversational UI How much context they use (personalization)
“In conversational UIs, personality is the new UX”
http://www.fastcodesign.com/3054934/the-next-phase-of-ux-designing-chatbot-personalities
Howdy launched Botkit, a library of "building blocks for building Slack bots”
Microsoft Bot connector:
Requires APIs and developer ecosystem…
How they are created
To Bot or Not?What is a Bot
How Bots play a role in SE
Disrupting Productivity with Bots
Risks and Research Opportunities
@margaretstorey #bots4se
Software development Bot roles
Entertainment Bots Code Bots Test Bots DevOps Bots Support Bots Documentation Bots
Categories also inspired by Sven Peters: https://svenpet.com/talks/rise-of-the-machines-automate-your-development/
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).
Entertainment Bots
Bots that can entertain, amuse, play games!
http://www.wired.com/2016/05/giphy-google-gifs-gifts-world-keyboard/
Code BotsIntegration 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)
“The most important startup’s hardest worker isn’t a person!”
Test botsBots to detect bugs or code quality issues:
• Run static analysis tests (FindBugs)
• Open issue for code quality concern (Freud)
• Monitor coverage, technical debt over time
• Test UI changes (CompareBot)
• Detect flaky tests
DevOps Bots
Help teams manage complex builds and deploy from within their chat environment:
• Monitor running services
• Coordinate team schedules (who is on call)
• Measure and analyze workflow, improve feedback
• Stakeholders gain awareness while learning
ChatOps are "putting tools right in the middle of the conversation" - Jesse Newland, GitHub
“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/
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
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
Documentation Bots
To Bot or Not?What is a Bot
How Bots play a role in SE
Disrupting Productivity with Bots
Risks and Research Opportunities
Preliminary productivity framework of design elements for bots
Efficiency — do things faster Automate repetitive/tedious tasksHelp developers stay in flow
Effectiveness —work towards meaningful goals Decision making Team cognition, self/team regulation
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/
Team cognition
"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
"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."
Phil Libin, https://www.linkedin.com/pulse/bots-get-serious-my-two-new-investments-from-general-catalyst-libin
RegulationRegulate individual and team tasks and goals:
initiate and track reminderspromote/adapt to team culturevisualize progresssupport coordination across tasks
Arciniegas-Mendez, M., A. Zagalsky, M.-A. Storey, A. F. Hadwin, “Using the Model of Regulation to Understand Software Development Collaboration Practices and Tool Support”, To appear at CSCW 2017
To Bot or Not?What is a Bot
How Bots play a role in SE
Disrupting Productivity with Bots
Risks and Research Opportunities
Risk #1Will Bots Change how people relate to one another?
www.nytimes.com/2015/08/04/science/for-sympathetic-ear-more-chinese-turn-to-smartphone-program.html?_r=0
“Children are learning that it’s safer to talk to a computer than to another human.” Sherry Turkle
Risk #2
What ethical framework should we use for Bots?
https://techcrunch.com/2016/09/16/hard-questions-about-bot-ethics/
Who should the Bot serve? Is deception ok? Stalking? Misuse of sentiment analysis? Privacy of information that is shared with Bots? Gendered bots
http://www.geekwire.com/2016/why-is-ai-female-how-our-ideas-about-sex-and-service-influence-the-personalities-we-give-machines/
Risk #4When not to Bot?
Information/interactions are not discoverable Interactions may be ephemeral Fewer 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]
“Bots are a test bed for experiments in the area of artificial intelligence” [Leonard, Andrew. Bots: The Origin of the New Species]
How do these “virtual team members” impact software developers as well as the projects they participate on?
Improve/understand human bot interaction (disrupting UX)
Ease adoption/discovery of automated software engineering/computation services
Research opportunities
Would adding “botpower” to a late project make it later?
To Bot or Not?What is a Bot
How Bots play a role in SE
Disrupting Productivity with Bots
Risks and Research Opportunities
Confluence of participatory culture, automation/AI,
conversational UIs/messaging apps
@margaretstorey #bots4se
Margaret-Anne Storeyhttp://www.margaretstorey.com
Visit our CASCON Poster:
@margaretstorey #bots4se
References 1 of 2M. Storey, The Evolution of the Social Programmer, Mining Software Repositories
(MSR) 2012 Keynote http://www.slideshare.net/mastorey/msr-2012-keynote-storey-slideshareM. 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. 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.
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.
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.
References 2 of 2
Related blog posts / resources
•https://medium.com/chris-messina/2016-will-be-the-year-of-conversational-commerce-1586e85e3991#.iadtz4oyt
•http://www.slideshare.net/HollyCummins/confessions-of-an-automation-addict
•https://medium.muz.li/the-ultimate-guide-to-chatbots-why-theyre-disrupting-ux-and-best-practices-for-building-345e2150b682#.h5ira2729
•https://medium.com/the-layer/the-future-of-conversational-ui-belongs-to-hybrid-interfaces-8a228de0bdb5#.5z1xo0csf
•http://www.zdnet.com/article/ibm-slack-partner-on-watson-powered-chatbots/