First off, let me start off with a geography lesson. If the blogosphere was represented as the US and blogs like Coding Horror was San Francisco and Joel On Software was New York City, I might be Beaver, Oklahoma or Tulia, Texas. So when someone like Jay (who I’m guessing is kind of a nice, mid sized California town like Fresno based on his feedburner counts of 3458. I’m positive my feedburner count is negative infinity) links to my little corner of nowhereland, it’s flattering and humbling. So, right off the bat, thanks Jay for taking the time to respond to my post. Also, I realized that my about page was pretty sad so I’ve updated it so people who come here don’t have to wonder who in the hell I am.
On to the business at hand. Jay responded to my post yesterday where I painted him as elitist for saying 50% of all programmers should find a new profession.
His quick responses:
* There’s no question that I wouldn’t have reached my position so quickly if the competition wasn’t so weak. That’s not a good thing.
* I dropped out of college, to say that I’m implying formal education is required is amusing. In fact, no where in my list of things I look for in a colleague do I mention education. I want talented colleagues, nothing more, nothing less.
* There are plenty of crappy jobs. You know what happens to them when you give them to good developers, they get automated or removed. Giving crappy jobs to crappy programmers is an answer, but not the best one.
First, he and I sound like we’re in basically the same boat regarding how we got into the profession. I dropped out of grad school and ended up in software basically because that’s where the money was and I had a friend who could get me on at a company doing VB work. I had almost zero background in computers aside from owning one and not a week goes by when I’m not thankful for the sorry state of programming because it let a guy like me in the door. Our difference is that I think it’s a great thing. Software development isn’t medicine. I don’t want doctors bootstrapping their way up the ladder. But software development? I think it’s perfectly great that people can stumble into software development because some of those stumblers turn out to be great who might not otherwise ever get into the profession. I think it’s more important in our field to allow all the chaff in to get the occasional wheat. What we do isn’t important enough to not. Maybe someday it will be but it isn’t right now.
Second, I said that Jay wasn’t explicitly advocating for education to be the qualifying measurement but that he was implying it. Looking back at what he wrote, there wasn’t much support for that assertion. I basically went from Jay say 50% of all programmers should quit to Joel’s argument against Java Schools and bad education by extension. That’s a pretty weak link so I apologize for making that assertion.
Thirdly, yes there are a lot of bad programmers out there in crappy jobs who aren’t the type to ever learn a new language, take a leap into the void of Dangerous Ideas or generally do anything to improve their skills. But it’s my guess that these people exist in every profession, from doctors down to janitors but that software is one of the few professions where we obsess over eliminating them. In the real world, I think the market eliminates jobs and people like this. I think it’s true for software as well, it’s just that the market for software developers is driven by a higher demand. When you have a higher demand, either prices (salaries) or supply (people) has to go up. When it’s supply, a lot of times, you get lower quality. If we say we should get rid of part of the supply because of their low quality, suddenly demand is much higher. This is great for those developers who will now command greater salaries but not so good for businesses who were relying on the bad quality developers and businesses are what drives the market in the end.
Overall, I think my main argument against Jay’s original post is that improvement by elimination when it involves people and jobs in a field as poorly defined as software development is a dangerous, slippery slope to head down. In order to accomplish that, you have to have some sort of objective metric. Because software development is so diverse and subjective, it’s almost impossible to have an objective metric by which to eliminate people. On top of that, there’s always the question of “Where do you stop?” which I brought up in my original post. Once you’ve figured out how to improve the software development profession by removing 50% of the developers, what stops you from eliminating another 50%? Or another 75%?
In the end, I think software development isn’t the type of profession that should be obsessed with improving itself through elimination of bad developers. I want medicine to get better by eliminating bad doctors because bad doctors kill people. I want engineering to get better by eliminating bad engineers because I don’t want bridges to collapse. But software development? I’m not convinced that the majority of what we do is that important. Don’t get me wrong, I love writing code and developing new software. I read blogs like Jay’s to learn new things and I try to pick up new patterns or languages. I want to make myself better by adding to my understanding. I think improving software development by addition is a better, though probably slower, way to go about things. Let’s improve the industry virally, from the bottom. Tape up Testing on the Toilet in your company’s bathroom. Send links to good blogs to people who might not otherwise read them. Drop off a copy of Head First Design Patterns anonymously on a co-workers desk. Let’s improve the industry through addition instead of subtraction.
The Daily Palliative: Who Needs A Holy Ghost?