Steve Atwood had a couple of posts last week about different kinds of programmers.
In the first post, Atwood riffed off Ben Collins-Sussman’s observation that there are two kinds of programmers — the 80% and the 20% (following the variant of the 80-20 rule that 20% of the people do 80% of the work) to suggest that those of us in the 20% (the assumption being that reading programming blogs is sufficient to identify oneself among the 20%) should devote more of our energy to bringing the 80% up to our level, and less time arguing and showing off to the other 20%.
This touched off a bit of a firestorm, as some readers resented the implication that they are among the 80%, which was both an incorrect implication to draw and not that insulting if you think about it.
My problem with the post is that I don’t think “reaching out” to the unwashed masses is the best use of a 20% software developer’s time. The 80% are there with their tried and true methods, doing their jobs, not bothering anybody. When we come up with something grand, they will come around and figure out that they need to learn it to keep up. Teaching and mentoring are noble callings (I teach myself), but if we think that by doing that we’re going to turn an 80% programmer into an 20% programmer, we’re dreaming.
In fact, it’s my suspicion that the more time a 20%er spends with an 80%er, the more likely it is she will turn into an 80%er herself. If someones working 80 hour weeks, writing compilers in his spare time, etc., and starts seeing that lots of people are able to make a decent living in software development and have time to have personal lives, then that’s going to start looking more and more appealing. The 80-20 rule doesn’t apply to salaries.
A developer who leaves at 4:00 PM every day to pick his kids up at school isn’t going to re-arrange his family’s schedule because you just showed him how cool the latest Linux distribution is. But a developer who sees that folks who leave hours before her get paid a single digit number of percentage points less than her will start to wonder why she’s doing it.
So, my inclination is to let the 80% be the 80%, and concentrate on making your work so good and irresistible they will have little choice to earn it.
Atwood followed that up with a post expanding the universe expanding the universe of proframming personas to three, based on Nikhil Kothari’s characters of Mort, Elvis and Einstein.
He quotes Phil Haack, who writes:
We have to realize that Mort is responsible for a lot of important systems. Systems that affect the general population. When I hear of recent cases of identity thefts such as Choicepoint among others, especially those caused by lax security such as using default passwords for the database, I think of Mort. When I read that $250 million worth of taxpayer money has gone into an overhaul of the FBI Case File system, and the system has to be scrapped. I think of Mort.
Given this much responsibility, we should expect more from Mort. So Mort, I hate to say this but software development is not like working the register at McDonalds where putting in your nine to five is enough. I am all for work-life balance, but you have to understand that Software development is an incredibly challenging field, requiring intense concentration and strong mental faculty. It’s time for you to attend a conference or two to improve your skills. It’s time for you to subscribe to a few blogs and read a few more books. But read deeper books than How to program the VCR in 21 days. For example, read a book on Design Patterns or Refactoring. Mort, I am afraid it’s time for you to quit coasting. It’s time for you to step it up a notch.
Yes, but whom do you think of when you read about a 50% divorce rate, or undersupervised kids? The above things are more examples of gross negligence that people just getting by with what works. And I’m not sure it’s a slam-dunk that preventing these things is worth having loads of developers spend 10 hours less with their families a week. For the “craft of software engineering,” sure, but maybe not for society as a whole.
It’s kind of trite, but on his deathbed, will Mort wish he had read a few more books about Design Patterns, or coached his daughter’s softball team?
Let’s face it — this isn’t the NBA, where in order to make it you either need to be supremely talented or supremely dedicated, and likely both. There is a greater demand for software development than there are 20%ers to go around, so as things stand right now, one can make a decent living working 40 hour weeks using the same tried and true methods. Neither “reaching out” nor “demanding more” is going to change that (though globalization might).
Plus, many employers are quite happy to have 80%ers watching their systems, keeping them running, not taking crazy chances, and not asking for big raises and promotions.
Our task is to push the trail forward such that it will be irresistible to others. That is how we will leave our mark on the world; that is how we will leave things better than we found them.
Let Mort be Mort. Let the 80% be the 80%. We’ve got work to do.