Interesting article by
Joel.
I
think this article is basically saying the following: 1) every
distraction that programmers have that they do not need to have needs
to go away, 2) they should be catered to, and 3) everybody else in the
organization exists for the purpose of supporting the programmers,
either by doing 1 and two above or by being the machine to sell and
support what the programmers make.
I love it. Love it, love it,
love it. After all, I am a programmer! In some kinds of companies there
is some validity here. Let's say you have a company that makes is money
on selling software. In this case those things really are true. If you
have a company, however, where IT is just a small part, a sort of
infrastructure, then not everything there applies.
The
unfortunate thing about these ideas, especially number 2, is that it is
easy to get the idea that programmers are just a bunch of babies. Some
are, of course, but I don't think that is the case usually. This is
assuming, of course, that we're talking about good programmers. Bad
programmers may or may not be babies, but they should be fired and
replaced anyway. Anyway, I digress. I don't think it's lack of maturity
or a sense of entitlement, but that there is a programmer culture that
is radically different from that found in other groups such as sales,
accounting, support, management, etc. ALL of these groups have
different cultures, and development's culture is radically different
from the others. Take, for example, the idea of giving developers their
own offices. This actually makes a great deal of sense for programmers.
Distractions are very costly to development. It's just disastrous when
a developer gets "in the zone" and is then distracted by some pesky
manager about this or that project. Granted, developers have to be
distracted sometimes (yes, it is ok to talk to developers), but as a
general rule they should not be. When developers are "in the zone" they
get a lot more and better work done. That's what you want, right?
And
its not that programmers should be catered to and no one else. Every
group needs to have their needs met and be satisfied at their job,
because you'll get a higher retention rate and satisfaction level,
which will greatly affect the effectiveness of your company. And one of
the important points that can be drawn from Joel's article is that when
any group is cental to the company, it SHOULD be catered to, whether
that's sales, support, or development. For ISV's this often, if not
always, is development.
Make a truly good development environment and you'd be surprised what you can get out of your programmers.