The emergence of production rules as a programming technique has stimulated the creation of many varieties of expert systems: adviser, consultants, intelligent computer-assisted instruction, oracles, and various decision aids. Applications have ranged from medicine, to computer system configuration, to automobile repair, to financial decision making, and to many other domains (Waterman, 1986). Production rules have multiple variations, but the central theme is that a system consists of hundreds or thousands of IF-THEN rules and a large unstructured set of facts. If the antecedent conditions (IF part) are satisfied by the facts then the rule "fires" and the consequents (THEN part) are carried out. Rules may be written and stored in any order. All rules whose antecedents are satisfied may fire, but the order of firing is unpredictable. The nonsequential, nonprocedural behaviour and the random firing order are often cited as benefits that free up the programmer to make incremental changes easy. A few rules can be written and the system is quickly working, even though the refinements to make a complete system may take months or years. On the other hand, this approach is sometimes seen as chaotic, unstructured, or undisciplined by those who worry about the difficulties of debugging, error tracing, and predictability. The unique nature of rule-based programming suggests that special techniques for designing, programming, browsing, debugging, testing, and documenting are necessary for expert systems. This chapter explores some possibliities for programmer and user interface design for expert systems. Rule-based systems may be well suited for many programming situations, but an interactive system must have a good user interface to succeed. The simple question-and-answer dialogue style (teletype) may be inappropriate for many applications where greater visibility, user control, and user initiative is required. All rule-based systems must provide programmers with good facilities for managing the user interface or provide an exit to a more procedural language with screen manipulation facilities. Rule-based systems are quickly being reshaped to meet the demands of professional system developers. Rule bases are being integrated with data bases, computational tools, communications facilities, graphic manipulation software, etc. The blend of techniques will lead to more powerful systems that ease the programmer's burden and increase the quality of service to the end users.