Thursday, August 28, 2008

Great Developers Are Hard To Find, Regardless of Language

Matt Aimonetti has a client that believes Rubyists don't scale. Sorry Matt, your client is wrong.

It's as easy to hire great Ruby programmers as it is to hire great Java programmers or great programmers for any given popular language.

The problem is, it's not easy to hire great programmers in any language. Worse, companies still think they need to hire one or two great programmers and a supporting cast of average programmers. As Martin Fowler pointed out, cheaper developers are actually more expensive than experts. To make things worse, if you end up with a NNPP or two you'll be headed in the wrong direction.

As I've said before, 50% of all programmers need to find a new profession. In the short term this will create a much larger demand for developers, and salaries will rise. However, since one expert programmer produces significantly more (up to 28 times more) than two terrible programmers, companies will ultimately save money. It's unlikely that salaries of experts will rise to the sum of 28 terrible programmer's salaries.

Some people believe that the average programmers are valuable because they do the jobs the experts don't feel like doing. This is simply wrong. Average programmers will do average jobs on mundane tasks, which often turns into a mess for expert programmers to fix. Even if the solution proposed by average programmers doesn't require an entire rewrite, it is often sub-optimal and can have implications with other pieces of software that rely on it.

There's a better way. Give mundane tasks to expert programmers. Expert programmers remove or automate mundane tasks. The solutions will be superior, and either way the experts won't be doing mundane tasks.

If you have great programmers producing up to 28 times more, and you only hire great programmers, how many programmers do you think you need? Of course the answer depends on how much software needs to be written, but in general teams can become a lot smaller.

And this is the problem with Matt's client's statement. While they may not be able to easily build a team of average Ruby developers, it doesn't matter, that's the wrong goal. Of course, I have no way of knowing the caliber they were looking to hire. But, I do know if they wanted Ruby experts that will travel, ThoughtWorks employs several. So, I'm left to guess that they fell into the same old misguided pattern of trying to pay average salaries to average developers.

I'm left wondering why they would take expert advice on what technology to use, hire an expert, achieve success and then stop pursuing experts. Of course, I'm not surprised. As a consultant, I saw it time and time again.

The question isn't whether you can hire rubyists or not, it's whether or not you are willing to put the effort in to hire experts. It isn't easy to hire experts regardless of the language, but it is worth it.
Post a Comment