|
DHQ: Howdy, Jerry! What's new in the
Silver Anniversary Edition? Were you tempted to
do a complete rewrite?
WEINBERG: What's 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 a generation.
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 behave.
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, hasn't?
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.
DHQ: 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?
WEINBERG: 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.
DHQ: 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.
DHQ: What 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.
DHQ: 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?
WEINBERG: 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.
DHQ: Thanks, Jerry!
|