I have been reading this abstracts paper from the Dagstuhl Seminar End-User Software Engineering and it has lots of interesting points to make.
It is stated that "The number of end users creating software is far larger than the number of professional programs. These end users are using various languages , dynamic web applications, and scientific simulations. This software needs to be sufficient dependable, but substantial evidence suggests that it is not. " This point refers to that of (Ko) (Carnegie Mellon University) who explains that the goals of end-users may be unrelated to production of code, but instead they are interested in their domain problem, this means that they perceive programming barriers as distractions. Ko explains that end-user programs must be allowed to focus on their goals, and an important part of the solution is to visualize the whole program execution not just the output. A further problem outlined by Ko is that of programs which were intended to be temporary and owned by a particular person becoming central to a company, this often occurs with spreadsheets.
(Henry Lieberman) of MIT Media Laboratory requests "Why is it so much harder to program a computer than simply to use a computer application? arcane programming languages and mystically complex software development techniques. We can do much better. " He argues that researchers should use program transformation, and visualization to make the end-user programming process as automatic as possible. In order that people can become End-User Software Engineers without their even realizing it. This needs to involve interdisciplinary research to combine different research approaches. (Blackwell) also argues the need for interdisciplinary research on the end-user programming problem to identify techniques within software engineering that can assist with this problem.
(Coutaz) explains how Model Driven Engineering and Service Oriented Architecture can be combined. Coutaz also explains that "An interactive system is a graph of models related by mappings and transformations." This would fit in well with the structure of RDF (Resource Description Framework) a Semantic Web standard, which is also a graph structure. Alexander Repenning of University of Lugano explains the need for enhancements to UML (Unified Modeling Language) to aid end-user programming. (Engels) of University of Paderborn also explains that UML should be extended to allow development of user interfaces in order to assist end-users to program. (Repenning) also argues that "Visual programming languages using drag and drop mechanisms as programming approach make it virtually impossible to create syntactic errors." So "With the syntactic challenge being — more or less — out of the way we can focus on the semantic level of end-user programming." (Rosson) of Pennsylvania State University also explains about creation of a web based drag and drop interface. Abraham and (Erwig) Oregon State University integrate spreadsheet modeling to the UML modeling process. (Gerhard Fischer) of University of Colorado explores the concept of meta-design as aimed at creating infrastructures for collaborative design incorporating future uses and problems that can not be fully comprehended during the development of a system. (Dittrich) of University of Copenhagen argues that more research is needed into the software lifecycle and methods and tools needed for end-user developers, especially when they are collaborating. These end-users often need to adjust old software for new purposes. (Costabile and Piccinno) also explain that new methodologies and environments are required for supporting end-user collaborative development
(De Souza) argues that the goal of human-computer interaction (HCI) will evolve from making systems easy to use to making systems that are easy to develop. Lieberman also argues that HCI experts have concentrated on ease of use and should examine ease of programming. (Begel) of Microsoft Research explains that if programming is left only to programmers rather than allowing domain experts to be involved the program becomes a black box and the domain expert can not trust or verify the results. He explains that text based computer languages are often too obscure for end-user programs. Begel also explains that end-users may lack an engineering mindset to form mental models of how to make the computer do what they want. Segal of the Open University argues that professional engineers have a history of programming so can be distinguished from other end-user programs as having fewer problems with coding. (Fischer) explains that it is the mismatches between end-users needs and software support that enables new understandings. Fischer also argues that software development can never be completely delegated to software professionals because domain experts are the only people that fully understand the domain specific tasks that must be performed. He also argues for an approach to enabling end-user programming that makes it interesting to end-users. He explains that often the problem is that end-users find programming boring rather than that they find it hard. (Spahn et al.) Explains that end-users of ERP (Enterprise Resource Planning) systems are domain experts not IT professionals, and this is forcing them to communicate their needs to IT developers. Spahn et algue for the empowerment of users to customize software by providing an abstraction layer to hide technical details and allow for concentrating on business needs.
(Clarke) of Microsoft examines the characteristics of end-user developers in order to assist with meeting their needs. (Fischer) hypothesises that this emphasis on end-user development also changes the emphasis on testing "Software testing is conducted differently. Because domain expert developers these are the primary users, complete testing is not as important as in the case when the developers are not the users. "
End-User Software Engineering — Dagstuhl Seminar — Summary — http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=2007081 — PDF Abstracts and links to papers — http://eusesconsortium.org/docs /dagstuhl_2007.pdf — Margaret M. Burnett, Gregor Engels, Brad A. Myers and Gregg Rothermel — From 18.01.07 to 23.02.07, the Dagstuhl Seminar 07081 End-User Software Engineering was held in the International Conference and Research Center (IBFI) ), Schloss Dagstuhl. During the seminar, several participants presented their current research, and ongoing work and open problems were discussed.
Abraham, R., Erwig, M., 2007. Exploiting Domain-Specific Structures For End-User Programming Support Tools. In: End-User Software Engineering Dagstuhl Seminar.
Begel, A., 2007. End User Programming for Scientists: Modeling Complex Systems. In: End-User Software Engineering Dagstuhl Seminar.
Blackwell, A., 2007. Interdisciplinary Design Research for End-User Software Engineering. In: End-User Software Engineering Dagstuhl Seminar.
Burnett, MM, Engels, G, Myers, BA, Rothermel, G., 2007. End-User Software Engineering Dagstuhl Seminar.
Clarke, S., 2007. What is an End User Software Engineer ?. In: End-User Software Engineering Dagstuhl Seminar.
Costabile, MF, Piccinno, A., 2007. Software environments for supporting End-User Development. In: End-User Software Engineering Dagstuhl Seminar.
Coutaz, J., 2007. Meta-User Interfaces for Ambient Spaces: Can Model-Driven-Engineering Help ?. In: End-User Software Engineering Dagstuhl Seminar.
De Souza, C., 2007. Designers Need End-User Software Engineering. In: End-User Software Engineering Dagstuhl Seminar.
Dittrich, Y., 2007. Rethinking the Software Life Cycle: About the Interlace of Different Design and Development Activities. In: End-User Software Engineering Dagstuhl Seminar.
Engels, G., 2007. Model-Driven Development for End-Users, too !? In: End-User Software Engineering Dagstuhl Seminar.
Fischer, G., 2007. Meta-Design: A Conceptual Framework for End-User Software Engineering. In: End-User Software Engineering Dagstuhl Seminar.
Gross, MD, 2007. Designers Need End-User Software Engineering. In: End-User Software Engineering Dagstuhl Seminar.
Ko, AJ, 2007. Barriers to Successful End-User Programming. In: End-User Software Engineering Dagstuhl Seminar.
Lieberman, H., 2007. End-User Software Engineering Position Paper. In: End-User Software Engineering Dagstuhl Seminar.
Repenning, A., 2007. End-User Design. In: End-User Software Engineering Dagstuhl Seminar.
Rosson, MB, 2007. Position paper for EUSE 2007 at Dagstuhl. In: End-User Software Engineering Dagstuhl Seminar.
Segal, J., 2007. End-User Software Engineering and Professional End-User Developers. In: End-User Software Engineering Dagstuhl Seminar.
Spahn, M., Scheidl, S., Stoitsev, T., 2007. End-User Development Techniques for Enterprise Resource Planning Software Systems. In: End-User Software Engineering Dagstuhl Seminar.