To Bot or Not: How Bots can Support Collaboration in Software Engineering (ICGSE 2016)

Preview:

Citation preview

To Bot or Not: How Bots can Support Collaboration in Software Development

Margaret-Anne (Peggy) StoreyUniversity of Victoria@margaretstorey

ICGSE 2016

Acknowledgements: Alexey Zagalsky, Carlene Lebeuf (UVic)Alexander Serebrenik, Bin Lin (TU Eindhoven)

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/

1968 1980 1990 2000 20101970

Developer tools over time Towards the social programmer…

Storey et al., ICSE FOSE 2014

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

1968 1980 1990 2000 20101970

Developer tools over time Towards the social programmer…

Surveyed over 2,500 devs

Storey et al., ICSE FOSE 2014

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.

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).

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

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

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

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

Dimensions of Bots

What they do… How autonomous… How intelligent… How to interact with them… Where they dwell… How they are created…

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

How autonomous…

Pull mode: User initiates the interaction

Push mode: Bot initiates the interaction

May have a combination of both

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/

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

Where Bots dwellOn 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

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

aims to replace apps “one bot at a time”

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

https://www.packtpub.com/application-development/building-slack-bots

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

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

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/

Code BotsMake 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)

http://www.wired.com/2015/10/the-most-important-startups-hardest-worker-isnt-a-person/

Test botsBots 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

https://coveralls.io/

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

“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

Documentation BotsBots 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

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

Entertainment Bots

Bots that can entertain, amuse, play games!

http://www.wired.com/2016/05/giphy-google-gifs-gifts-world-keyboard/

SE Bot Roles

Code Bots Test Bots DevOps Bots Support Bots Documentation Bots Entertainment BotsCollaboration is everywhere…

Storey and Zagalsky, Disrupting Developer Productivity One Bot at a Time, FSE Visions and Reflections Track 2016 (to appear)

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

http://bots.apievangelist.com/organizations/slackbots/

"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

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

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”

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/

EfficiencyAutomate: repetitive/tedious tasks

Help developers stay in flow: reduce disruptions, distractions provide support /eliminate context switching

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

M. Arciniegas-Mendez, A. Zagalsky, M.-A. Storey, and A. F. Hadwin. Regulation as an enabler for collaborative software development. CHASE, 2015.

EffectivenessImprove decision making

Support team cognition

Regulate individual and team tasks and goals:initiate and track reminderssupport coordination across tasksvisualize progresspromote/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.

Self regulation

Co-regulation

Shared regulation

http://meekan.com/slack/

Shared regulation

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

Risk #1Will 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

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?

Risk #3Be careful what you wish for!

Risk #4When 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]

“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?

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

@margaretstorey

References M. 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. 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.

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.

Recommended