Submitted by regen_r8 on Fri, 2007-04-06 21:45.
In my last post, I used an analogy between software development tools
and religions. I found the analogy amusing, and illustrative,
and wanted to blather on for a bit about it. Not all
developers are religious, some developers do it for the money.
In this analogy, there are two breeds of software developers,
mercenaries and zealots.
Mercenaries
are concerned about weapon proficiency. They want to be
comfortable using any weapon, they know how to assemble and
disassemble any kind of gun, can set up any development environment in
a heartbeat. They are focused on firepower, and maximum
utility, pure take down. They don't necessarily know the
deepest secrets of the lore of the weapon manufacturer. They
are not gun collectors, they are marksmen. They
would select a weapon (software tool, language, compiler) for it's
ability to produce software. They will use whatever the
customer provides, whatever their employer has available, they will
become proficient on new tools quickly, because that is what they do.
That is how they survive and succeed. Mercenaries
are agnostic, or at least non-denominational. They will use
whatever is available and complain when it doesn't have sufficient
firepower.
Zealots are
a different breed. They are always looking for the ultimate,
the best, the most amazing, the most elegant, the most efficient, the
most pure. They have a need to believe, to believe that the
tool that they have chosen is the best. They are into the
lore, they know the name, and some personal history of the original
author of the language they have chosen. They are part of
the "community" for the tools that they choose. They want to
master, to tame, to understand how to wring, squeeze, or coax the last
ounce of capability out of a tool. They "go native", and
understand the tool, in the way that it was designed. They
are focused on the beauty, the elegance of a solution, and they give
credit to the tool, the community, and the original author for their
contribution to the solution. Zealots are often evangelistic,
trying to drum up support for their religion. They donate
money to build the temple, and if they are lucky, will get to be a part
of the priestly class (write a book, blog, or contribute to an open
source project).
Mercenaries take credit for their kills, whereas zealots bring the
kills back to the commune. Mercenaries share war stories,
zealots post code galleries. Zealots will spend time
mentoring, indoctrinating, coaching, and holding court for anyone who
will listen, mercenaries are either on a mission or in a bar.
Zealots retool out of frustration (with former tools),
mercenaries retool out of expedience. Mercenaries know how to
use a tool, zealots know how the tool wants to be used.
Most of you who have been in this industry for a while have interacted
with both breeds of software developers. It is not that one
is better than the other. Both can write extremely solid
code, very quickly, and under pressure. There are probably
other attributes that can be applied to each breed, but they would be
generalizations. Some developers can change breeds based on
the situation, although each would have a default breed.
Others would struggle to shift breeds except under extreme
duress.
As a manager, it is important to understand how your developers fit on
this continuum. Mercenaries and zealots are motivated
differently. Moreover, it is not just developers that follow
this continuum - managers, project managers and analysts also have
their ideologies. It is important to understand, because at
the extremes of the continuum there is very little understanding (or
tolerance) of the other extreme.
I myself lean a little toward the zealot. I spend a lot of
time in the world of ideas. Strength or weakness?