Our Blog Excerpts Savings Contact


Dorset House Publishing
High-Quality Books on Software Engineering and Management.  Since 1984.
dorsethouse.com > features
Features       Excerpts       Interviews


iDH Sign-Up

Get Our e-News
Delivered by FeedBurner

Critical Personality Traits

by Gerald M. Weinberg

Adapted from The Psychology of Computer Programming. Reprinted by permission. All rights reserved. See below for copyright notice.

Measuring personality is difficult, and matching personalities to job descriptions is perhaps near impossible; but isn't there some way we can select those people whose personalities suit them for programming? After all, if personality is important for programming, we cannot just give up without trying. Perhaps we can gain something from consideration of extreme cases, even if we cannot do very much with the general case.

Intelligence vs. Personality

The nature of the way that personality interacts with programming success is subtle, but we probably can make some assertions about how personality traits may lead to programming failure. 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. It is in this sense that we can assert that personality is more important than intelligence in programming.

If we look more deeply into the observed dominance of personality factors in programmer failures, we can easily understand why we are more likely to make a personality mistake in hiring a programmer than an intelligence mistake.

In the first place, there is an enormous amount of preselection of people, which places limits on who is likely to be making application for a programming job-even as a programming trainee. Part of the pre-selection is imposed in explicit hiring policies, such as requiring a college degree, or even a degree in specific fields.

Possibly even more important is the self-selection that takes place because the uninitiated believe that programming requires "a lot of math." Not too many years ago, the external perception of programming was so distorted that young men were advised to "study electronics" if they expressed an interest in working with computers. Young women, of course, were automatically excluded by this criterion, for young women did not study to be "engineers."

Whatever the faults of this preselection in excluding people who might have made great success as programmers, it does have the effect of largely eliminating people of below-average intelligence. Such people, if they had presented themselves for jobs as programmers in great numbers, might have failed in great numbers, making us feel a need to measure intelligence of programmer applicants.

But is there no comparable selection process on the basis of personality, as well? No doubt there is, but personality has many more dimensions than intelligence-although intelligence is not by any means measurable by a simple score on an IQ or programmer's aptitude test. Thus, selection on a personality basis is not likely to produce such uniform results with respect to the needs of programming. Moreover, even if the schools, say, did make a personality selection as strong as an intelligence selection (and, make no mistake, school success involves a large element of personality), personality is more changeable than intelligence.

In fact, one of the few really reliable things psychologists can say about these two aspects of a person is that intelligence is much less responsive to environment than is personality. Marriage, for example, is not likely to have a measurable effect on a college graduate's intelligence, but it will most assuredly provoke personality changes that can be perceived even by the untrained eye. Thus, a man who was a frivolous playboy in his fraternity days might well surprise us with the conscientious programming job he now does; but if he was unable to write a simple declarative sentence in college, marriage and family will probably not help one bit.

The Achilles' Heels

What traits, then, would give an indication of potential failure in a programmer? We can speak on this subject only from anecdotal material, for there have as yet been no formal studies of this question. Nevertheless, we can probably say with assurance that someone without the ability to tolerate stressful situations for a period of a week or more is not good programmer material-given the realities of programming work today. We are speaking of professional programming, of course-where the work and schedules are imposed from the outside. Amateur programming is not such a stressful pastime, possibly because one's entire career does not seem dependent on finding a particular bug by next Thursday.

Because of the diversity of programming work, people who are not in some measure adaptable to rapid change will probably have trouble as professional programmers. It is unlikely that a programmer will go through a month-not to speak of an entire career-without having to face the psychological shock of having his work pulled out from under him, or at least changed sufficiently so that his previous efforts become garbage.

And speaking of garbage, one of the most easily identifiable personality needs in programming is a modicum of neatness. We are not speaking here of personal grooming, though in one case a programmer actually smelled so bad that nobody could sit next to him long enough to look at his listings. What we mean is a slight compulsion to keep one's papers in order, without which the computer's paper-generating capacity inexorably leads to grief. One computing center selects its programmer trainees by giving a test and choosing the candidate who turns in the neatest paper, not the one with the highest score.

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).

The other side of the coin of humility is assertiveness, or force of character. A programmer's job is to get things done, and getting things done sometimes requires moving around obstacles, jumping over them, or simply knocking them down. The humble person is acutely aware of the ways in which he may be wrong; his critical mind tends to dominate his force of character. Now, although it is true that force of character without a critical mind is like a steam boiler without a safety valve, a critical mind without force of character is like a safety valve without a steam boiler. There is no danger of explosion, but then there is no possibility of getting any work done, either.

Last among the essential personality traits for programming, we might list sense of humor. The computer "doth make fools of us all," so that any fool without the ability to share a laugh on himself will be unable to tolerate programming for long. It has been said with great perspicacity that the Programmer's National Anthem is "aaaaahhhhh." When we finally see the light, we see how once again we have fallen into some foolish assumption, some oafish practice, or some witless blunder. Only by singing the second stanza, "ha ha ha ha ha," can we long endure the role of the clown.


AddThis Social Bookmark Button




COPYRIGHT NOTICE: This excerpt from Psychology of Computer Programming, Silver Anniversary Edition [ISBN: 0-932633-42-0 ] appears by permission of Dorset House Publishing. Copyright © 1998 by Gerald M. Weinberg. All rights reserved. See http://www.dorsethouse.com/books/psy.html. The material contained in this file may be shared for noncommercial purposes only, nonexclusively, provided that this Copyright Notice always appears with it. This material may not be combined with advertisements, online or in print, without explicit permission from Dorset House Publishing. For copies of the printed book or for permissions, contact Dorset House Publishing, 1-800-342-6657, 212-620-4053, http://www.dorsethouse.com, info@dorsethouse.com, New: 3143 Broadway, Suite 2B, New York, NY 10027 USA. Additional rights limitations apply, as presented in the Legal Disclaimer posted at http://www.dorsethouse.com/legal.html.



New:3143 Broadway, Suite 2B  New York, New York 10027  USA
1-800-DH-BOOKS or 212-620-4053, fax 212-727-1044
Copyright © 1996-2008 by Dorset House Publishing Co., Inc. All rights reserved.
Home | Blog | Savings | Stores | Features | Titles | Authors | Subjects | Orders | About | Contact | Legal