As important as the technical factors may affect performance of end-user programming, they may be dominated by contextual factors. End-users are, by most definitions, people who are primarily view a computer as a tool to be used to accomplish a goal. A computer is just another piece of equipment that they operate. From this perspective, end user programming, even if done successfully, may have undesirable consequences: [1] Customizing your software may mean that you get to do more of things you don't like to do. In many environments, performing a task well means that you get to do more of it. If you customize your software so that you are faster/more efficient than other people at a task, you will probably get assigned to do that task more often. If you customized you software so that a task took less of your time, this is probably not what you wanted to happen. This extends to the customization activity itself; if you're good at it, other people will regard you as selfish and cruel if you don't help them. [2] Customizing your software may mean that you get less help when you have problems. As many who have called their local computer support organization or sat for hours on a telephone support line have noticed, to the extent that your software differs in even the most inconquential respect from the default or most common, the less likely you are to get effective help. (In some CAD environments, a desired feature of a CAD package is that the system administrator can block users from customizations since end user customization raises training and support costs.) [3] Interest in customizing your software may be viewed as lack of interest in other, more important aspects of your job. Even if the results of the customization save far more time than they cost, the question may get asked, why didn't you spend as much effort in improving the more important aspects of your job. Ruven Brooks
