skip to main content
10.1145/3025453.3025972acmconferencesArticle/Chapter ViewAbstractPublication PageschiConference Proceedingsconference-collections
research-article

Codeon: On-Demand Software Development Assistance

Authors Info & Claims
Published:02 May 2017Publication History

ABSTRACT

Software developers rely on support from a variety of resources---including other developers---but the coordination cost of finding another developer with relevant experience, explaining the context of the problem, composing a specific help request, and providing access to relevant code is prohibitively high for all but the largest of tasks. Existing technologies for synchronous communication (e.g. voice chat) have high scheduling costs, and asynchronous communication tools (e.g. forums) require developers to carefully describe their code context to yield useful responses. This paper introduces Codeon, a system that enables more effective task hand-off between end-user developers and remote helpers by allowing asynchronous responses to on-demand requests. With Codeon, developers can request help by speaking their requests aloud within the context of their IDE. Codeon automatically captures the relevant code context and allows remote helpers to respond with high-level descriptions, code annotations, code snippets, and natural language explanations. Developers can then immediately view and integrate these responses into their code. In this paper, we describe Codeon, the studies that guided its design, and our evaluation that its effectiveness as a support tool. In our evaluation, developers using Codeon completed nearly twice as many tasks as those who used state-of-the-art synchronous video and code sharing tools, by reducing the coordination costs of seeking assistance from other developers.

Skip Supplemental Material Section

Supplemental Material

pn4205p.mp4

mp4

873.8 KB

References

  1. Upwork inc. (formerly odesk), https://www.upwork.com, 2015. Accessed: April, 2016.Google ScholarGoogle Scholar
  2. Ackerman, M. S. Augmenting organizational memory: a field study of answer garden. ACM Transactions on Information Systems (TOIS) 16, 3 (1998), 203--224. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ackerman, M. S., and McDonald, D. W. Answer garden 2: merging organizational memory with collaborative help. In Proceedings of the 1996 ACM conference on Computer supported cooperative work, ACM (1996), 97--105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Almaatouq, A., Alhasoun, F., Campari, R., and Alfaris, A. The influence of social norms on synchronous versus asynchronous communication technologies. In Proceedings of the 1st ACM international workshop on Personal data meets distributed multimedia, ACM (2013), 39--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Asaduzzaman, M., Mashiyat, A. S., Roy, C. K., and Schneider, K. A. Answering questions about unanswered questions of stack overflow. In Proceedings of the 10th Working Conference on Mining Software Repositories, IEEE Press (2013), 97--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Baheti, P., Gehringer, E., and Stotts, D. Exploring the efficacy of distributed pair programming. In Extreme Programming and Agile MethodsXP/Agile Universe 2002. Springer, 2002, 208--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bernstein, M. S., Brandt, J., Miller, R. C., and Karger, D. R. Crowds in two seconds: Enabling realtime crowd-powered interfaces. In Proceedings of the 24th annual ACM symposium on User interface software and technology, ACM (2011), 33--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Bigham, J. P., Jayant, C., Ji, H., Little, G., Miller, A., Miller, R. C., Miller, R., Tatarowicz, A., White, B., White, S., et al. Vizwiz: nearly real-time answers to visual questions. In Proceedings of the 23nd annual ACM symposium on User interface software and technology, ACM (2010), 333--342. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Brandt, J., Dontcheva, M., Weskamp, M., and Klemmer, S. R. Example-centric programming: integrating web search into the development environment. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ACM (2010), 513--522. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Brandt, J., Guo, P. J., Lewenstein, J., Dontcheva, M., and Klemmer, S. R. Two studies of opportunistic programming: interleaving web foraging, learning, and writing code. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ACM (2009), 1589--1598. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Brandt, J., Guo, P. J., Lewenstein, J., Klemmer, S. R., and Dontcheva, M. Writing code to prototype, ideate, and discover. Software, IEEE 26, 5 (2009), 18--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Chen, Y., Oney, S., and Lasecki, W. Towards providing on-demand expert support for software developers. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ACM (2016). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Chong, J., and Hurlbutt, T. The social dynamics of pair programming. In 29th International Conference on Software Engineering (ICSE'07), IEEE (2007), 354--363. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Cockburn, A., and Williams, L. The costs and benefits of pair programming. Extreme programming examined (2000), 223--247. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Goldman, M., Little, G., and Miller, R. C. Real-time collaborative coding in a web ide. In Proceedings of the 24th annual ACM symposium on User interface software and technology, ACM (2011), 155--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Guo, P. J. Codeopticon: Real-time, one-to-many human tutoring for computer programming. In Proceedings of the 28th annual ACM symposium on User interface software and technology, ACM (2015). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Guo, P. J., White, J., and Zanelatto, R. Codechella: Multi-user program visualizations for real-time tutoring and collaborative learning. In Visual Languages and Human-Centric Computing (VL/HCC), 2015 IEEE Symposium on, IEEE (2015).Google ScholarGoogle ScholarCross RefCross Ref
  18. Guzzi, A., Bacchelli, A., Riche, Y., and van Deursen, A. Supporting developers' coordination in the ide. In Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social Computing, ACM (2015), 518--532. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Hartmann, B., MacDougall, D., Brandt, J., and Klemmer, S. R. What would other programmers do: suggesting solutions to error messages. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ACM (2010), 1019--1028. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Herbsleb, J. D., Klein, H., Olson, G. M., Brunner, H., Olson, J. S., and Harding, J. Object-oriented analysis and design in software project teams. Human--Computer Interaction 10, 2--3 (1995), 249--292. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Inc., C. Code mentor, https://codementor.io/, 2014. Accessed: April, 2016.Google ScholarGoogle Scholar
  22. Inc., C. I. Cloud9 ide, https://c9.io, 2010. Accessed: April, 2016.Google ScholarGoogle Scholar
  23. Inc, H. Hack.hands(), https://hackhands.com/, 2015. Accessed: April, 2016.Google ScholarGoogle Scholar
  24. Iqbal, S. T., and Horvitz, E. Disruption and recovery of computing tasks: field study, analysis, and directions. In Proceedings of the SIGCHI conference on Human factors in computing systems, ACM (2007), 677--686. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Ko, A. J., DeLine, R., and Venolia, G. Information needs in collocated software development teams. In Proceedings of the 29th international conference on Software Engineering, IEEE Computer Society (2007), 344--353. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Ko, A. J., Myers, B., Aung, H. H., et al. Six learning barriers in end-user programming systems. In Visual Languages and Human Centric Computing, 2004 IEEE Symposium on, IEEE (2004), 199--206. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Lasecki, W., Miller, C., Sadilek, A., Abumoussa, A., Borrello, D., Kushalnagar, R., and Bigham, J. Real-time captioning by groups of non-experts. In Proceedings of the 25th annual ACM symposium on User interface software and technology, ACM (2012), 23--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Lasecki, W. S., Kim, J., Rafter, N., Sen, O., Bigham, J. P., and Bernstein, M. S. Apparition: Crowdsourced user interfaces that come to life as you sketch them. In Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems, ACM (2015), 1925--1934. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Lasecki, W. S., Wesley, R., Nichols, J., Kulkarni, A., Allen, J. F., and Bigham, J. P. Chorus: a crowd-powered conversational assistant. In Proceedings of the 26th annual ACM symposium on User interface software and technology, ACM (2013), 151--162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. LaToza, T. D., Towne, W. B., Adriano, C. M., and van der Hoek, A. Microtask programming: Building software with a crowd. In Proceedings of the 27th annual ACM symposium on User interface software and technology, ACM (2014), 43--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. LaToza, T. D., Venolia, G., and DeLine, R. Maintaining mental models: a study of developer work habits. In Proceedings of the 28th international conference on Software engineering, ACM (2006), 492--501. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Olson, G. M., and Olson, J. S. Distance matters. Human-computer interaction 15, 2 (2000), 139--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Overflow, S. Stack overflow, https://stackoverflow.com/, 2015. Accessed: April, 2016.Google ScholarGoogle Scholar
  34. Ponzanelli, L., Bacchelli, A., and Lanza, M. Seahawk: Stack overflow in the ide. In Proceedings of the 2013 International Conference on Software Engineering, IEEE Press (2013), 1295--1298. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Raymond, E. S. The Cathedral and the Bazaar, 1st ed. O'Reilly & Associates, Inc., Sebastopol, CA, USA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Retelny, D., Robaszkiewicz, S., To, A., Lasecki, W. S., Patel, J., Rahmati, N., Doshi, T., Valentine, M., and Bernstein, M. S. Expert crowdsourcing with flash teams. In Proceedings of the 27th annual ACM symposium on User interface software and technology, ACM (2014), 75--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Robillard, M. P., Walker, R. J., and Zimmermann, T. Recommendation systems for software engineering. Software, IEEE 27, 4 (2010), 80--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Schenk, J., Prechelt, L., and Salinger, S. Distributed-pair programming can work well and is not just distributed pair-programming. In Companion Proceedings of the 36th International Conference on Software Engineering, ACM (2014), 74--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Sillito, J., Murphy, G. C., and De Volder, K. Asking and answering questions during a programming change task. Software Engineering, IEEE Transactions on 34, 4 (2008), 434--451. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Sinan Yasar, D. Y. Koding, 2012. Accessed: April, 2016.Google ScholarGoogle Scholar
  41. Steinmacher, I., Silva, M. A. G., and Gerosa, M. A. Barriers faced by newcomers to open source projects: a systematic review. In Open Source Software: Mobile Open Source Technologies. Springer, 2014, 153--163.Google ScholarGoogle Scholar

Index Terms

  1. Codeon: On-Demand Software Development Assistance

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      CHI '17: Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems
      May 2017
      7138 pages
      ISBN:9781450346559
      DOI:10.1145/3025453

      Copyright © 2017 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 2 May 2017

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      CHI '17 Paper Acceptance Rate600of2,400submissions,25%Overall Acceptance Rate6,199of26,314submissions,24%

      Upcoming Conference

      CHI '24
      CHI Conference on Human Factors in Computing Systems
      May 11 - 16, 2024
      Honolulu , HI , USA

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader