In the article The causes of greatness, Bob Lewis explains what makes an organization great focusing on the value of people. The article offers several astute observations, but the main idea can be summarized in the following statement:

"[I]f you want an organization that works, you'll get more leverage from hiring great employees than from any other single effort you can undertake."

Among high-tech companies, Google understands the importance of hiring quality workers better than most. In case you haven't heard about Google's hiring philosophy, it's based on two simple rules:

Only hire candidates who are above the mean of your current employees;and

"Whenever you give project managers responsibility for hiring for their own projects they'll take the best candidate in the pool, even if that candidate is sub-standard for the company, because every manager wants some help for their project rather than no help. That's why we do all hiring at the company level, not the project level."

Google's hiring philosophy seems to pay off (at least, if you believe Google employees who like to brag how smart their co-workers are); unfortunately, it is not that common. Most companies make their hiring decisions under the following premises:

If you do not hire someone today, your open req* may be gone tomorrow (due to cost saving initiatives, reorganization, outsourcing, etc).

Considering the previous statement, don't waste time searching for the best candidate; just pick the first applicant, who seems to fit the job description.

Organizations operating under such premises tend to underestimate the implications of bad hiring decisions because they succumb to a couple of fallacies.

Fallacy #1: Bad workers will do a good job if they follow an approved process/methodology/procedure (CMMi, XP, Agile, SCRUM, etc).

This belief is based on the assumption that processes are more important than people. Those who hold this belief think that any organizational problem can be solved with the help of a good process.

While processes have their place in the organization, managers tend to overestimate their value because relying on processes gives them a (false) sense of control. If your organization is not effective, it is comforting to believe that once you adopt a new process, things will change to the better. If you admit that bad employees are at the root of your problems, you will have to confront people and either make them change or control their behavior, something good managers do not enjoy doing.

The good news is that certain processes adopted by software development teams can reduce the number of problems caused by bad developers. Juval Löwy once wrote:

"Rapid development tools will make bad developers worse, because they allow them to produce bad code faster."

Likewise, by introducing certain bureaucratic overhead, processes can make bad developers less bad, because they will force them to produce bad code slower. However, if you're stuck with mediocre developers, no process will make your organization sufficiently effective. If you agree with Steve Yagge, who suggested that

"Bad developers, who constitute the majority of all developers worldwide, can write bad code in any language you throw at them,"

you should agree that bad developers can write bad code under any process you throw at them. This brings us to the fallacy of personal improvement.

Fallacy #2: Certain measures -- such as effective supervision, mentoring, a development plan -- can turn bad workers into good workers.

I'm not questioning a possibility of human self-improvement, but I cannot seem to recall a single case of a bad worker turning good. I have witnessed good workers becoming better, average workers staying about the same, but bad workers tend to remain bad.

Some bad workers do not improve because they don't even understand that they are bad (or how bad they are). Cornell University researches conducting the Unskilled and Unaware of It study concluded:

"When one fails to recognize that he or she has performed poorly, the individual is left assuming that they have performed well. As a result, the incompetent will tend to grossly overestimate their skills and abilities." (read the review)

The study suggests that people can be trained to "recognize the limitations of their abilities," but what about actual working skills, such as ability to write software? According to the findings of A cognitive study of early learning of programming, most people can't be taught programming. Nevertheless, many of those who can't learn to program somehow manage to get Computer Science degrees and eventually get programming jobs.

So what's a manager to do? To paraphrase Bob Lewis,

"If you want an organization that works, you'll get more leverage from firing bad employees than from any other single effort you can undertake."

This may sound harsh, but for organizations which do not invest in a rigorous -- a'la Google -- hiring procedure, getting rid of bad workers (not necessarily via layoffs) may be the most effective method of achieving efficiency. I'm not advocating such draconian measures as Jack Welch's annual firing of the bottom 10% of his managers (although, if implemented correctly it could be quite effective), but getting rid of people, who cannot do their job, is essential to the health of the organization. If you are interested in better ideas, read the references below.