As software becomes more ubiquitous in products and on the Internet, so does the need to develop it. It is estimated that by 2005 in the U.S. alone, there will be 55 million end-user developers compared to 2.75 million professional software developers [1]. End-user development (EUD) is about taking control—not only of personalizing computer applications (end-user computing) and writing programs, but of designing new computer-based applications without ever seeing the underlying program code.
EUD covers a wide area of interests ranging from customizing applications by inputting parameters or style sheets, to controlling a complex device (for example, regulating a home-based heating system), to writing code and scripting interactive Web sites. The technical approaches vary from making computers smarter so they can program by learning the user’s actions and interests, to making programming languages easier to adopt and use, or transforming the nature of programming to design with reusable components.
Do-it-yourself computing is one way to perceive this flourishing field. The goal—and ultimate attraction—is to empower users to design and create without the need for trained programmers or IT departments. But the downside is outsourcing development efforts to end users, who then must agonize over learning to program. Furthermore, with outsourcing come problems with monitoring, quality assurance, and control. Therefore, managing EUD successfully is a key concern.
In this special section, we bring together a set of articles that give readers an in-depth look into the social and business issues of EUD as well as present cutting-edge technology to make EUD easier and more effective for all.
EUD began with the first personal computers and BASIC, later progressing through the information centers and 4th-generation languages of the 1970s. In recent decades it migrated to customizable and extendable applications [4]. Still, most of us do not tailor office products and best-of-breed applications. Indeed, enterprise resource planning (ERP) and component-based solutions require teams of experts to build new applications. So, while technology has delivered the potential for end-user control, it is still too difficult to use.
It is estimated that by 2005 in the U.S. alone, there will be 55 million end-user developers compared to 2.75 million professional software developers.
Several technical, managerial, and social challenges must be solved to make EUD tools easier to use. Controlling and promoting EUD has been a management challenge for years [2]. Indeed, the critical issues involve motivating end users to adopt the technology, controlling development to minimize risks, creating maintainable software, and eliminating inaccurate and contradictory information. The tension between quality assurance and design freedom will always color advances in EUD, but new approaches are emerging.
Technology must improve if EUD is to escape its current niche of highly motivated users willing to endure the pain barrier associated with learning to program. Scientific end users currently do this with standard languages like C++ and Java, but business users generally do not venture beyond tailoring spreadsheets. The quest, therefore, is for easier programming languages.
General-purpose languages must be flexible to deal with a wide range of problems, but with flexibility comes complexity, and the result is a learning curve most users simply cannot be expected to tolerate. Software technology has advanced to the point that we can build tools for end users to design systems by interacting with icons in graphical micro worlds. Software can provide the medium, such as graphical design worlds that mediate the physical process of design. Several articles in this section explore that idea, describing technologies for component-based design environments, help wizards, libraries of patterns, and templates. Several researchers have sought to reduce the learning burden by creating design environments that do not require users to program per se; instead, they design by instructing the machine to learn from examples [3] or by interacting with graphical micro worlds representing real domains. EUD then becomes a two-phase process: designing the design world, followed by designing the applications using the design world. This concept—meta-design—is explored by Fischer et al., and Repenning and Ioannadou describe state-of-the-art technology for creating such design worlds.
A framework for understanding the future requirements for EUD technology is presented by Beringer, while Wulf and Jarke argue the economic motivation for introducing EUD as a means of facilitating and consolidating organizational change. Other technical approaches to improve ease of use include active help to catch spreadsheet mistakes (Burnett et al.); programming by composing designs from components (Morch et al.); development driven by interacting with diagrams as specifications (Berti et al.); and programming environments that guide the user (Meyers et al.). EUD, however, is not just about making programming easier. It also requires field studies exploring how users deal with complexity, using psychological theory to underpin the design of EUD tools (Blackwell).
Our goal with this section is to give readers a view of the current leading edge EUD research, as well as offering a glimpse of the challenges ahead, including solutions for addressing the social and managerial problems of control and relationships for building better technologies to tame the learning burden of EUD tools.
Join the Discussion (0)
Become a Member or Sign In to Post a Comment