More on this book
Community
Kindle Notes & Highlights
there are many possible reasons for antisocial behavior. One potential source of such behavior is a team member who is indeed much more talented than the others, for he may be unable to suppress his impatience.
It is possible to be too smart for programming—if the person is not smart enough to use his intelligence to modify his social behavior and methods of communication.
In training our programmers, we should try to teach them how to follow able leaders and how to grasp leadership opportunities when they themselves are the most qualified in the group.
there is something that we have that they do not—that all-wise machine sitting there like a god in judgment of our work. When a patient recovers, it is the work of the doctor; when a patient dies, it is an act of God. But when a computer program doesn't work, everyone knows—and everyone knows who is to blame.
Such "estimating" might just as well be based on the assumption that the Laws of Thermodynamics would be repealed during the project.
Skill may be hard to come by, but it's always easier to buy or train than compatibility.
as programmers learn they become discontented unless they can apply their knowledge.
a manager must encourage the project to function as a sort of programmer processing plant—with a fresh supply of trainees coming in one end and a stream of experienced leaders coming out the other,
If a programmer is indispensable, get rid of him as quickly as possible.
The "higher" the reviewer, the longer he insisted he must have the reports and the less he actually did with them.
regardless of what some "management information systems" promise, garbage in always yields garbage out—though the converse is not necessarily true.
It is a well-known psychological principle that in order to maximize the rate of learning, the subject must be fed back information on how well or poorly he is doing.
people who feel that their performance is being judged but who have no adequate information on how well they are doing will test the system by trying certain variations.
In psychological testing, when subjects are asked to make judgments along some linear scale, very few subjects will ever choose the end points of the scale.
Pressure from higher up is classically recognized by management manuals as both the way to get work done and the way to destroy a reporting system.
opinions on concrete matters can be easily influenced by the announced opinions of others,
the presence of even a single "ally" gives many a man the courage to see things as they really are.
If a programming project is going to overcome the psychological pitfalls inherent in progress evaluation, some sort of separation between doing the work and evaluating it is essential.
Many of these problems can be overcome if the management of the project can see the operation as a machine for getting the project done, rather than as a pyramid to be climbed for the satisfaction of their personal ambitions.
What is needed in a programming project is slow, careful communication among teams of people doing very different, highly specialized tasks.
In a small survey of working programmers, only 15 percent of the first-line managers were thought to be as skillful as the programmers themselves, and none of the higher-level managers.
Whenever a supervisor is responsible for work he does not understand, he begins to reward workers not for work, but for the appearance of work.
Status symbols are always amusing—to anyone outside the system.
One of the classic status symbols from which programming managers are not exempt is the secretary or the administrative assistant. The difference between these two titles is that secretaries are always female, and administrative assistants may be of either gender. The prettiest secretary may be a status symbol—though an ugly one may be taken as indicating that one's status is so high that one rates a competent secretary.
the same people who can be bound by money can be released by more money.
the lack of software skill never was the problem. Lack of managerial skill was always the problem; lack of software skill was merely a convenient excuse for those managers who lacked esteem.
The individual variations that interest us may be further subdivided into the general categories of "personality," "intelligence," and "training" or "experience."
"Programming"—like "loving"—is a single word that encompasses an infinitude of activities.
nothing antagonizes the professional programmer more than to hear an amateur—having just completed a six-statement program in BASIC to find roots of a quadratic equation—discourse on the theory and practice of programming.
Many years ago, when programming systems were rudimentary, the difference between the professional and amateur was not nearly so pronounced. Today, however, so many of the things amateurs want to do have been made implicit in our systems that the gulf is a wide—and widening—one. Paradoxically, however, as the gulf has widened, the amateurs have become less and less aware of it, for they have become less and less aware of what the system is doing for them.
it is a homily that the difference between the professional and the amateur programmer lies in the superior past experience of the professional.
The amateur, then, is learning about his problem, and any learning about programming he does may be a nice frill or may be a nasty impediment to him. The professional, conversely, is learning about her profession—programming—and the problem being programmed is only one incidental step in her process of development.
the professional often commits the error of deriding the work of the amateur for not being sufficiently professional; and this error is much less excusable than that made by the amateur in underestimating the distance between himself and the professional.
Programs, like any other human-made objects, are designed—or should be designed—with a definite lifespan and scope of application in mind.
a program should have neither over-designed or under-designed parts.
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.
The same talents or personality that make a person an excellent amateur programmer may make him singularly unsuited for being a professional one; but the lack of ability to adjust his working behavior to the problem at hand will always make him unsuited.
a large proportion of the variance between programmers on any job can be attributed to a different conception of what is to be done.
the very existence of schedule goals can influence the rate of work.
If we are to ensure that the proper talents are available when needed, we shall have to classify the work that programmers do into somewhat more refined categories than the simple term "programming" covers.
The ideal project design, then, would avoid having all its parts in the same stage of programming at the same time. However, if one were to believe typical management texts, one would get precisely the opposite impression.
Even to the most casual observer of human behavior, it is evident that intelligence and education affect personality.
When we use the term "personality" in the sense of the previous sentence, we mean the totality of personal characteristics by which we ordinarily identify people—a kind of summary of the person.
Personality is the integration of all of an individual's characteristics into a unique organization that determines, and is modified by, his attempts at adaptations to his continually changing environment. (D. Krech, R. S. Crutchfield and N. Livson, Elements ot Psychology, 2nd ed., New York, Knopf, 1969.)
there is a certain enduring quality to personality, and therefore personality does not change when there is no reason for it to change,
there is no way to determine from the symptoms whether the cause lies in the office or out, a manager has no choice but to try to understand behavior disruptive to the work at hand.
Psychological awareness can help in locating the source of such a problem, but psychology has not developed to the point—and never will—that it can be used for diagnoses without the aid of the person himself.
people who are not trusted are not trustworthy.
Although the average programming manager would say that intelligence is more important than personality in programming success, very few could cite cases of people who turned out not to be intelligent enough to program, but everyone knows of cases of people who were not temperamentally suited to the programmer's job.
someone without the ability to tolerate stressful situations for a period of a week or more is not good programmer material—given

