On Thu, Jun 2, 2011 at 9:41 AM, Russell N. Nelson - rnnelson
<rnnelson(a)clarkson.edu> wrote:
Well, see, here's the problem: programmers are
artists. We'd prefer that they be able to be solely technicians or engineers, but we
don't know how to do that. Consequently, you have situations where one programmer is
ten times more productive than another equally experienced or qualified programmer. And
given that programming is a creative environment, people need an environment free of
pressure. Pressure shuts down creativity. It doesn't work for professionals, and it
really REALLY doesn't work for volunteers.
Of course, that said, people need to do stuff that earns them a salary. Keeping those two
opposing interests balanced is what makes managing programmers difficult, rewarding when
done well, and, Alex, not easily summarized in your sarcastic sound bite. The reason
Brandon sent out his email was to gently correct MZMcBride's management technique of
"do this or you're fired". You then proposed the same thing, which is
kinda... ironic.
Managing programmers is difficult. If you think you can do a better job than the
professionals, you NEED to give it a try. You might be successful! Or you might learn from
your failure.
This still just seems like a sense of entitlement. If programers want
to be treated like artists, let them be. Have their pay be tied to
output and quality. If they want to earn a salary, then it should be
like the rest of the professional world with deadlines and
repercussions for not meeting them (they don't necessarily have to be
fired). But trying to have the best of both worlds sounds like a
recipe for disaster. But I have a few friends and relatives who are
programmers, one of them does work in a typical professional situation
in a large company, with deadlines and such. She's been with the same
company for years. None of the others have exhibited anything like
this "I'll only work in a pressure-free environment" attitude. They
treat it like engineering. There's design work involved, but the
design is to achieve some specified function, not just design for
art's sake.
I've never personally worked in a setting where the main activity is
programming. I have worked for an architecture firm. Architects are
expected to literally be artists and engineers. They have to design
buildings that look good and meet some function. However, they often
have strict deadlines and there can be serious penalties (for the firm
at least) for not meeting them. Not once did I hear any of this sort
of complaining about how enforcing a simple deadline makes people want
to quit.
Could people be more creative if they have unlimited time? Probably.
But "creative" does not always mean "productive." Sometimes it's
better to just get something done than to find an innovative or
elegant solution. Such as, when the people paying your salary are
concerned that you're taking too long. Or when not doing some task
because you don't like it or have more interesting things to do (code
review) negatively affects the final product (loss of volunteer
contributions).
--
Alex Z.