Cascon 2016 Keynote: Disrupting Developer Productivity One Bot at a Time

55
Disrupting Developer Productivity One Bot at a Time Margaret-Anne (Peggy) Storey University of Victoria http://www.margaretstorey.com @margaretstorey #bots4se CASCON 2016 Alexey Zagalsky, Carlene Lebeuf (UVic) Alexander Serebrenik, Bin Lin (TU Eindhoven)

Transcript of Cascon 2016 Keynote: Disrupting Developer Productivity One Bot at a Time

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:

Kevin Kelly, Futurist: “You’ll be paid in the future based on how well you work with robots.”

http://interestingengineering.com/programmer-automates-job-6-years-boss-fires-finds/

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

Going back in time… 1966

Bots — 1988IRC provided a platform and language for writing your bots

https://www.wired.com/1996/04/netbots/

Microsoft: the operating system of the future isn’t Windows, but "conversation as a platform”

aims to replace apps “one bot at a time”

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 autonomous…

Extent of human intervention required

Context

Sensing

Self maintaining

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

“Scaling to 1000s of developers — automation is required!” [Jacek Czerwonka]

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

https://bvasiles.github.io/papers/chi16bot.pdf

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

http://meekan.com/slack/

Shared regulation

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 #3Be careful what you wish for!

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]

The second machine age

Expert human + (simple) computer + good process will beat

many expert machines(today)

“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

[email protected]

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/