Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,373 views

Published on

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.

Published in: Software
  • Be the first to comment

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

  1. 1. To Bot or Not: 
 How Bots can Support Collaboration in Software Development 
 Margaret-Anne (Peggy) Storey University of Victoria
 
 @margaretstorey 
 ICGSE 2016
  2. 2. Acknowledgements: 
 Alexey Zagalsky, Carlene Lebeuf (UVic) Alexander Serebrenik, Bin Lin 
 (TU Eindhoven)
  3. 3. Kevin Kelly, Futurist: “You’ll be paid in the future based on how well you work with robots.”
  4. 4. http://interestingengineering.com/programmer-automates-job-6-years-boss-fires-finds/
  5. 5. 1968 1980 1990 2000 20101970 Developer tools over time Towards the social programmer… Storey et al., ICSE FOSE 2014
  6. 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. 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. 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. 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. 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. 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. 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.
  13. 13. Going back in time… 1966
  14. 14. Bots — 1988 IRC provided a platform and language for writing your bots
  15. 15. 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
  16. 16. Dimensions of Bots What they do… How autonomous… How intelligent… How to interact with them… Where they dwell… How they are created…
  17. 17. 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
  18. 18. How autonomous… Pull mode: User initiates the interaction Push mode: Bot initiates the interaction May have a combination of both
  19. 19. 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/
  20. 20. 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
  21. 21. 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
  22. 22. Microsoft: the operating system of the future isn’t Windows, but "conversation as a platform”
  23. 23. aims to replace apps 
 “one bot at a time”
  24. 24. 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
  25. 25. https://www.packtpub.com/application-development/building-slack-bots
  26. 26. 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
  27. 27. “Scaling to 1000’s of developers — automation is required!” [Jacek Czerwonka]

  28. 28. 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/
  29. 29. 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)
  30. 30. http://www.wired.com/2015/10/the-most-important-startups-hardest-worker-isnt-a-person/
  31. 31. 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
  32. 32. https://coveralls.io/
  33. 33. 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
  34. 34. “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/
  35. 35. 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
  36. 36. 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
  37. 37. https://bvasiles.github.io/papers/chi16bot.pdf
  38. 38. Entertainment Bots Bots that can entertain, amuse, 
 play games! http://www.wired.com/2016/05/giphy-google-gifs-gifts-world-keyboard/
  39. 39. 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)
  40. 40. 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
  41. 41. http://bots.apievangelist.com/organizations/slackbots/
  42. 42. "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
  43. 43. 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
  44. 44. 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”
  45. 45. 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/
  46. 46. Efficiency Automate: repetitive/tedious tasks
 Help developers stay in flow: reduce disruptions, distractions provide support /eliminate context switching
  47. 47. 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…
  48. 48. M. Arciniegas-Mendez, A. Zagalsky, M.-A. Storey, and A. F. Hadwin. Regulation as an enabler for collaborative software development. CHASE, 2015.
  49. 49. 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.
  50. 50. Self regulation
  51. 51. Co-regulation
  52. 52. Shared regulation
  53. 53. http://meekan.com/slack/ Shared regulation
  54. 54. 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
  55. 55. 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
  56. 56. 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?
  57. 57. Risk #3 Be careful what you wish for!
  58. 58. 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]
  59. 59. “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?
  60. 60. 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
  61. 61. 
 @margaretstorey
  62. 62. 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.
  63. 63. 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.

×