End-user development

From Wikipedia, the free encyclopedia

End-user development (EUD) is a research topic within the field of computer science, describing activities or techniques that allow people who are not professional developers to create or modify a software artifact. A typical example of EUD is macro programming to extend and adapt an office suite, but End User Development is not limited to programming. EUD insights can significantly define and constrain large-scale enterprise application deployments. Other examples of End User Development include the creation and modification of:

  • Web pages - plain HTML or HTML and scripting
  • Wikis - a collaborative End-User Development process
  • Spreadsheet models e.g. used for budgeting or risk analysis
  • 3D models created with end-user oriented tools and approaches such as Sketchup

Contents

[edit] Cost-Benefit Modelling of End User Development

According to one analysis, EUD essentially out-sources development effort to the end user. Because there is always some effort to learn an EUD tool motivation depends on users' confidence that it will empower their work, save time on the job and/or raise productivity. In this model the benefits to users are initially based on marketing, demonstrations and word-of-mouth. Once the technology is put into use experience of actual benefits becomes the key motivator.[1]

This study defines costs as the sum of:

  • Technical cost: the price of the technology and the effort to install it
  • Learning cost: the time taken to understand the technology
  • Development cost: the effort to develop applications using the technology
  • Test and debugging cost: the time taken to verify the system.

The first and second costs are incurred once during acquisition, whereas the third and fourth are incured every time an application is developed. Benefits (which may be perceived or actual) are seen as:

  • Functionality delivered by the technology
  • Flexibility to respond to new requirements
  • Usability of applications produced
  • Overall quality of the applications produced.

[edit] Other Aspects of End-user development

Commentators have been concerned that end users do not understand how to test and secure their applications - "It’s simply unfathomable that we could expect security... from the vast majority of software applications out there when they’re written with little, if any, knowledge of generally accepted good practices such as specifying before coding, systematic testing, and so on.... How many X for Complete Idiots (where “X” is your favorite programming language) books are out there? I was initially amused by this trend, but recently I’ve become uneasy thinking about where these dabblers are applying their newfound knowledge."[2]

In response to this End User Software Engineering (EUSE) has been defined as a higher level of EUD, whereby end users become motivated to consider security and verifiability when developing their solutions.[3]

All the above approaches assume that the user is developing software using tools already approved by a central IT function where "the user is naive, with little understanding of data processing.... but users should no longer be considered universally ignorant of information systems. Moreover, sophisticated information center veterans, as well as microcomputer users, can and do contribute to system development. They are capable of preliminary experimentation with system requirements, in particular those related to user interface."[4] In this case the assumption is that the tools have a high learning curve and require exceptional expertise to be deployed in a secure, reliable and scalable manner.

An alternative model is that end users (and/or their consultants) employ declarative tools that support rigorous business and security rules at the expense of performance and scalability. This leads to a model whereby Requirements analysis and prototyping are completed and documented by end user representatives without the intervention of business analysts who may have already accepted the limitations of a specific Application or Software framework. Senior management support for such end user initiatives depends on their attitude to existing or potential Vendor lock-in. In the most extreme cases, such end user prototypes formally prove the need for functionality that may result in IT contractors failing catastrophically, so this is not an approach encouraged by most solution providers.

[edit] See also

[edit] External links

[edit] References

  1. ^ Sutcliffe, Alistair (July 2005). "Evaluating the costs and benefits of end-user development" (pdf). ACM SIGSOFT Software Engineering Notes 30 (4): 1-4. ACM. doi:10.1145/1082983.1083241. ISSN 0163-5948. 
  2. ^ Harrison, Warren. The Dangers of End-User Programming. IEEE Software. Retrieved on 2008-05-28.
  3. ^ End-User Software Engineering: Empirical Findings. Retrieved on 2008=05-28.
  4. ^ Pliskin, Nava; Shoval, Peretz (1987). "End-user prototyping: sophisticated users supporting system development" 4: 7-17. doi:10.1145/1017816.1017817. ISSN 0095-0033. 
Languages