top | item 4183413

Why You Need To Hire Great Developers

21 points| benlakey | 13 years ago |benlakey.com | reply

31 comments

order
[+] larryfreeman|13 years ago|reply
I hear this statement all the time. Great developers are 20x more productive than average developers.

I've been a software engineering manager for 20+ years.

I've worked with great teams and I've worked with teams where it fell on me to fix a bug because no one else could figure it out.

In my experience, it's more complicated than good developers vs. average developers.

There are best practices that great developers demonstrate. There are great developers who are terrible team players and there are terrible developers who turn out to be great product managers. There are average developers who have a critical ability to keep the team together and to get even more out of the top developers.

In my experience, I prefer the right attitude, the right drive, and a person who is constantly striving to do better.

There's a lot of arrogance in our industry. I'm not sure it's something that we should continue to embrace.

[+] benlakey|13 years ago|reply
I agree with you wholeheartedly, and I think the points are complimentary. I also wrote a post prior to this one, in which I argue that a team of good developers that can work together is far better than a team with one technically superior developer who can't work with others. If you can find the developer who is both technically great, and can communicate effectively in a team, you've found a very special person indeed.
[+] Timothee|13 years ago|reply
This post feels a bit too much self-congratulatory. "look! I'm a great developer! And if you're one too, upvote!"

For one thing, the problem is that it's not a simple dichotomy of great developers vs. average developers. I have nothing to back it up, but I'm guessing it's a fairly typical normal distribution of talent… Then, where does "greatness" start? 20x sounds fantastic, but what's the difference between a great developer and a developer that just a bit less good? Will I get a 2x at least?

The other thing that bothers me is that it's a very selfish and elitist idea. I'm pretty sure that most of the great developers didn't start as such. To become "great", they worked and learned from others who were better than them. And they certainly did so by working in teams that accepted a "not-great" developer amongst them. The horror.

If everybody did like you're saying, we'd eventually run out of great developers, because the not-great-by-a-hair would have to work with the terrible horrible average developers and wouldn't progress as they should/could. (except for the rare breed of truly great developers who were better at 14 than most developers will ever be)

edit: in this last paragraph, it sounds like I consider myself a great developer. Let it be known that I think no such thing.

[+] benlakey|13 years ago|reply
These are fine points. Apologies if it came off sounding self-congratulatory.
[+] daenz|13 years ago|reply
This article was very confusing. They go on to praise the great developers, and how much companies need them, etc, but then they end with this:

>If after you interview a candidate you find that you aren’t completely sure about them, don’t hire them. If you can’t tell if they are good or not, don’t hire them. If 2 out of 6 people on the interview loop are either ‘no’ or ‘maybe’, don’t hire them. The consequence of letting a bad developer in the door is far greater than maybe missing a good one.

This is exactly what people do, and it's the exact reason why finding great developers is hard. And ironically, this tip is posted under the section "We’re Awful At Distinguishing Great Developers."

Great developers are difficult to spot because they can look like bad developers. Great developers are often honest about what they know and don't know. If you ask if they know mysql, their answer might be that they're very familiar with it, but there's a lot about it they don't know. Great developers can often lack the confidence that average developers exude to make up for their lack of skill. If you ask how to do something, they might express that their way may not be the best. Great developers can be nervous, because they can believe that they may not be as qualified as a company is seeking.

All these signals make people doing the hiring uncertain. To put a filter of "unless 1000% certain, do not hire" just ensures you get someone of, at absolute best, your skill level, and at worst, a fantastic bullshitter.

[+] benlakey|13 years ago|reply
Would you agree that being a great communicator, and growing as a person to be less nervous are aspects in the makeup of a great developer? (I'm not saying they are, just curious what you think).
[+] jiggy2011|13 years ago|reply
Can somebody invent a way to filter programmer groupthink articles out of the HN homepage?
[+] blackhole|13 years ago|reply
This article is operating on an assumption that you let any given developer access your entire codebase. By partitioning developers into certain projects, you can isolate bad developers and move them into less harmful positions, while moving the majority of your great developers into critical infrastructure areas. There are ways to handle this that do not include missing out on good developers.
[+] dinkumthinkum|13 years ago|reply
Are we done with having original thoughts now? Why was this written? Programming bloggers that are in some kind of management or, especially, founders write this exact same post 100 times a day ... We get it ... The "20x rock star progammer" meme is real and we have to pay attention !!!!

Ok, whatever. Stop talking about it. I think it is probably true that great programmers are order of magnitude BUT please don't flame over that because I don't care.

However, why do most of these CRUD projects think rock stars want to work for them or why do they think they are doing "really important stuff" when they are really just doing CRUD, and in some cases plain old boring CRUD.

Anyway, this whole concept, true or not is just cliche at this point.

[+] jamesbanner|13 years ago|reply
In my experience hiring great developers brings more challenges then benefits.

They are difficult to retain, They are difficult to be made satisfied, you need to change your company compensation rules to accommodate them and various other problems.

It's much better in my experience to hire a mediocre developer and train him in your domain.

[+] benlakey|13 years ago|reply
If it requires changing your company compensation rules, you have different problems at hand. Great developers don't cost more in dollar signs so much as they do in operating in an environment with other great developers, working on great challenges.
[+] mbailey|13 years ago|reply
My company is making a business of identifying great developers (gild.com). It is a notoriously difficult task, even with the wealth of information developers tend to make public about themselves.
[+] spitfire|13 years ago|reply
"automated scoring" and "social network activity".

That sounds like a fantastic way to find scads of mediocre developers. Development isn't about language, it's about comprehension.

[+] amcintyre|13 years ago|reply
...even with the wealth of information developers tend to make public about themselves.

I guess I'm gonna be a negative Nancy here, but I know some very good developers that don't make anything about themselves public. I expect some of the very best are completely invisible on the internet, at least by their real name, because they're too busy working on things their employers would rather keep as trade secrets.

[+] sanswork|13 years ago|reply
Is there any way to view your own profile on gild?
[+] thornelius|13 years ago|reply
i find it ironic that your sign up page, for gild.com, doesn't work...
[+] Brajeshwar|13 years ago|reply
"There are lots of companies and people earning lots of money writing bad codes. There are lots of money to be made fixing those bad codes."
[+] InclinedPlane|13 years ago|reply
I don't think hiring great developers is something everyone must do. After all, there are not enough of them to go around. Instead I'd say that the ability to hire great developers is a key advantage to being a smaller company.

Also, I'd say that the notions of "10x" or "20x" greater productivity from the best developers are set on the wrong footing entirely. Such ideas presuppose that development is just production work, when in reality it is highly creative. The advantage of good developers isn't just that they do what others would do but more efficiently, the advantage is that they do much more. Often times they expand your business. Quite often the genesis of a multi-million dollar product or services offering doesn't come from the top-down, conceived in management and merely implemented by the rank and file, but instead comes from the bottom-up, from a wacky idea that a developer has and rolls into a tech demo. Without great developers that's the sort of thing you miss out on.

[+] jamesbanner|13 years ago|reply
Software development has lot of challenges and doing things fast isn't one of them.

We should get over the "x times more productive" notion altogether. Emphasis should be on doing things right than "fast".

[+] benlakey|13 years ago|reply
The 10x/20x thing doesn't refer to productivity at all. It refers to ability. So I think we're in fact saying the same thing here.