Computer users have rapidly increased in both number and diversity. They include managers, accountants, engineers, home makers, teachers, scientists, health care workers, insurance adjusters, salesmen, and administrative assistants. Many of these people work on tasks that rapidly vary on a yearly, monthly, or even daily basis. Consequently, their software needs are diverse, complex, and frequently changing. Professional software developers cannot directly meet all of these needs because of their limited domain knowledge and because their development processes are too slow.
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” . 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 , EUD “scales out” software development activities by enabling a much larger pool of people to participate.
The chapter was written by Margaret Burnett, professor of computer science at the School of Electrical Engineering and Computer Science at Oregon State University, and Christopher Scaffidi, assistant professor of computer science in the School of EECS at Oregon State University, and includes also a video conversation with them.