The understandability of a program specification has a direct bearing on several important aspects of software quality. These include reliability, modifiability, reusability, and maintainability to name a few. The process of comprehension has been studied by psychologists. Their findings have implications for software engineering practises. A survey of pertinent studies in memory usage and comprehension processes reveals motivators for good software engineering practices. Software metrics are used in software engineering to predict human performance, for instance faults per thousand lines of code. A survey of software metrics which are related to human performance is included. Recently proposed metrics are examined. Rules for developing software that respect human limitations are derived based on psychological research and software engineering practises. An empirical study of human performance against a newly proposed metric based on comprehension processes is done using the performance of students on final examinations. The metric, identifier density, is found to predict human error.