Making End User Development More Natural
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.
KeywordsSpreadsheets exploratory programming data analysis the Natural Programming Group
This article grows out of over 20 years of work by the Natural Programming group by more than 50 students, staff and postdocs in addition to the authors, and we thank them all for their contributions. The work summarized here has been funded at least by SAP, Adobe, IBM, Microsoft, Yahoo! and multiple NSF grants including CNS-1423054, IIS-1314356, IIS-1116724, IIS-0329090, CCF-0811610, IIS-0757511, and CCR-0324770. Any opinions, findings and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect those of any of the sponsors.
- Buchen, L. (2009). Robot makes scientific discovery all by itself. Wired UK Online. https://www.wired.com/2009/04/robotscientist/.
- Chang, K., & Myers, B.A. (2014a, October 5–8). Creating interactive web data applications with spreadsheets. In UIST’14: ACM Symposium on User Interface Software and Technology (pp. 87–96). Honolulu, Hawaii.Google Scholar
- Chang, K., & Myers, B.A. (2014b, July 28–August 1). A spreadsheet model for using web service data. In VL/HCC’14: IEEE Symposium on Visual Languages and Human-Centric Computing (pp. 169–176). Melbourne, Australia.Google Scholar
- Chang, K., & Myers, B.A. (2016, May 7–12). Using and exploring hierarchical data in spreadsheets. In Proceedings CHI’2016: Human Factors in Computing Systems (pp. 2497–2507). San Jose, CA.Google Scholar
- Clark, L. (2012). Google’s artificial brain learns to find cat videos. Wired UK Online. https://www.wired.com/2012/06/google-x-neural-network/.
- Cypher, A., Halbert, D. C., Kurlander, D., Lieberman, H., Maulsby, D., Myers, B. A., Turransky, A. (1993). Watch what I do: programming by demonstration. Cambridge, MA: MIT Press.Google Scholar
- Fisher, II, M., & Rothermel, G. (2004). The EUSES spreadsheet corpus: a shared re-source for supporting experimentation with spreadsheet dependability mechanisms. Lincoln: University of Nebraska. Technical Report 04-12-03.Google Scholar
- Grigoreanu, V., Fernandez, R., Inkpen, K., Robertson, G. (2009, September 20–24). What designers want: needs of interactive application designers. In IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC’09 (pp. 139–146). Corvallis, Oregon.Google Scholar
- Henley, A.Z., & Fleming, S.D. (2016, September 4–8). Yestercode: improving code-change support in visual dataflow programming environments. In: VL/HCC’16: IEEE Symposium on Visual Languages and Human-Centric Computing. Cambridge.Google Scholar
- Hill, C., Bellamy, R., Erickson, T., Burnett, M. (2016). Trials and tribula-tions of developers of intelligent systems: a field study. In VL/HCC’2016: IEEE Symposium on Visual Lan-guages and Human-Centric Computing (pp. 162–170). Denver, CO.Google Scholar
- Kery, M.B., Horvath, A., Myers, B.A. (2017, May 6–11). Variolite: supporting exploratory programming by data scientists. In Proceedings CHI’2017: Human Factors in Computing Systems (pp. 1265–1276). Denver, CO.Google Scholar
- Ko, A.J., & Myers, B.A. (2004, April 24–29). Designing the whyline, a debugging interface for asking why and why not questions about runtime failures. In Proceedings CHI’2004: Human Factors in Computing Systems (pp. 151–158). Vienna, Austria.Google Scholar
- Ko, A.J., & Myers, B.A. (2009, April 4–9). Finding causes of program output with the java whyline. In CHI’2009: Human Factors in Computing Systems (pp. 1569–1578). Boston, MA.Google Scholar
- Ko, A.J., Myers, B.A., Aung, H.H. (2004, September 26–29). Six learning barriers in end-user programming systems. In IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 199–206). Rome, Italy.Google Scholar
- Kuttal, S.K., Sarma, A., Rothermel, G. (2011). History repeats itself more easily when you log it: versioning for mashup. In IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (pp. 69–72). Pittsburgh, PA.Google Scholar
- Li, T., Azaria, A., Myers, B. (2017, May 6–11). SUGILITE: creating multimodal smartphone automation by demonstration. In Proceedings CHI’2017: Human Factors in Computing Systems (pp. 6038–6049). Denver, CO.Google Scholar
- Lin, J., Wong, J., Nichols, J., Cypher, A., Lau, T. A. (2009). End-user programming of mashups with vegemite. Proceedings of the 14th International Conference on Intelligent User Interfaces (pp. 97–106). Sanibel Island, FL: ACM.Google Scholar
- Loksa, D., Ko, A. J., Jernigan, W., Oleson, A., Mendez, C. J., Burnett, M. M. (2016). Programming, problem solving, and self-awareness: effects of explicit guidance. Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems (pp. 1449–1461). Santa Clara, CA: ACM.CrossRefGoogle Scholar
- Muncy, J. (2016). Making AI play lots of videogames could be huge (No, Seriously). Wired UK Online. https://www.wired.com/2016/04/videogames-ai-learning/.
- Myers, B.A. (1991, November). Separating application code from toolkits: eliminating the spaghetti of call-backs. In UIST’91: ACM SIGGRAPH Symposium on User Interface Software and Technology (pp. 211–220). Hilton Head, SC.Google Scholar
- Myers, B.A. (1998, April). Scripting graphical applications by demonstration. In SIGCHI’98: Human Factors in Computing Systems (pp. 534–541). Los Angeles, CA.Google Scholar
- Myers, B.A., Park, S.Y., Nakano, Y., Mueller, G., Ko, A. (2008, September 15–18). How designers design and program interactive behaviors. In 2008 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC’08 (pp. 185–188). Herrsching am Ammersee, Germany.Google Scholar
- Norman, D. A. (1988). The design of everyday things. New York: Doubleday.Google Scholar
- Oney, S., Myers, B.A., Brandt, J. (2012, October 7–10). ConstraintJS: programming interactive behaviors for the web by integrating constraints and states. In UIST’2012: ACM Symposium on User Interface Software and Technology (pp. 229–238). Cambridge, MA.Google Scholar
- Oney, S., Myers, B.A., Brandt, J. (2014, October 5–8). InterState: a language and environment for expressing interface behavior. In ACM Symposium on User Interface Software and Technology, UIST’14 (pp. 263–272). Honolulu, Hawaii.Google Scholar
- O’Toole, J. (2014, February 28). Mobile apps overtake PC Internet usage in U.S. CNN Money. http://money.cnn.com/2014/02/28/technology/mobile/mobile-apps-internet/.
- Ozenc, K., Kim, M., Zimmerman, J., Oney, S., Myers, B. (2010, April 10–15). How to support designers in getting hold of the immaterial material of software. In CHI’2010: Human Factors in Computing Systems (pp. 2513–2522). Atlanta, GA.Google Scholar
- Park, S., Myers, B., Ko, A. (2008, September 15–18). Designers’ natural descriptions of interactive behaviors. In 2008 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC’08 (pp. 185–188). Herrsching am Ammersee, Germany.Google Scholar
- Patel, K. D. (2013). Lowering the barrier to applying machine learning. Seattle, WA: University of Washington. PhD Dissertation.Google Scholar
- Scaffidi, C., Myers, B., Shaw, M. (2008, May 10–18). Topes: reusable abstractions for validating data. In ICSE’08: International Conference on Software Engineering (pp. 1–10). Leipzig, Germany.Google Scholar
- Sheil, B. (1983, February). Environments for exploratory programming. In Datamation. Reprinted in in “Papers on Interlisp-D,” Sheil, B.A. and Masinter, L.M., eds., Xerox PARC Tech Report CIS-5.Google Scholar
- Smith, A. (2015, April 1). U.S. smartphone use in 2015. Pew Research Center. http://www.pewinternet.org/2015/04/01/us-smartphone-use-in-2015/.
- Sun, M., Chen, Y.N., Rudnicky, A.I. (2016, March 10). Learning user intentions spanning multiple domains. In Proceedings of IUI 2016 Workshop on Interacting with Smart Objects (SmartObjects 2016). Sonoma, California.Google Scholar
- Yang, H., Pupons-Wickham, D., Chiticariu, L., Li, Y., Nguyen, B., Carreno-Fuentes, A. (2013). I can do text analytics!: designing development tools for novice developers. In CHI’2013: Human Factors in Computing Systems (pp. 1599–1608). Paris, France.Google Scholar
- Yoon, Y.S., Koo, S., Myers, B.A. (2013, September 15–19). Visualization of fine-grained code change history. In IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’13) (pp. 119–126). San Jose, CA.Google Scholar
- Yoon, Y.S., & Myers, B.A. (2012, June 2). An exploratory study of backtracking strategies used by developers. In Cooperative and Human Aspects of Software Engineering (CHASE’2012), An ICSE 2012 Workshop (pp. 138–144). Zurich, Switzerland.Google Scholar
- Yoon, Y.S., & Myers, B.A. (2014, 28 July–1 August). A longitudinal study of programmers’ backtracking. In IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’14) (pp. 101–108). Melbourne, Australia.Google Scholar
- Yoon, Y.S., & Myers, B.A. (2015, May 16–24). Supporting selective undo in a code editor. In 37th International Conference on Software Engineering, ICSE 2015 (vol. 1; pp. 223–233). Florence, Italy.Google Scholar
- Zang, N., Rosson, M.B., Nasser, V. (2008). Mashups: who? what? why? In CHI’08 Extended Abstracts on Human Factors in Computing Systems (pp. 3171–3176). New York, NY.Google Scholar