Towards Providing On-Demand Expert Support for Software Developers

Software development is an expert task that requires complex reasoning and the ability to recall language or API-specific details. In practice, developers often seek support from IDE tools, Web resources, or other developers to help fill in gaps in their knowledge on-demand. In this paper, we present two studies that seek to inform the design of future systems that use remote experts to support developers on demand. The first explores what types of questions developers would ask a hypothetical assistant capable of answering any question they pose. The second study explores the interactions between developers and remote “experts” in supporting roles. Our results suggest eight key system features needed for on-demand re-mote developer assistants to be effective, which has implications for future human-powered development tools.