Howdy, Jerry! What's new in the Silver Anniversary Edition? Were you tempted to
do a complete rewrite?
new is the perspective of a quarter-century on the topics that are still central
to computer programming. I didn't want to do a complete rewrite because we would
then lose a golden opportunity to see ourselves developing as a profession over
DHQ: Given the rate of change in the
computer industry, Moore's law, and the prevailing fear of obsolescence, how can
readers feel safe about buying a book that was originally published more than
twenty-five years ago?
WEINBERG: The one
thing that people who fear obsolescence should most want to know is, "What
doesn't change among all this change?" These are the things that will be
worth knowing, and these are primarily things about human beings and how they
DHQ: In the new edition, you write that your
discussion of egoless programming "is probably the most cited, most misunderstood,
and most denied of all the concepts expressed in the original book." As you
conceived it, twenty-five years ago, what is egoless programming?
WEINBERG: Today, I would call it "less-ego programming,"
to avoid some misunderstanding. Less-ego programming is the practice of turning
the developer's attention away from ego-defense and toward the production of a
quality product, whatever that takes. And, one of the things it takes is an acceptance
that none of us is perfect, and that pretending to be perfect just conceals errors
until they hurt the most.
DHQ: Compare for us your
original intentions in writing the book with the effect it's had on the programming
world over the past twenty-five years. What has worked and what, if anything,
WEINBERG: I believe I've always wanted
to affect individual programmers, rather than the more grandiose "programming
world." And, that's worked out beautifully, as measured by the hundreds of
programmers who have told me that reading Psychology was a turning point in their
careers. Even so, there are still enormous numbers of programmers who still don't
"get it" about the way their behavior affects their product, and I'm
still hoping to reach hundreds more of those.
One of the most famous lines from the 1971 edition is, "If a programmer is
indispensable, get rid of him as quickly as possible." What's the lesson
behind this somewhat counter-intuitive advice?
Over and over I've seen organizations suffer enormous costs when something tragic
happened to an "indispensable" programmer, or when that programmer started
making demands because management "couldn't do without him" (or sometimes
her). The lesson is elementary risk managementwhich unfortunately many organizations
still don't practice. To reduce this risk, you don't have to actually get rid
of the programmer, but you do have to get rid of the indispensability.
What has LEAST improved in programming psychology during the last quarter-century?
What has MOST improved?
WEINBERG: I think
programming languages have least improved, though perhaps they were the most advanced
twenty-five years ago. I think programming tools are most improved, including
user interfaces, which weren't much of a concern back then when very little programming
(but a lot of debugging) was done on-line.
are you working on these days, Jerry? Any new books in the works?
WEINBERG: Much of my energy is going into coaching the next generation
of writersone-on-one and in classes. For the past two years, I've been running
a subscription-only Internet forum (SHAPE, for "Software as a Human Activity
Practiced Effectively"). The participants are bright, articulate people from
all over the world, people who are deeply involved in the workings of software
organizations every day. I believe the material we've accumulated there will eventually
form the basis of several bookson such topics as project management, handling
difficult management situations, communication, developing yourself as a manager,
running a successful software organization, and teamwork.
DHQ: Since the original edition was written, how has the growing
presence of women on programming teams altered the psychology of computer programming?
WEINBERG: Well, it's certainly altered some
(not all) of the attitudes about women in this kind of work. Women today hold
many respected technical positions, and have attained them because of their technical
prowess, not their gender. The one aspect that's been least affected is women
in appointed leadership positions, but that, too, is changing and may be rather
different by the time the Golden Anniversary Edition is due.
Regarding Chapter 9 and your new commentary, What's wrong with using intelligencethe
kind measured on IQ testsinstead of personality as a factor in predicting
programming success? How should personality, work habits, and training be used
in selecting programmers?
WEINBERG: Few unintelligent
people apply for programming jobs, and they're easy to spot without fancy tests.
But many people apply for programming jobs who have dysfunctional personalities,
poor work habits, and deficient ability to learn, and these are harder to measure.
That's why we need to pay more attention to these factors than to so-called "intelligence"
or "aptitude" tests.
DHQ: Why is it that,
as you've written, "the individual working alone is neither a fruitful unit
of study, nor a productive component of programming project work"? What makes
the team so vital to programming?
First and foremost, properly managed teams give higher productivity, produce better
quality products, and are much less variable than individuals. Their ability to
manage themselves makes them easier to use as part of a successful project, and
reduces the need for management overhead.