Skip to content

End-user programming

Enabling the people using software to modify the software to better suit their contextual needs. Extends or enabled by the protean nature of digital technology - one of the key affordances-of-digital-technology. Related to diy-software-development-literature.

Interesting the use of "user", potentially an individual term. Each user should be able to program, but the 90/9/1 rule and similar would suggest that only a small percentage of users will actually do so. Should the focus be more community focused - end-user community programming? Enabling the full community of users to inform and benefit from those within the community that do program?

Misc quotes#

Kaliski et al (2019) suggest three important qualities for EUP

  • Embodiment,
  • Living systems,
  • in-place toolchains.

End-user development (EUD) helps to solve this problem. EUD is “a set of methods, techniques and tools that allow users of software systems, who are acting as non-professional software developers, at some point to create, modify, or extend a software artifact” (Lieberman, Paterno, Klann, and Wulf 2006). In particular, EUD enables end users to design or customize the user interface and functionality of software. This is valuable because end users know their own context and needs better than anybody else, and they often have real-time awareness of shifts in their respective domains. Through EUD, end users can tune software to fit their requirements more closely than would be possible without EUD. Moreover, because end users outnumber professional software developers by a factor of 30-to-1 (Figure 1), EUD “scales out” software development activities by enabling a much larger pool of people to participate. (Scaffidi and Burnett, 2011)

References#

Szymon Kaliski, Adam Wiggins, James Lindenbaum, (2019) End-user programming

Scaffidi, B. C., & Burnett, M. (2011). End-user development.