Enabling Data-Driven API Design with Community Usage Data: A Need-Finding Study
Authors
APIs are becoming the fundamental building block of modern software and their usability is crucial to programming efficiency and software quality. Yet API designers find it hard to gather and interpret user feedback on their APIs. To close the gap, we interviewed 23 API designers from 6 companies and 11 open-source projects to understand their practices and needs. The primary way of gathering user feedback is through bug reports and peer reviews, as formal usability testing is prohibitively expensive to conduct in practice. Participants expressed a strong desire to gather real-world use cases and understand users' mental models, but there was a lack of tool support for such needs. In particular, participants were curious about where users got stuck, their workarounds, common mistakes, and unanticipated corner cases. We highlight several opportunities to address those unmet needs, including developing new mechanisms that systematically elicit users' mental models, building mining frameworks that identify recurring patterns beyond shallow statistics about API usage, and exploring alternative design choices made in similar libraries.
Research Questions / Practical Problems
Question signals indexed for this paper.
- 75%
MultiTrack: Multi-User Tracking and Activity Recognition Using Commodity WiFi
CHI '19· Human Pose & Activity Recognition +1
- 75%
Designing Interactive Transfer Learning Tools for ML Non-Experts
CHI '21· AI-Assisted Decision-Making & Automation +1
- 75%
Using Logs Data to Identify When Engineers Experience Flow or Focused Work
CHI '23· Knowledge Worker Tools & Workflows +1
- 75%
Understanding and Supporting Knowledge Decomposition for Machine Teaching
DIS '20· Human-LLM Collaboration +1
- 75%
Facilitating Knowledge Sharing from Domain Experts to Data Scientists for Building NLP Models
IUI '21· Human-LLM Collaboration +1
- 75%
ODEN: Live Programming for Neural Network Architecture Editing
IUI '22· Prototyping & User Testing +1
- 75%
DeepFlow: A Flow-Based Visual Programming Tool for Deep Learning Development
IUI '25· Interactive Data Visualization +1
- 75%
Mallard: Turn the Web into a Contextualized Prototyping Environment for Machine Learning
UIST '19· Human-LLM Collaboration +1
- 75%
Skyline: Interactive In-Editor Computational Performance Profiling for Deep Neural Network Training
UIST '20· Interactive Data Visualization +1
- 75%
Relevance and Applicability of Hardware-independent Pointing Transfer Functions
UIST '21· Prototyping & User Testing +1
Based on Jaccard similarity of research subtopics & professions (≥60%)