Interesting stuff. I'm not sure I see it the way you do, but I
think that the basic idea is very sound -- emotions and the way we
handle them express themselves in our lives and in the software we
I also think it's worth noting that the way we handle our
emotions has as much effect on the process of writing software as
it does on the software itself. For example, emotions affect how
we interact with others, how and whether we push our ideas, what
teams and communities we form, and so on, and this has a huge
effect on what ideas eventually become software.
One thing I find that is interesting is that you have written
the article in terms of blocking emotions. I'm not sure that
blocking is always the correct word. In many cases, I suspect
we fear the emotions or are ignorant of them.
When we fear an emotion, we avoid situations that give rise to
those emotions. For example, somebody who grew up with angry
parents might avoid conflict because they are incapable of dealing
with anger. They aren't blocking anger -- it's likely they feel it
quite strongly -- they simply don't have the correct training to
know what to do with it.
Programming examples include:
-- The example you list for fear itself.
-- People who fear rejection will avoid criticism, such as
through avoiding pair programming, avoiding communities (even of
like-minded people), not speaking up in meetings, not pushing new
-- People who fear conflict will back down quickly from an
idea, even if it is a good one. Similarly, they won't participate
in any but the most supportive of communities.
As to ignorance of emotions, I'm not quite sure that
"ignorance" is quite the right word. What I mean is that we are so
out of touch with our own emotions or the emotions of others that
we either don't recognize them or don't have the skills to handle
them in ourselves or others. For example:
-- Lack of empathy. This is a big one. For example:
a) This is another cause of feature creep -- programmers think
the cool feature they've just invented is something everybody
wants, even if users don't understand it.
b) GUIs designed by engineers often have the same problem --
engineers think everybody sees the world their way and can't (or
don't even try to) imagine the way users see the world.
c) People who don't recognize that somebody else might be shy
or that their culture might prevent them from speaking up.
-- Anger management (or lack thereof). I remember working with
one engineer who blew up very easily. Other people refused to work
with him because they didn't want to be targets of his anger.
-- Narcissism. Engineers who are so self-centered that they
fail to notice that other people have ideas or that nobody is
interested in their ideas.
Related to all of this is simple lack of social skills, which
could be viewed as a failure to notice the emotions of others, but
also might simply be a lack of training. Examples are constantly
interrupting, not listening to the ideas of others, talking
endlessly in meetings, putting down the ideas of others, etc.
It would be nice for individuals to overcome these problems
themselves, but that either (a) never happens or (b) takes a
looooooooong time. It is therefore one of the main jobs of
bottom-level management to help smooth over the difficulties that
arise because of typical human frailties -- keeping your employees
happy and talking is as important as juggling deadlines.
Furthermore, corporations should set up cultures that they feel
are appropriate for dealing with these sorts of things. In
software, this often means very open and inclusive corporate
cultures, but heavily hierarchical cultures undoubtedly have their
place as well.
Finally, I suspect there is already a large body of literature
about this sort of thing, although not specifically as it
expresses itself in code. It would be worth looking into
psychological studies of engineers and the sociology of
corporations. There's a good bet somebody has looked that the
anthropology of the Open Source movement as well, although that is
less likely to deal directly with emotions.
Also related to this is the field of emotional
intelligence. I've read parts of Goleman's book on this and it
makes a lot of sense to me.
Thank you for your feedback and encouragement.
The positive intention of fear is risk control. If you fear
sunlight blinding you, you may block sunlight with a pair of
sunglasses. If you fear an emotion, you may block it, too. If you
block an emotion, you are ignorant of the positive information
that it carries. If your sunglasses are dark enough, you are
walking around blind. Ironically, trying to block blindness
willingness to receive other people's emotions. People who block
their own emotions are likely to block other people's emotions as
If you know of other work in this
field, I can post pointers to it here. The closet I know to
"anthropology of the Open Source movement" is Eric S. Raymond's
work from the late 1990s and early 2000's. ESR's work focuses on
the conscious, including many references to game theory. His Jargon File has no entry
for "emotion" or "feeling."