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

Codeon: On-Demand Software Development Assistance

Published: 02 May 2017 Publication 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.

Supplementary Material

suppl.mov (pn4205p.mp4)
Supplemental video

References

[1]
Upwork inc. (formerly odesk), https://www.upwork.com, 2015. Accessed: April, 2016.
[2]
Ackerman, M. S. Augmenting organizational memory: a field study of answer garden. ACM Transactions on Information Systems (TOIS) 16, 3 (1998), 203--224.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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).
[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.
[14]
Cockburn, A., and Williams, L. The costs and benefits of pair programming. Extreme programming examined (2000), 223--247.
[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.
[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).
[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).
[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.
[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.
[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.
[21]
Inc., C. Code mentor, https://codementor.io/, 2014. Accessed: April, 2016.
[22]
Inc., C. I. Cloud9 ide, https://c9.io, 2010. Accessed: April, 2016.
[23]
Inc, H. Hack.hands(), https://hackhands.com/, 2015. Accessed: April, 2016.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[32]
Olson, G. M., and Olson, J. S. Distance matters. Human-computer interaction 15, 2 (2000), 139--178.
[33]
Overflow, S. Stack overflow, https://stackoverflow.com/, 2015. Accessed: April, 2016.
[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.
[35]
Raymond, E. S. The Cathedral and the Bazaar, 1st ed. O'Reilly & Associates, Inc., Sebastopol, CA, USA, 1999.
[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.
[37]
Robillard, M. P., Walker, R. J., and Zimmermann, T. Recommendation systems for software engineering. Software, IEEE 27, 4 (2010), 80--86.
[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.
[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.
[40]
Sinan Yasar, D. Y. Koding, 2012. Accessed: April, 2016.
[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.

Cited By

View all
  • (2025)Generative Co-Learners: Enhancing Cognitive and Social Presence of Students in Asynchronous Learning with Generative AIProceedings of the ACM on Human-Computer Interaction10.1145/37011989:1(1-24)Online publication date: 10-Jan-2025
  • (2024)VizGroup: An AI-assisted Event-driven System for Collaborative Programming Learning AnalyticsProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676347(1-22)Online publication date: 13-Oct-2024
  • (2024)Developer Experiences with a Contextualized AI Coding Assistant: Usability, Expectations, and OutcomesProceedings of the IEEE/ACM 3rd International Conference on AI Engineering - Software Engineering for AI10.1145/3644815.3644949(81-91)Online publication date: 14-Apr-2024
  • Show More Cited By

Index Terms

  1. Codeon: On-Demand Software Development Assistance

    Recommendations

    Comments

    Information & Contributors

    Information

    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
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 02 May 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. crowdsourcing
    2. development support
    3. intelligent assistants

    Qualifiers

    • Research-article

    Funding Sources

    • The University of Michigan

    Conference

    CHI '17
    Sponsor:

    Acceptance Rates

    CHI '17 Paper Acceptance Rate 600 of 2,400 submissions, 25%;
    Overall Acceptance Rate 6,199 of 26,314 submissions, 24%

    Upcoming Conference

    CHI 2025
    ACM CHI Conference on Human Factors in Computing Systems
    April 26 - May 1, 2025
    Yokohama , Japan

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)41
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 13 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2025)Generative Co-Learners: Enhancing Cognitive and Social Presence of Students in Asynchronous Learning with Generative AIProceedings of the ACM on Human-Computer Interaction10.1145/37011989:1(1-24)Online publication date: 10-Jan-2025
    • (2024)VizGroup: An AI-assisted Event-driven System for Collaborative Programming Learning AnalyticsProceedings of the 37th Annual ACM Symposium on User Interface Software and Technology10.1145/3654777.3676347(1-22)Online publication date: 13-Oct-2024
    • (2024)Developer Experiences with a Contextualized AI Coding Assistant: Usability, Expectations, and OutcomesProceedings of the IEEE/ACM 3rd International Conference on AI Engineering - Software Engineering for AI10.1145/3644815.3644949(81-91)Online publication date: 14-Apr-2024
    • (2024)CoPrompt: Supporting Prompt Sharing and Referring in Collaborative Natural Language ProgrammingProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642212(1-21)Online publication date: 11-May-2024
    • (2024)Understanding how early-stage researchers leverage socio-technical affordances for distributed research supportInformation and Software Technology10.1016/j.infsof.2023.107340165:COnline publication date: 1-Jan-2024
    • (2024)Curio: Enhancing STEM Online Video Learning Experience Through Integrated, Just-in-Time Help-SeekingTechnology Enhanced Learning for Inclusive and Equitable Quality Education10.1007/978-3-031-72315-5_30(437-451)Online publication date: 13-Sep-2024
    • (2023)Streaming software development: Accountability, community, and learningJournal of Systems and Software10.1016/j.jss.2023.111630199(111630)Online publication date: May-2023
    • (2023)A controlled experiment on the impact of microtasking on programmingEmpirical Software Engineering10.1007/s10664-022-10226-228:1Online publication date: 1-Jan-2023
    • (2022)SemanticOn: Specifying Content-Based Semantic Conditions for Web Automation ProgramsProceedings of the 35th Annual ACM Symposium on User Interface Software and Technology10.1145/3526113.3545691(1-16)Online publication date: 29-Oct-2022
    • (2022)Katika: An End-to-End System for Authoring Amateur Explainer Motion Graphics VideosProceedings of the 2022 CHI Conference on Human Factors in Computing Systems10.1145/3491102.3517741(1-14)Online publication date: 29-Apr-2022
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media