Making End User Development More Natural

EUD 2017

Abstract

When end users approach a development task, they bring with them a set of techniques, expressions, and knowledge, which can be leveraged in order to make the process easier. The Natural Programming Project has been working for over twenty years to better understand how end users think about their tasks, and to develop new ways for users to express those tasks that will be more “natural,” by which we mean closer to the way they think. Our chapter in the previous book covered the first 10 years of this research; and here we summarize the most recent 10 years. This includes studies on barriers that impede EUD, and a new tool that helps with the understanding and debugging barriers by showing developers why their program has its current behavior. We also describe a tool that we created to help EUDs input, process, and transform data in the context of spreadsheets and web pages. Interaction designers are a class of EUDs that may need to program interactive behaviors, so we studied how they naturally express those behaviors, and then built a spreadsheet-like tool to allow them to author new behaviors. Another spreadsheet tool we created helps EUDs access web service data without writing code, and extends the familiar spreadsheet to support analyzing the acquired web-based hierarchical data and programming data-driven GUI applications. Finally, EUDs often need to engage in exploratory programming, where the goals and tasks are not well-formed in advance. We describe new tools to help users selectively undo past actions, along with on-going research to help EUDs create more efficient behaviors on smartphones and facilitate variations when performing data analysis.

Cite this paper (BibTeX)

@incollection{myers2017making,
  author    = {Myers, Brad and Ko, Amy and Scaffidi, Chris and Oney, Steve and Yoon, YoungSeok and Chang, Kerry and Kery, Mary Beth and Li, Toby},
  title     = {Making End User Development More Natural},
  booktitle = {New Perspectives in End-User Development},
  year      = {2017},
  doi       = {10.1007/978-3-319-60291-2_1},
  url       = {https://doi.org/10.1007/978-3-319-60291-2_1}
}