The Costs and Benefits of End-User Programming

Howie Goodell

The Costs:

How hard is it to give users the ability to program in your system?  That depends on how much programmability you plan to offer, and what methods you intend to use.  Adding preferences merely requires a GUI and some dialogs enabling them to set parameters.   However the degree of "programming" you achieve this way is limited.  On the other hand, a thorough implementation of a scripting language may require: Yet such a tool can let your users program a large and complex application themselves.  You get what you pay for.

Other approaches, such as visual programming (e.g. the "G" language in National Instruments LabviewTM) or Programming by Demonstration PBD, may be better for your users.  Each has its own costs. For example PBD has the smallest cognitive distance between programming and working, because they are the same: you are literally "programming in the user interface". Yet determining your intent in PBD may require sophisticated inferencing and has a chance of error.

If you decide to pay the price and add significant programmability to your system, there are additional costs to consider before you can start to enjoy the payoff.

The bottom line:  adding significant user programmability has large and continuing costs that will shape your job as long as you support your system.

The Benefits:

If your users find the programming features you have added appropriate and useful, the payback can be tremendous. The bottom line:  appropriate user programmability can transform a system, multiplying the effectiveness of programmers and users alike. 
Home  About  New  Techniques  Tools  Bibliography  Researchers  Users  Benefits  Contribute!
Maintained by Howie Goodell