The creation of expert systems is one way in which knowledge is codified. In creating an expert system, in general there are three aspects to the codification process: creating a model of the knowledge to be codified; creating the language in which to express the model; and writing messages representing the knowledge in that language. These aspects have different relative importance in different contexts. Referring to four case studies, the paper argues further that codification through creating expert systems is not uniformly successful and part of the variation has to do with the nature of the knowledge, or intellectual process or activity being codified, and the difficulty in creating the model. Activities with fixed goals and linear processes lend themselves very well to this form of codification. Processes of categorization and analogy, such as fault detection and repair, are partially successful, tending more often to create systems for experts. Processes involving balancing conflicting goals have, to date, tended to be unsuccessfully codified. These process types involve knowledge or understanding at deeper and deeper levels of abstraction of the overall processes and overarching goals. The more abstract and less concrete the knowledge involved in the task, the more difficult it is to codify it.