End-user development

End-user development (EUD) or end-user programming (EUP) refers to activities and tools that allow end-users – people who are not professional software developers – to program computers. People who are not professional developers can use EUD tools to create or modify software artifacts (descriptions of automated behavior) and complex data objects without significant knowledge of a programming language. In 2005 it was estimated (using statistics from the U.S. Bureau of Labor Statistics) that by 2012 there would be more than 55 million end-user developers in the United States, compared with fewer than 3 million professional programmers.[1] Various EUD approaches exist, and it is an active research topic within the field of computer science and human-computer interaction. Examples include natural language programming,[2][3] spreadsheets,[4] scripting languages (particularly in an office suite or art application), visual programming, trigger-action programming and programming by example.

The most popular EUD tool is the spreadsheet.[4][5] Due to their unrestricted nature, spreadsheets allow relatively un-sophisticated computer users to write programs that represent complex data models, while shielding them from the need to learn lower-level programming languages.[6] Because of their common use in business, spreadsheet skills are among the most beneficial skills for a graduate employee to have, and are therefore the most commonly sought after[7] In the United States of America alone, there are an estimated 13 million end-user developers programming with spreadsheets[8]

The programming by example (PbE) approach reduces the need for the user to learn the abstractions of a classic programming language. The user instead introduces some examples of the desired results or operations that should be performed on the data, and the PbE system infers some abstractions corresponding to a program that produces this output, which the user can refine. New data may then be introduced to the automatically created program, and the user can correct any mistakes made by the program in order to improve its definition. Low-code development platforms are also an approach to EUD.

One evolution in this area has considered the use of mobile devices to support end-user development activities. In this case previous approaches for desktop applications cannot be simply reproposed, given the specific characteristics of mobile devices. Desktop EUD environments lack the advantages of enabling end users to create applications opportunistically while on the move.[9]

More recently, interest in how to exploit EUD to support development of Internet of Things applications has increased. In this area trigger-action programming seems a promising approach.[10]

Lessons learned from EUD solutions can significantly influence the software life cycles for commercial software products, in-house intranet/extranet developments and enterprise application deployments.

  1. ^ Scaffidi, C.; Shaw, M.; Myers, B. (2005-09-01). "Estimating the Numbers of End Users and End User Programmers". 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05). pp. 207–214. doi:10.1109/VLHCC.2005.34. ISBN 978-0-7695-2443-6. S2CID 14608501.
  2. ^ Little, Greg, and Robert C. Miller. "Translating keyword commands into executable code." Proceedings of the 19th annual ACM symposium on User interface software and technology. ACM, 2006.
  3. ^ Bruckman, Amy, and Elizabeth Edwards. "Should we leverage natural-language knowledge? An analysis of user errors in a natural-language-style programming language." Proceedings of the SIGCHI conference on Human Factors in Computing Systems. ACM, 1999. APA
  4. ^ a b Burnett, Margaret M.; Scaffidi, Christopher (January 2024). End-User Development. Interaction-Design.org. at "Encyclopedia of Human-Computer Interaction".
  5. ^ Hornsby, Peter (2009-08-03). "Empowering Users to Create Their Own Software". UXmatters. Retrieved 2014-01-31.
  6. ^ Abraham, R.; Burnett, M; Erwig, M (2009). "Spreadsheet programming". Wiley Encyclopedia of Computer Science and Engineering. pp. 1–10.
  7. ^ Kruck, S. & Sheetz, S., 2001. Spreadsheet accuracy theory Archived 2018-08-18 at the Wayback Machine. Journal of Information Systems Education.
  8. ^ Scaffidi, C., Shaw, M. & Myers, B., 2005. Estimating the Numbers of End Users and End User Programmers Archived 2011-09-12 at the Wayback Machine. 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’05), pp.207–214.
  9. ^ Paternò F., 2013, ISRN Software Engineering, End User Development: Survey of an Emerging Field for Empowering People
  10. ^ Ghiani, G., Manca, M., Paternò, F., Santoro, C.: Personalization of Context-dependent Applications through Trigger-Action Rules. ACM Transactions on Computer-Human Interaction, Vol.24, Issue 2, Article N.14, April 2017.

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search