End-user computing, in which the programming and operation of a computer is performed by the person who uses the results, has several advantages, including: 1. reduced communication errors and application time, 2. decreased dependence on a centralized information systems development staff, 3. reduced wait for a central staff person to be assigned to a project, and 4. encouragement of simple uses of the computer, experimentation, and innovation. On the other hand, there are possible hidden costs associated with: 1. novices defining requirements, 2. end users designing and developing applications, 3. private systems rather than position systems, 4. errors and inadequate testing, 5. overanalysis, 6. incompatibilities, and 7. training. Some disadvantages and hidden costs can be minimized by an awareness of potential costly behaviors or overcome by proper training or organizational policies and procedures.