Why PBD systems fail: Lessons learned for usable AI

Programming by demonstration systems have long attempted to make it possible for people to program computers without writing code. These systems typically employ artificial intelligence techniques to learn from user behavior in order to predict their future behavior. However, while these systems have resulted in many publications in AI venues, none of the technologies have yet achieved widespread adoption. Usability remains a critical barrier to their success. Based on lessons learned from three different programming by demonstration systems, we present a a set of guidelines to consider when designing usable AI-based systems.