November 30, 2014

“Rock Star” Programmers

I've finally realized just what, exactly, so gets up my nose when I see organizations advertising for “rock star” programmers. To understand you need to cast your mind back (assuming it then existed) to 1971 (when I was in my first decade as a programmer) and Gerald Weinberg had just produced The Psychology of Computer Programming, in which he concluded that over-identification with the code one produced could, in interesting ways, be counter-productive.

He observed that programmers who were reluctant to share their code tended to hold on to false views of what might be causing issues rather longer than those who were open to review and discussion. My own development as a programmer was greatly aided by this approach, and at university a couple of close friends in particular discussed every aspect of the code we were creating.

Forty years later Weinberg's “egoless” approach, in which mistakes are accepted as inevitable and reviews are performed in a collegial way, remains the sanest way to produce code. Given that computer programming is fast becoming a mainstream activity it seems perverse to deliberately select for ego when seeking programming talent, since the inevitable shortfall in humility will ultimately work to undermine the rock star's programming skills.

When I think of the best programmers I know, the foremost characteristic they share is a modesty about their own achievements which others would do well to emulate. So, can we please dispel the myth of the “rock star” programmer? The best programmers can't be rock stars. Rock star egoism will stand in the way of developing your programming skills.


Giles said...

Thanks, Steve -- I've been uncomfortable with that phrase for a while now and you've just explained to me why :-)

lee said...

I think that The Psychology of Computer Programming (along with The Mythical Man Month) should be required reading for every serious programmer.

Steve said...

Hey @Giles, thanks for your comment.

@lee Both those are still great titles. A 25th anniversary edition of "The Psychology of Computer Programming" came out (presumably in 1996) and it was definitely still both relevant and useful then. Forty-three years after publication Weinberg's concise observations keep his book fresh for a modern audience.