Explaining the tech job market 6

Posted by wsargent Fri, 29 Apr 2005 21:33:00 GMT

I’ve always wondered about the state of the industry. Why 30% of projects fail, why it is that there’s always a huge need for more programmers, and why this has been the situation for around 30 years.

Apparently Bill Gates is calling for the cap on H1B visas to be lifted because there’s such a serious demand. And yet… there are no shortage of people who come to interviews. There are still plenty of people out of work. So what gives? How can there be not enough people and not enough jobs at once?

The blunt truth is that most people looking for a job really suck. I’ve interviewed people who literally couldn’t write a for loop from memory. You would think that this situation was caused by the dot-com boom sucking up all the talent… well, sort of. The boom sucked in everyone. But the bust dropped the least experienced people first. As a result, you now have even more minimally trained people looking for positions.

Joel Spolsky goes into this situation a bit. His rendition of the interview process is dead on, and I’ve seen a number of people get into trouble by picking the resumes with the right buzzwords, instead of one with all the words spelled correctly. There are a ton of people out there, if you’re not picky. Even if you are picky it still not be enough to save you: after looking at 200 D-list developers, a C-list developer starts to look pretty good.

But still. If there are so many people out there, why call for more visas? Why is there so much demand if there’s a limitless supply of mediocre talent?

It has something to do with the amount of work that these people do. Steve McConnell mentions “problem programmers” in a paper citing ranges in programmer productivity. He points out that a number of programmers couldn’t finish the project at all, and theorizes that some programmers may have negative productivity, “because eventually someone else will have to redo the work of programmers who can’t finish their assignments.”

But David Parnas lays it out flat in this interview:

Q: What is the most often-overlooked risk in software engineering?
A: Incompetent programmers. There are estimates that the number of programmers needed in the U.S. exceeds 200,000. This is entirely misleading. It is not a quantity problem; we have a quality problem. One bad programmer can easily create two new jobs a year. Hiring more bad programmers will just increase our perceived need for them. If we had more good programmers, and could easily identify them, we would need fewer, not more.

Parnas’s Law of Hiring: The more incompetent developers you hire, the more you need.

Software Engineering studies tend to put the cost of poorly designed software in terms of “maintainence”. I thought for a while that meant how much work developers had to do to add a new feature to an existing product. But there’s another meaning behind the word, and that’s how many developers need to be hired to fix and keep running the broken software.

This law explains why no matter how many H1B visas companies get, they always seem to need more, and why software projects have been having a “crisis” for over three decades. I wish I could say that H1B visas and offshoring would fix the problem, but from what I can see it’s about cheap labour, and only that. The industry is digging its way into a hole.

Comments

Leave a comment

  1. rosamutabilis about 1 hour later:

    thought-provoking, get it out there!

  2. Chrystal Carr 8 days later:

    My engineering position, customer support, went to Singapore. Now, my Manufacturing Engineer Technician position is going away because this plant is closing, sending all of our PCA production to Mexico and China. Eventually, in all areas of the computer industry, the corporations outsourcing will get what they pay for. As that saying goes, “what goes around, comes around…”

  3. Anonymous 11 days later:

    My opinoin is very different in this area of hirirng. I have worked with Indian/chinese programmer and one was writing reports using oracle reports 2.5 and he was not aware of binding variable and what it does. He got a 10 year work experience certificate spending roughly $1000.00 (us dollars).
    2. One newly married programmer was looking for a fake MS(account) from Hydrabad so that her wife can go to CPA claa here.
    3. One of the programmer at a global technology firm was writing trigger and failing because he was trying to fetch it without opening it.

    4. If you go and look and chekc the papaer of foreign programmer 30 to 50% are with inflated credentials.
    5. One of the programmer suggested to write a XML script to capture th variable value instead of writitng in simple file.

    So it is not just American it is all across the board.

  4. Mikhail, a russian programmer 25 days later:

    what I found in many companies here, in the US, that even good programmers - I mean who can write loops, etc. - very rare understand what they architect, design, and program from a conceptual view. The problem is not to code correctly ? the problem as always with someone?s ability to think correctly before he are going to code? his thoughts! We have lots of programmers, but very few who can adequately think on all levels of projects ? managers, architects, designers, programmers, ? and customers:-) So, teach people to think not in loops, but for themselves!

  5. Technology Executive 2 months later:

    ..wandered into your site ….. Hmmm …… I wonder how much hiring you have actually performed ? A good developer should be a good designer and a good engineer in general. That is they should understand the ramifications of an inefficient programming technique and they should know where to look if they have a problem that they can not immediately resolve. They also should know how to perform unit test steps on their own code and actually do it ….
    Yes, many applicants are poor but many are equally brilliant. Sorting out who is good or can be made good with a bit of tutoring takes quite a bit of experience. If all you do is ask candidates to regurgitate the details of handling a trigger in oracle or performing some arcane type conversion manuever in C++ then you will never hire adaptable creative problem solvers and efficient implementation engineers … just coders. In my opinion coding is best left to a machine, not a person and this solution is nearly feasable with todays tools.

  6. Will Sargent 3 months later:

    Technology Executive –

    It’s very easy to recognize an untrained smart person. They’re the people that walk into an interview, tell you straight out that they don’t know anything, and then proceed to tell you how they would go about finding the answer. Someone like that is pure gold, because they show honesty and self-reliance.

    Your statement that “coding is best left to a machine” is just plain wrong. “Coding” is the translation of human-level requirements and design into a machine readable format. There are no tools that do this. Even the worst ‘coder’ cannot be replaced by a machine at present, much as I wish they could be.

Comments