« Why Mark Suster is wrong about not hiring job hoppers | Main

January 13, 2011

Comments

Luke Melia

Well-written and well-considered post, Paul. I think that your approach can achieve the goal, but not without a loss of velocity, which is a huge pressure at any startup, especially seed-funded companies with a relatively short cash runway.

I'm a big proponent of pair programming, and think that when good developers pair, there is little to know loss of velocity. But pairing when serious mentoring is big goal is a lot slower in the short-term than forgoing the hire altogether.

Start-ups who know they have a long runway can afford to go with your strategy. I personally wouldn't recommend it to most startups.

Anon

Also I question startups who won't consider remote workers. If you have a senior technical person to interface with the business, they should be smart enough to divy out tasks. If you hire the wrong remote worker (someone who is jsut gaming the system to fund their own startup - fire their ass). Don't believe me? Try this experiment: put up a posting on the Ruby on Rails LinkedIn group saying you want a remote worker, but will only consider an individual who posts their interest publicly via comments. I guarantee it will blow your mind.

Paul Dix

Luke, while I agree that your velocity may take a little bit of a hit, I don't think it will be that bad. I also disagree that it's a bad idea for seed stage startups to hire inexperienced people. I'll give early stage Facebook as an example. The only engineers involved in Facebook at the seed stage were students who were either only half way through their CS degree or weren't even in CS to begin with. They picked up what they needed on the job and went on to become well regarded, experienced engineers. Zuckerberg was more than willing to hire inexperienced engineers because he was inexperienced himself.

Running out of runway will kill any startup, regardless of the experience level of engineers. Experienced engineers may be able to turn out more features, but it doesn't mean that they'll turn out the right ones.

Brynary

Late to the party, but a few, somewhat random thoughts:

  • I think the definition of "Senior Software Engineer" gets conflated a lot. Pairing at a good shop for 6 months might make you productive, but not Senior. Seniors engineers have been through multiple long-term projects and therefore have the experience from that to bring to the problem at hand.
  • I agree with Luke that hiring green engineers is a tough sell when looking at runway. If hiring employee X will be net-negative to productivity for 3 months, neutral for 3 months, and positive after that, it's hard to make that call if you've got 1-1.5 years of cash in the bank. The question of whether they are building the right features is orthogonal -- but engineers with the most experience are also more likely to help the business understand the tradeoff of the different features they can build.
  • Finally, I agree with Paul that there are available engineers, but startups are choosing not to hire them. This cuts directly to the value proposition of a green vs. senior engineer. Personally, I subscribe to the theory that a good Senior engineer is 5-10x more valuable than an "average" engineer over time. I think a lot of other engineers managers feel this implicitly as well. But here's the problem: Politically, we can't offer 5x salary for someone who is worth that much. An outsider would think it's crazy to pay a rank-and-file engineer even $200k. So, there are a effectively-infinite number of startups trying to make a bargain hire of an extremely valuable engineer at a price well below their value. (Although I hear there are now local startups offering in the $180s for Sr. Engineers now.) With such an imbalance, traditional hiring strategies breakdown, and even progressive HR policies get lost in the noise.

Paul Dix

With regards to the senior thing, what about the following example. Say there's an engineer with 6 years experience delivering projects, but not in the language you're working in. You bring them on and they pick up your language. Is this person senior when they come in? How about after 6 months?

I think they're senior the entire time. They just need a little ramp up time to pick up the language specifics. Having this person pair with one of your existing programmers probably won't reduce your velocity. They may ask basic questions, but those are quickly answered. Most of the pairing time is spent discussing the solution anyway. If you think it will significantly reduce velocity, I'm curious to hear why.

Or how about this. You have a single pair with two good programmers. Call them either mid-level or senior. You hire two green people. So now you have two pairs with one mid/senior and one green. I'm willing to bet that your velocity will increase immediately and go up even more as the green programmers become more proficient. You're still talking about two pairs vs. one pair. And given that you have a proficient programmer in each of the pairs they'll offset the junior person. Besides, some of the value of pairing is simply having someone to talk through a solution with, regardless of their experience level.

Regardless of all this, my overall point is that there are engineers out there that are perfectly able to pick up a project and help build it, it's just that expectations can sometimes be too high on the side of the startups. You either have the money and/or the clout to recruit the best or you have to make a compromise. Most startups fall into the having to make a compromise category. They need to seriously think about how to ensure that they build talent in the organization.

Brynary

With your example of an engineer who has a lot of experience (e.g. 6 years) on other similar technologies, yes I'd say many of those are senior engineers (specifically, the ones with the right intangibles). And I've seen these people join highly effective teams and do a great job -- getting above the productivity curve quickly. I wouldn't hesitate to consider those sorts of candidates at any team size.

A green programmer, on the other hand, is a different story. I've also seen situations where trying to bring programmers up to speed who were green slowed down development and created a situation that no one was really happy with. So I'd recommend caution in that approach, but would start to consider it at around 3 pairs team size.

-Bryan

Kyle

Thanks for writing this, it was very informative. I would like to consider myself (perhaps arrogantly) a good engineer (above average at least), and I want to share with you what it looks on the other side of things.

Here's the story in a nutshell: My girlfriend is moving to New York for college for up to three years. I live in Portland Oregon right now, and I have good employment at a great company. I've been flirting with the idea of joining her in New York for the duration.. I do kindof like the idea of hanging out in NYC for a while, just to try it (probably won't get another opportunity again, you know?)

I've done a lot of searching through the New York job boards and I haven't found anything that I would describe as approachable. The jobs either sound very strict and unpleasant, are asking for junior developers, are "barely hanging on with a bad idea", or are asking for suspiciously stupid things (the whole "ultra rails ninja wizards" thing).

So I'd like to work in NYC on Ruby/Sinatra/RoR web work, but from my chair the pickings are slim. I feel it's not just a lack of engineering talent.. it's a lack of enticing offers for those engineers. As of now, I have not found work that is sufficient for me to leave my current job and enter another one. The last thing I need if I move to the most expensive city in America is a crap job I can't afford to bail out of.

I'm sure there's plenty of opportunities floating around of course, and you have to dig a little bit.. but I'll need a steady income before I get there, because I won't have the money to look for good work for three months. In that light, if you have any good leads, let me know :-)

BTW, I stumbled onto your site while playing with Typhoeus.. it's a great library. Thank you for including Multipart Form support.. it's the big thing most net libraries miss.

drew

Are you serious? You think education is going to produce programmers. Anyone smart enough to program knows paying for college with loans is a waste and huge financial risk. You can't even bankrupt the loans. I have meet some of the best techs without degrees. And getting into 1 of the 5 great computer science colleges is like playing the lottery. If you want to really attract developers, you can start by canceling all housing programs. Why is NYC one of the few cities with a broad rent control program but still is the most expensive in terms of rent? Oh, you can find many $3000 apartments for rent. Half the average salary of a tech. The real thing holding NYC back from being a tech leader is taxes and crazy rent prices. Startups look in places where there is low taxes, land and talent. I love NYC but it will take more exodus and higher vacancy rates before something happens. And god forbid another bailout is made to large property companies that only distort the market and keep prices high.

The comments to this entry are closed.

My Photo

Talks

Linkage

Twitter / pauldix