The author is 100% correct, and even those steps do not guarantee success. The software company I run (http://www.myprogrammer.com) is constantly looking for programmers, and we spend a tremendous amount of our time on interviewing, testing and trying programmers.
The first thing to understand is that you cannot have a bad programmer on your project. The mess they can create on 1 month will take 6 months to fix. The second thing to understand is that you need someone who is a great programmer involved heavily in the entire process. Here’s how we do it.
Round One: Interview 100 programmers
We find that we are lucky if 15 to 20 can pass the first verbal round. People have great resumes, but they never learned how to write really good code.
Round Two: Give 15 to 20 a real-world test
You need to give them something they can complete in about an hour. This is done while on the call, so we know they are the ones doing it. The problem is simple. The key is seeing if they understood the problem, asked questions, etc., and what solution they created to solve it. And, what does their code look like?
This process results in 1 or 2 good candidates. Now the fun begins.
Start them part-time, with lots of supervision
We put them on a low-risk project under tight supervision with one of our team leads. Do they show up? Do they get along with other members of the team? Do they take ownership of the tasks they are given? Is the code still good?
The good ones come on full-time
The key to this strategy is knowing who you have as fast as possible. The 1 in 100 who make it through are valuable. We pay them WELL above the industry average ($40,000+ to start, with paid vacation and holidays). What we are left with a great programmers who get work done properly, leading to more projects.
The alternative is just not acceptable. We’ve seen it too many times.