In the Summer and Fall of 1999, at the peak of the dot-com boom, there was incredible competition for software developers. Starting pay for developers with no experience had already climbed to \\(60K and then, in the course of maybe 3 months, it went from \\)60K to \\(75K to \\)90K. And that was actual money, not soon-to-be-toilet-paper stock options.
A guy as American as apple pie came in, fresh out of college, applying as a Java developer. He didn't know the difference between a class and an instance and didn't know what inheritance was. So, just as incompetent as anything I'm seeing today. I started to explain to him that software development was a wonderful profession and that if he wanted to learn it, the traditional way would be to apply as a junior tester, and ... He cut me off, told me he had 5 other interviews lined up that week and made it clear that he expected to be hired at one of them. And I don't doubt that he did.
But I doubt that he's still incompetent and employed as a software developer and especially not as a freelance coder. I think he either:
- was weeded out of programming (perhaps by going into management), or
- got a clue
I complained the other day about an incompetent applicant from South American so I'll use as an example another guy on the team who lives in South America, "gets it" as far as software development goes and charges \$24 an hour. He lives in a beautiful house on, like, 10 acres or something, owns several horses, and I get the impression that he's considered quite the young go-getter.
So when people think the moral of my story is "cheap employer...you get what you pay for" I think they're entirely off-base. If you're willing to create a distributed team (the wisdom of which is a whole question in and of itself), you might find yourself in the enviable position of being able to give a smart person a high standard of living and contributing to a developing economy tra-la-la-la-la all while paying less than an American median wage. It's hard for me to see the argument that that is immoral.
It's not the nationality of incompetence that's depressing me, nor is it necessarily the scope of the incompetence embodied in a single person, it's how common it is that I encounter people who have no respect for this activity that I love. I feel that I'm seeing it more often than I used to, and while I may be imagining that ("When we were kids we hiked 7 miles through the snow to the data center..."), I think it's a real phenomenon.
Some people suggested that the language involved might have something to do with it, and others suggested that it might have to do with the increasing amount of hand-holding in modern development environments. I still tend towards my feeling that global commodification has something to do with it; more and more people applying for jobs in the field of software development did not enter that field due to a love of computers or software, they entered it because there's demand.
There have always been developers for whom programming is "just a job." Back when I was Editor of Computer Language, it was common-place to refer to the statistic that "the average programmer has less than 1 book on software development." But it was easy for me to ignore that, because those weren't the people who read magazines and attended conferences and swapped stories on Compuserve's CLMFORUM. So maybe I am just being an old codger. Except instead of CLMFORUM, when I look for reaction to my thoughts I find griefers on reddit making ad hominem attacks. Progress.