Developer Hunting

From Zanecorpwiki

Jump to: navigation, search

The following is a list of dos and don'ts for individuals looking for technical help on projects. I've compiled this list from my own experience as a software developer and entrepreneur with significant hiring success and in collaboration with my colleagues. Think of it as the business-savvy technical expert's advice on how to find the best talent possible.

Contents

Misconception: There's tons of good developers out there.

Most people look at the development market and they see a surplus of developers with a wide range of price points. In any given technology/specialty, there's everything from just-about-minimum-wage to $250/hr. One would reasonably think that it's easy to find exactly what you need and get quality help at a given price point.

Nothing could be further from the truth.

The truth is that the development market is flooded by poor developers. In many cases, the average developer for a given technology is barely competent. Unfortunately, there are no professional checks on software development. Anyone can call themselves a developer. The money and white collar nature of the job attract tons of people to the profession and there is no effective gate keeping process.

Furthermore, there's so little knowledge among the business guys and HR people that hire the developers that it's not at all uncommon for poor developers to rise to senior positions for every reason except their skill in their profession. The good news is that given enough time and the right strategy, you can get a great developer at pretty much any price point (so long as you're willing to give up equity and can prove that you're good partner). The bad news is that even given unlimited funds, you're hardly any better off because resume and pay scale are extremely poor indicators of a developer's worth.

You can't rely any of the expected indicators to tag a good developer. Truth is, it takes on to spot one. The best developers are a rare resource. Consequently, they're going to be busy. They're going to have other offers. They're not going to bother working with dicks who don't respect or understand them. This is the merest of introductions on how to deal with these facts.

Don'ts

Don't #1: Avoid specifying technologies unless it's actually important.

Most people when looking for talent want to narrow the scope. They want to use the latest and greatest technology. They want to get on board with whatever development fashion they read about in iFast Company/i or iWired/i. Makes sense, but there are two emhuge/em reasons why looking for a PHP or Rails or Joomla! or What-Ever developer is a bad idea.

Reason #1: You're not the technology expert. The guy/gal you're looking for is. Doesn't it make sense to discuss the project with someone that actually has experience in many technologies and let them guide you to the best? Defining the technology should be part of the job.

There is no silver bullet in development. Different things are good for different projects. There's a churn of new stuff that's constantly comes out. The trade mag and Internet pieces talk about what's new because that's the way they get readers. Sometimes stuff is popular for all the wrong reasons, sometimes a truly excellent technology just doesn't fit you're project.

Reason #2: The technology stack is not as important as you think. The truth is that the difference between any two developer can easily be multiple orders of magnitude. The difference between any two reasonable, modern technologies is going to be relatively slight.

By saying you're looking for a PHP developer, you limit yourself to a relatively few number of people that could have done the job for you. You're much better off doing the project in Rails or Java with a better developer than insisting on doing the project in PHP with a sub-optimal developer. By specifying a technology stack out the door, you are unnecessarily cutting down the candidate pool.

Reason #3: The best developers won't want to work with you. Imagine that you're a crack developer in high demand. You're going to be expert in multiple technologies. You can easily learn a new technology and do better than most developers that have spent years specializing. You've got more demand than time.

Now, imagine you see an add that starts with Looking to develop awesome new idea in XYZ technology.... Nine times out of ten, you're going to stop reading right there because you know that the person that placed the add is going to be a pain to work with. Why? Because customers that specify technology usually don't know what they're talking about (see previous two reasons). As a crack developer in high demand, part of your selection criteria is finding the bests partner/clients to work with. They don't mean to be, but people that talk about technologies without being experts themselves are a pain to work with (again, see previous reasons).

Caveat: Proprietary markets. The only time it makes sense to specify a technology is when dealing with hot, proprietary markets. The best current example of this is iPhone development. If the business has to go mobile and it has to be on the iPhone, looking for an iPhone developer does--usually--make sense.

Even here, though, be careful. Many iPhone apps could be deployed as web apps and launched through Safari. It's actually not that hard to make a safari web-app look exactly like an iPhone app, and in some cases that's even the better thing to do. On the developer side, you get access to a much larger pool of web developers. So, even when you're 100% sure that you need a certain technology, be careful because odds are you're wrong.

Don't #2: Avoid focusing on your idea to the exclusion of everything else.

Most adverts I see can be reduced to the following: I'm looking for a developer to help out with this awesome/amazing/sure-fire/pick-your-adjective idea. Email me. This is probably the hardest thing to understand, but you're idea just isn't that important.

Reason #1: There are lots of good ideas. There are a ton of good ideas out there. The best developers are not sitting around saying, Oh, when will someone with a great idea come along. The best developers are more like VC's--they hear great ideas all the time. At any given moment, a good developer is going to have multiple great ideas to pick from.

The good developer is going to select their partner/clients not by the greatness of their idea, but by everything else. Who has the business experience/connections to get the product to market? Who's going to be good to work with? Who respects the developer and the development process?

Reason #2: Your idea isn't unique. Truisms:

  1. Even if you're the first to have a good idea, the 100% guarantee is that by the time you get to market, there will be competitors.
  2. First to market is not an advantage.
  3. If you're actually alone in a market, you should be emseriously/em worried.

Reason #3: Ideas don't make products. Any idea sufficiently unique or interesting is going to be non-trivial to distill into reality. By reason #2, we know that the idea itself is not going to be the defining differentiator of the product. To actually sell your idea, it needs to be distilled into a product, which is the developers job. That's going to be hard. It will probably take many, many more man hours to make the product than it did for you to come up with the idea. Whoever does sales and marketing will spend more time on that than you did on coming up with the idea.

At the end of the day, if the value of the idea itself isn't dwarfed by the value of all the other contributions you have a serious problem. First, because the idea isn't going to be your differentiator (by reason #2). Second, because any idea worth doing and defensible is simply going to take a lot of work to do.

Don't #3: Don't list demands in your advert.

Must be willing to sign NDA, Must be work for hire, etc.

The problem with this is, again, the best developers are like VCs. They're busy doing awesome stuff already. VCs don't sign NDAs because they're likely to hear similar ideas from other people. The clients they pick up aren't because of the idea, but because of who the client is. Similarly, demanding that you own 100% of the code produced simply means that those developers out there that have the libraries of the best code which could catapult your product into orbit are simply going to say screw you.

Sometimes there are good reasons for NDAs and insisting on 100% code ownership, but the initial advert is not the place to talk about that. Let the best developers come to you first, wow them with your idea and your understanding of the development process, and then talk about your these business requirements.

Dos

Do #1: Use culture to narrow the candidate pool.

It's important to narrow the candidate pool, but it should be done in the right way.

The best developers--and the best developers to work with you--are very much into their culture. The economics of development work are such that individuals are not paid what they're worth. A developer who is an order of magnitude better than the average can demand a 50% pay increase than the average developer. A developer two orders of magnitude better can demand 100% increase. Plus, there will be average developers demanding those same salaries.

The best developers compensate for this disparity by focusing on what makes them happy. This means their culture. They work with good people on fun projects. Interestingly, the very best of the best are sometimes even cheaper because they have the security to work on the most fun projects regardless of the pay.

Most importantly, when communicating culture don't tell, show. Don't tell people you're cool/fun/good to work with, show it.

Do #2: Look for a partner.

It's a pretty poor and/or naive developer that doesn't understand how critical they are to the process of creating a product. The best developers understand that they're central. Some will think that they're more important than you, and sometimes they'll be right. If you're looking for a wage slave, then you'll never get anyone decent. Look for a partner.

Do #3: Find a consultant.

The best developers out there are busy, so odds are than most good developers that see your advert are going to be too busy to help you. One very effective strategy is to first look for a hiring consultant. A great developer may not have time to take on you're project, but they may have time to help you find another great developer.

Personal tools