A knowledge-based design (KBD) system applies human expertise to create designs. The right choice of a particular set of heuristics for a given design is considered. The design problem is outlined, and a KB system that automates design in this domain is described. The methods used to deal with the ad hoc nature of such a system are discussed. It is demonstrated that the system generates better designs more often by choosing different sets of design rules in the light of varied situations. The problems, such as how to evaluate, how to redesign, and what is the role of experts in redesign, are studied. The result is a practical, operational system with backtracking capabilities. A practical case in telecommunications is exhibited to show how evaluation and redesign are performed.