80% programmers

Ben Collins-Susmann writes about the 80/20 split of programmers and how the 20% of programmers who are "alpha programmers" have to account for the 80% who are not, and how they use their tools.

Although the post talks about Subversion and distributed VCSes, the lessons hold for those who use Perl, too. How many programmers have we worked with who don't know about CPAN, or are afraid to use code from CPAN? How about programmers who don't understand the internals workings of "standard" Perl objects (i.e. blessed hashes), who don't realize that a {} is an anonymous hash constructor, not a "class" or "object" constructor? Or who are afraid to use the map and grep constructs?

On the flip side, you don't want to dumb down your code to the lowest common denominator. Although both Mark Dominus and chromatic have written about it recently, I like Randal Schwartz's phrasing best: "Sooner or later you're going to have to write in Perl." I'm dealing with PHP code at work where the original programmer did not use keyed lookups (PHP arrays are effectively ordered versions of Perl hashes) to check to see if a given string was in a list of special strings. I'm assuming that he was unaware of the ability to look up array elements by key, but I think it would be even worse if he specifically didn't use the feature out of fear, or worrying about future programmers not knowing what the code did.

Assuming that you're a 20% programmer (and that you're reading a programming blog suggests that you are), how do you deal with 80% programmers? Any tricks for the rest of us?

Addendum: Not five minutes after I posted this, I found this article "What if powerful languages and idioms only work for small teams?", with most of the value in the comments from readers.



Max said:

Mostly? I review their code, and tell them about certain features as they need them. :-) I educate them. Actually, I'm writing a book that's kind of for them, but really for all programmers.

Sometimes if I do use a particularly strange idiom, such as the array-of-arrays collapsing map idiom, I add a comment for the less-Perlified.


notbenh said:

I think that one thing that I try very hard to do when I work with an some one is to not only educate them but try and get them involved. I think that one of the reasons that I would classify my self in the 20% programer group is that I feel an investment in what is going on. I feel personally connected to the larger community, I have a reason to keep up with the other 20%-ers. So I try and bring as many of my fellow programmers to local perlmonger meetings or other geeky-social groups. I try and get them involved.

On the other hand, I do run the risk of seeming over zealous. The 80%, by there very nature, are more interested in something other then code. So I try and remember that, this is not for everyone, and thats ok, everyone is a 20%-er in some group.

tardisx said:

The timeline goes something like this:

First 2 weeks: tolerance - they are new in the position, maybe still finding their way around.

Next 2 months: education - I will gently point them at CPAN where appropriate, dissect and suggest improvements for their code and assist with problem solving when they are approaching an issue from the wrong direction.

I stop wasting my time at that point, I have nothing left for them except contempt.

When colleagues continually waste my time with questions that they could answer themselves, using resources which I have already shown them time and time again, they get contempt.

They will *never* be 20's. Never. I'm not saying that anyone who hasn't "got it" after 2 months won't be, but there are those for whom you can tell. The ones you lead to water but still need to be told how to drink every damn time.

There is a place for the 80's, even in my teams. But the ones who pretend they are 20's, who are remunerated as such, and who have management buy-in on their cock-eyed 'ideas', but still come to me for help with simple data structures, with inventing code that's already on CPAN, with questions answered in man pages, they get nothing but contempt.

Never forget - you can't polish a turd.

Leave a comment

About this Entry

This page contains a single entry by Andy Lester published on November 26, 2007 7:30 PM.

Mark Dominus on undefined behavior was the previous entry in this blog.

Who's making bogus web requests? is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Other Perl Sites

Other Swell Blogs

  • geek2geek: An ongoing analysis of how geeks communicate, how we fail and how to fix it.