The Psychology of Computer Programming Quotes

Rate this book
Clear rating
The Psychology of Computer Programming The Psychology of Computer Programming by Gerald M. Weinberg
606 ratings, 4.06 average rating, 63 reviews
Open Preview
The Psychology of Computer Programming Quotes Showing 1-30 of 32
“Fisher's Fundamental Theorem states—in terms appropriate to the present context—that the better adapted a system is to a particular environment, the less adaptable it is to new environments.”
Gerald Weinberg, The Psychology of Computer Programming
“In fact, the average programming manager would prefer that a project be estimated at twelve months and take twelve than that the same project be estimated at six months and take nine. This is an area where some psychological study could be rewarding, but there are indications from other situations that it is not the mean length of estimated time that annoys people but, rather, the standard deviation in the actual time taken. Thus, most people would prefer to wait a fixed ten minutes for the bus each morning than to wait one minute on four days and twenty-six minutes once a week-. Even though the average wait is six minutes in the second case, the derangement caused by one long and unexpected delay more than compensates for this disadvantage. If”
Gerald M. Weinberg, The Psychology of Computer Programming
“Systems are complex. A computer system is not just hardware, not just software, not even just people plus hardware plus software. The procedures, formal and informal, that have evolved with the system are part of the system; so is the current load on various components, and so is the attitude and experience of the users. Even among the commonly accepted “parts” of a system, clear lines of separation do not exist. Hardware merges with operating system, operating system merges with programming language, programming language merges with debugging tools, debugging tools merge with documentation, and documentation merges with training, and all of them mingle with the social climate in which the system is used.”
Gerald M. Weinberg, The Psychology of Computer Programming
“The value of documentation is only to be realized if the documentation is well done. If it is poorly done, it will be worse than no documentation at all.”
Gerald M. Weinberg, The Psychology of Computer Programming
“Overconfidence by the programmer could be attacked by a system that introduced random errors into the program under test. The location and nature of these errors would be recorded inside the system but concealed from the programmer. The rate at which he found and removed these known errors could be used to estimate the rate at which he is removing unknown errors. A similar technique is used routinely by surveillance systems in which an operator is expected to spend eight hours at a stretch looking at a radar screen for very rare events—such as the passing of an unidentified aircraft. Tests of performance showed that it was necessary to introduce some nonzero rate of occurrence of artificial events in order to keep the operator in a satisfactory state of arousal. Moreover, since these events were under control of the system, it was able to estimate the current and overall performance of each operator.”
Gerald M. Weinberg, The Psychology of Computer Programming
“the job of programming can be fruitfully looked at from the point of view of testing alone—considering that the only real problem in programming is getting the program to work correctly and proving it.”
Gerald M. Weinberg, The Psychology of Computer Programming
“People have lost sight of the original intention of COBOL’s designers. To quote one of them, Jean Sammet: The users for whom COBOL was designed were actually two subclasses of those people concerned with business data processing problems. One is the relatively inexperienced programmer for whom the naturalness of COBOL would be an asset, while the other type of user would be essentially anybody who had not written the program initially. In other words, the readability of COBOL programs would provide documentation to all who might wish to examine the programs, including the supervisory or management personnel. Little attempt was made to cater to professional programmers…”
Gerald M. Weinberg, The Psychology of Computer Programming
“Programming is generally a manual operation—we laugh when someone asks us to “say something in FORTRAN.” It is a written language, and in spite of its resemblance to other written languages, it differs from them in not having a speech system behind it. Not that written languages are simple transcriptions of speech, not at all; but a written language such as English is strongly influenced by its relationship to a spoken language. This influence is not so strong in other written languages, such as those using the Chinese writing system, but the influence—the mutual influence —always exists.”
Gerald M. Weinberg, The Psychology of Computer Programming
“the very first programmer, Lady Lovelace, seems to have had the idea of a programming language as a language as early as 1846. Although she was the niece of Lord Byron, it was not her knowledge of poetry but, rather, of mathematics which led her to think of a symbolic system as a language—for the idea of mathematics as a language seems to go back into the misty ages of the past. Thus, the idea of “programming language” was really born with the idea of programming itself.”
Gerald M. Weinberg, The Psychology of Computer Programming
“… intelligence has less to do with the matter than personality, work habits, and training. These things, unlike intelligence, can be changed by experience later in life, which turns the problem from one of selecting programmers to creating them.”
Gerald M. Weinberg, The Psychology of Computer Programming
“Another essential personality factor in programming is at least a small dose of humility. Without humility, a programmer is foredoomed to the classic pattern of Greek drama: success leading to overconfidence (hubris) leading to blind self-destruction. Sophocles himself could not frame a better plot (to reveal the inadequacy of our powers) than that of the programmer learning a few simple techniques, feeling that he is an expert, and then being crushed by the irresistible power of the computer (the Deus ex Machina).”
Gerald M. Weinberg, The Psychology of Computer Programming
“each program has an appropriate level of care and sophistication dependent on the uses to which it will be put. Working above that level is, in a way, even less professional than working below it. If we are to know whether an individual programmer is doing a good job, we shall have to know whether or not he is working on the proper level for his problem.”
Gerald M. Weinberg, The Psychology of Computer Programming
“Programs, like any other human-made objects, are designed—or should be designed—with a definite lifespan and scope of application in mind. Like the “Deacon’s Masterpiece,” which was “built in such a logical way it ran a hundred years to the day,” a program should have neither over-designed or under-designed parts. Yet it is an occupational disease of programmers to spend more time on those program parts that present, for some reason, the most intellectual challenge rather than on those that require the most work.”
Gerald M. Weinberg, The Psychology of Computer Programming
“In the army—old-fashioned style—every foot-soldier was considered interchangeable with every other. The hierarchical organization, then, was conceived as the structure that could give the fastest and most direct coordination between these interchangeable parts. But a programming project is not a battle, regardless of appearances. There is no need for quite the speed of communication which is necessary under field conditions, nor are the things to be communicated so simple that they can be barked over a two-way radio with shells bursting in the background. What is needed in a programming project is slow, careful communication among teams of people doing very different, highly specialized tasks.”
Gerald M. Weinberg, The Psychology of Computer Programming
“In many programming situations, the primary working unit is a team, not an individual.”
Gerald M. Weinberg, The Psychology of Computer Programming
“The shortsighted or insecure team leader may feel that the best way to please management is to promise them whatever they ask. But, ultimately, what the management wants is kept promises, and these can only be obtained if the team leader can win team acceptance of the promises as their goals. What the team leader must learn is that Managers—no matter how hard they press for promises—really want results. Results will be far more easily obtained if they are obtained in the pursuit of goals set with full team participation.”
Gerald M. Weinberg, The Psychology of Computer Programming
“In studying the factors which go into the satisfaction of working groups, social scientists have isolated four major areas: The material rewards and opportunities. The challenge and the interest of the work itself. The general conditions in the larger organization, such as employee benefits, working conditions, and organization status among similar organizations. The competence of supervisors and leaders.”
Gerald M. Weinberg, The Psychology of Computer Programming
“One typical computing example of social fixation is the adoption of one programming language by an installation. Once the language has been adopted, a new language has more difficulty making an entry, because with most of the people using the old language, advantages accrue to following the beaten path.”
Gerald M. Weinberg, The Psychology of Computer Programming
“A programmer who truly sees his program as an extension of his own ego is not going to be trying to find all the errors in that program. On the contrary, he is going to be trying to prove that the program is correct—even if this means the oversight of errors which are monstrous to another eye. All programmers are familiar with the symptoms of this dissonance resolution—-in others, of course.”
Gerald M. Weinberg, The Psychology of Computer Programming
“human interactions are never narrow, never straight, and hardly ever in the directions shown an organization charts. Many serious mistakes have been made in imagining that formal structure was the only structure in an organization.”
Gerald M. Weinberg, The Psychology of Computer Programming
“Programmers do not ordinarily work in isolation. Although an individual programmer may find herself assigned the task of writing a program, even then she has other programmers to whom she may turn for help—and who, at the same time, may be turning to her.”
Gerald M. Weinberg, The Psychology of Computer Programming
“The Hawthorne Effect (“the process of being observed often motivates people to better performance”) can be the bane of scientific observation.”
Gerald M. Weinberg, The Psychology of Computer Programming
“The social science that provides us with the most useful overall model for computer programming is anthropology. With a little artistic license and stretching of the imagination, we could imagine computer programmers as having a culture—a shared set of beliefs and activities which shape their day-to-day activities.”
Gerald M. Weinberg, The Psychology of Computer Programming
“Human knowledge is by necessity incomplete. We cannot know in advance what we might be able to know and what might be essentially unknowable. But of one thing we can be sure: if we do not try to find things out, we shall never succeed.”
Gerald M. Weinberg, The Psychology of Computer Programming
“The biggest new factor for determining how we judge the quality of code is the economic factor. A program that sells, and makes profits, is obviously better than one that doesn’t.”
Gerald M. Weinberg, The Psychology of Computer Programming
“If a program doesn’t work, measures of efficiency, of adaptability, or of cost of production have no meaning.”
Gerald M. Weinberg, The Psychology of Computer Programming
“More often, then, we will be doing evaluation of programs not with respect to one another but with respect to a situation—a total situation —in which they are developed. Looking honestly at the situation, we are never looking for the best program, seldom looking for a good one, but always looking for one that meets the requirements.”
Gerald M. Weinberg, The Psychology of Computer Programming
“why is it so hard for developers to submit their work for review by others or to try to improve their own skills by reviewing the work of others? Curiously, superior developers tend to find value with walkthrough and inspection processes while the merely clever do not. So, as always, the good get better and the bad get worse.”
Gerald M. Weinberg, The Psychology of Computer Programming
“When we do read code, we find that some of it gets written because of machine limitations, some because of language limitations, some because of programmer limitations, some because of historical accidents, and some because of specifications—both essential and inessential.”
Gerald M. Weinberg, The Psychology of Computer Programming
“Specifications evolve together with programs and programmers. Writing a program is a process of learning—both for the programmer and the person who commissions the program.”
Gerald M. Weinberg, The Psychology of Computer Programming

« previous 1