Many highly innovative and useful software packages are commercial failures because they are not approachable for the novice or less experienced computer user. The problem, often, is that the software is designed from the perspective of the developer rather than that of the end user. Sequences of required keystrokes or choices of keystrokes that may be incredibly obvious to the programmer are often totally unknown and puzzling to a user. So-called in-built "help" features employ a system of categories or classifications that may be evident to the developers, but are hardly intelligible to the user. It is not uncommon for a user to be led down a path in an application and to be left hopelessly stranded because there is no clear indication of what is required next. If software is designed from the standpoint of the naive user, many such incomprehensible dilemmas can be eliminated entirely.
Also, much software is packed with enormous amounts of detail, makes too many assumptions regarding user know-how, and is poorly organized. If you design computer software, ask yourself this: "How can I teach a total novice the most essential elements of my program in one hour?" Or: "What kind of software can I write so that it will meet the needs of 90-95% of users (the inexperienced) rather than the 5-10% or fewer experienced users who must have enormously varied features and capabilities?" Again: "How can I organize my software features, as they are presented to users, so that the most basic features required by 90-95% of users will be immediately accessible and apparent, with the remaining more complex and esoteric features delegated to a secondary position?
An application program, to be commercially successful, need not have massive amounts of graphics, color options, or varied and graphically interesting window designs. Instead, it needs to be user oriented: simple in organization, easy to learn, easy to navigate (requiring the most economical series of keystrokes to achieve each objective -- developers should not forget the lessons of time and motion analysis), and possess a coherent logic that is learned, relearned, and rehearsed as the user employs its various features.
Nevertheless, much software is still exclusively designed by expert engineers who only may have an intuitive or vague appreciation of user needs and requirements. The exceptions are software designers who recognize the paramount importance of user-friendliness of a product and test their completed software with groups of paid participant-users. This, unfortunately, may be too little and too late. Instead, the expense of such testing and of the consequent revisions can be obviated by incorporating a psychological perspective in the design stage.
Written by Albert Mehrabian
firstname.lastname@example.org / Thu Mar 2 18:41:39 EST 2000