1) Simple programming challenge (< 30 minutes) by email. To see if they can actually write good code. Resume/age/experience/location mostly disregarded.
2) Casual discussion-style interview to get to know how they think and behave.
3) Short term contract with a predefined project (< 3 months) to see how they work over time.
If (3) is working for you, great; however, bear in mind that it's a seller's market for talent right now. I'd neg an offer contingent on doing a 3 month contract first, and I'd advise my friends to do the same; why should I shoulder that risk, if there are 2-3 other good positions open that will take it on for me by offering FT right away?
I think the problem between tptacek and me and the others arguing is that many of us are not from the USA... The USA being an At-Will employment system, there is not as much downside with hiring someone full time and the health care issue is specific to the US...
Conversely, (3) might attract some programmers who want to work at a place that is very careful about who they bring on FT.
There are three risks compared to a FT offer - (1) the business goes south and they can't afford to bring you on FT (in which case you might be screwed even if you had gotten a FT offer), (2) you're not a cultural fit (in which case, it's the better outcome for everybody) and (3) you don't meet their standards.
No, you've missed a key risk: (4) that the prospective employer continues to get resumes from people even after "filling" the position and decides on T+89 that you're great, but they can do even better.
During the 90 day contract, both you and the employer must technically still be "looking" (the company still has an FT headcount to fill, and the dev still doesn't have a job). But the company is inherently better positioned to deal with the uncertainty: companies hire many people simultaneously, and keeping a req open costs them nothing. Individuals, on the other hand, have a very hard time conducting a serious job search and doing their 100% on a full-time job simultaneously.
That is not actually a risk in the FT dev model, where the incentives are structured differently; it is instead very much more like the "up or out!" model of the Big 4 accounting firms or investment banks: you got the shot at the gig, now work your ass off to make sure you can keep it!
If you are a friend of mine and you are staring down the barrel of one of these "contract-to-hire" offers, take my advice: turn it down. We've been hiring nonstop for the past couple years, including for dev, and it is ludicrously, insanely good to hire good people. You hold all the cards, except (tragically) the one labeled "knowing what you're worth".
I agree with you, and want to add some more about this. Usually the 90 day things are from companies that also want you to sell your house and relocate to where they are. Often you do a fantastic job and are let go at the end of the 90 days because 90% of the time this scheme is how disreputable companies hire contractors for 90 day stints while paying low rates with no benefits.
Now sure, this guy is the rare 10% that is completely honest and pure, I will assume that and he has no ill motive at all. But the other 90% that he has no control over is the real issue with this. Most people with talent that have been around the block a couple times have gotten burned by this scam and avoid these scenarios like the plague. If you are a reputed expert the way you handle this is either handle it as a straight consulting job at your standard rate (which should be something like $180-$250/hr if you are any good at what you do or $120 if you are a newbie) for the 90 days, or you put a big fat penalty in the contract that if they say no at the end they have to pay severance to cover the full cost of both of your relocations, the one out there, and the one back, including losses from the required hasty real estate transactions. Will they agree to these? Usually not, and that's the point. You really only want to do business with people who are fair dealing, not people looking to cheat contractors through false promises.
Another scam is the two day long interview where you work on some serious problem the company is having and it happens that you are known as an expert in that field, your name coming up on some searches. For me it was Windows graphics drivers. Back in the 1990s I would get tons of job interview requests and then would be treated to two days of intense querying to "prove" that I knew how to solve their problems in detail during which they either took a lot of notes or recorded the interview. Lots of other people get this one too.
Another related scam is the programming problem you are supposed to solve which should take 30 minutes, but as an expert it takes a full week. Instead of being a puzzle it is something obviously related to their business.
Just say no to all these! I know the bright eyed and bushy tailed kids won't listen, but this old geezer has to warn them nonetheless.
Don't throw the baby out with the bathwater - plenty of scams out there, but the lesson is to look out for those that you mentioned, not to use the contractor stint as some sort of litmus test.
(4) isn't really a risk if the employer is following a consistent hiring procedure, since they will not have had the time necessary to evaluate your potential replacement. What sane employer is going to willingly pass up someone who's been vetted over 3 months (and determined to meet the standards) for an unknown?
Hey, if you say so. If this is working out for you, that's great. I wouldn't do it. I'd tell friends not to go along with it. In Q1'2011, I wouldn't have wanted to do anything that made it even epsilon harder to recruit and retain the best people. But I'm (a) in a talent-intensive business with fierce competition for people, and (b) a consultant who knows a bit about how contracts are actually valued and who thus thinks anyone getting less than $XXX/hr for 1099 dev work might be getting jacked.
To each their own - if your only goal is to minimize missing qualified people, then I would agree that you should offer FT offers to everyone. If you have a stronger goal of minimizing the number of unqualified people you hire, then that's a different issue.
Personally, I'd rather work at a company that falls into the latter category.
Yup. "No false positives" is my goal. I've experienced what happens when a company gets bloated and teams get diluted with bozos. Even one person can poison a team. Firing people is bad for a team too. I'm determined to avoid that to a great extent. I know of no other way than actually working with a person to determine whether I want to keep working with them.
I don't think most people even question how ridiculous it is that companies interview a person for a couple hours and then agree to work with them for many months or years before they will even consider firing them (usually only after additional months of trying to "work it out").
In my opinion the best recruitment tool is having a team that a potential candidate would be really happy (and lucky) to work with. You can only do that if you keep standards up and hire slowly and methodically. A bit of a pain in the beginning, but worth it for everyone involved in the end.
Does not giving someone a full-time offer after the short-term contract hurt the team like firing someone? I could imagine it going either way. Perhaps it's better because those not in their contract period don't start thinking "it could happen to me at any time."
As a candidate, I would like this approach a lot because it would give me a better opportunity to evaluate the organization to find out whether it'd be the kind of place I'd like to work. A short contract is an excellent way for both sides to evaluate one another and make sure that the fit is mutual; I've worked both in places where I loved the technology but disliked the culture and vice versa and neither one is great for long-term full time employment.
Of course, that is provided that the company would be paying my standard consulting rate for the relevant 3-month period.
If the 3 month contract is paid the normal wage then I'd rather go to a company that does this because it means that there's an higher probability of having competent coworkers there. That's the reason why I do the same in my own company now.
This is of course because he said he didn't care about location, so there's no moving costs and so on...
It's like they're almost trying to winnow the pool down to developers whose programming ability outperforms their career experience and business sense. They certainly exist: I had the business sense of wet paint as recently as two years ago (which might explain why I willingly worked as a salaryman despite having perfect knowledge of the hours and salary).
Or winnowing it to people who have experienced the results of conventional hiring practices and want a place that is more rigorous about it.
I spent many years hiring and working for companies that did it the way most people do it. The results speak for themselves: most companies suck to work for and most of them suck because of a few (or not so few) bozos and the environment they create.
You go to a challenging university because you want to take advantage of their knowledge, to the extent that you're willing to pay them for it. An employer wants to take advantage of your knowledge, to the extent that they're willing to pay you for it. The situations aren't comparable.
I agree that three month contracts should be compensated at contractor wages rather than employee wages, unless the company is also paying for health benefits, some sort of portable retirement plan, etc. Otherwise you're giving up those items in return for zero commitment from the company. Not a good deal.
I would say it's comparable, at least in the way I treat a job.
If you work at an excellent company, you can learn much, much more than you do at an average job, and you'll likely make connections with better people. Working with excellent people at a job has many of the same benefits as studying with many excellent people at a university. It's one of the biggest reasons to go to an elite school, and one of the biggest reasons to work at a very selective job.
If it's a great company, I think it's worth giving up some of those things for the chance to work there. If you can show them that you're much better than average, they'd be stupid not to bring you on full time. It's mainly risky if you don't think you can demonstrate that.
Virtually all employment in the US is at will, meaning you are continually on "probation". The difference between a contractor and an FT is that the contractor is 1099'd, pays both halves of FICA taxes, and isn't provided health insurance; more importantly, when the employer is as overt about the issue as "not hiring you full time", there's no implied social contract or norm ensuring you'll even end up getting the job.
Contractors make significantly more money than full time devs partly for this reason. They're compensated for shouldering the risk of keeping a full book of work. Getting a good developer to work as a contractor for what will eventually be their FT wage is almost kind of a scam.
This is a simple, practical issue. You're Sam, a developer with 5 years experience. You have a choice between two roughly equal jobs. One prospective employer offers you a full time job tomorrow; the other offers you a 3 month auditioning contract. Which offer do you pick?
Agreed, but most states as well as federal laws also prohibit discrimination, and companies of any size/sophistication have HR policies to be sure they avoid being vulnerable to discrimination lawsuits in todays litigious climate. Probably fairly safe to fire a 20 - 30 year old white male for "any reason" but firing a minority or female or older person has to be done more carefully, following all established policy. With an explicit 90 probationary period there is more freedom in that initial window of time.
Also if you work 40 hours a week at the employer's place of business, are provided with all the tools you need to work, are paid directly by the employer, and are told what hours to work and how to do the task, the IRS will consider you an employee. Maybe if its only for 90 days you can get away with calling the person a contractor, but I think you're walking a fine line.
That doesn't contradict what tptacek said, though. You may be an employee, though probationary, for 90 days, but the company should still compensate you at a higher rate for those 90 days to reflect the risk you're taking.
Try looking at it a different way - assume, you will have a full time job at either of these prospective employers. Do you want the one that makes FT offers immediately, or the one that makes them only after testing new people out for 3 months?
I want the one that makes FT offers, because I don't believe that the best programmers, who can write their own ticket in this business climate, would put up with this contracting bullshit. This approach to hiring is a cop-out. It says, "we don't know how to hire properly, so we're going to push the risk onto the candidates".
I've seen the contracts with my own eyes. But I guess I can't prove that the developers in question were good without divulging names.
Anyways, I don't see why this is a cop-out any more than any other hiring procedure. No company has anywhere near a 100% success rate - this procedure acknowledges the shortcomings of a traditional interview process (namely that succeeding on an interview and succeeding as a developer are two very different animals) and tries to address them.
> Anyways, I don't see why this is a cop-out any more than any other hiring procedure. No company has anywhere near a 100% success rate - this procedure acknowledges the shortcomings of a traditional interview process (namely that succeeding on an interview and succeeding as a developer are two very different animals) and tries to address them.
Agreed. But tptacek's point seem to be that this new process addresses the perceived weaknesses of traditional processes by moving all the downsides/risks to the potential employee. I think the hiring firm can signal their honorable intentions more clearly if they would pay a significantly higher salary during "probation" - something that compensates for lost benefits etc.
Edit: staunch mentions elsewhere on this thread that he is offering higher rates during probation.
I'd take the one that makes full-time offers immediately in a heartbeat, because I wouldn't trust the company that does the 3-month, no-benefits contracting "test".
Going to work for a company with employees of varying skill is no big deal; every company above a certain size has people who probably shouldn't have been hired. Going to work for a company with shady management, however, is a deal-breaker.
Exactly. I don't get what the big deal is about working with lower skilled programmers. At my job there are some fairly "bad" programmers, but even they are a pleasure to work with. The trick is simply to make sure you hire nice people. I've spent plenty of time getting them up to speed with various languages and techniques, and they're all very receptive. The trick is, you yourself have to leave ego at the door. I think this is the hard part for a lot of people.
My first programming job started with a two week contract which then ultimately became a FT position.
So I accepted a position like that and it worked out fine, but honestly, I will never do it again. I only accepted it in the first place because I was a desperate, inexperienced hire without any alternatives. Now I'm more skilled and have experience that demonstrates at least some ability. Accordingly, I don't need to take those kinds of risks.
Just because I'm good, maybe the boss's wife decides she doesn't like me or I lose some political blame-the-new-guy game, or they decide on entirely different qualities in a hire, or whatever. In this climate that sort of risk is their problem. I also won't do 10 hour programming 'tests' and I'm pretty reluctant to do several full-day programming interview marathon sessions. It sucks, I don't want to take the time off for that crap, and most importantly...
I don't have to.
This means there are places I can't work at, but there are plenty that would be glad to have me, and that suits me fine.
Contractors make significantly more money than full time devs partly for this reason
I've always heard that, yet when I look for contract work, it's always at equivalent or less than my hourly equivalent as a full-time dev. Full time was $100k - $115k/yr, contract was $40 - $50/hr, in the SF Bay Area.
Then you're looking for contracts from the wrong kinds of companies; standard rates for most folks with a decent amount of experience start around $100/hr, more for short contracts, maybe a little less for longer ones or preferred repeat clients.
Again, I wonder what technology areas. Having looked, off and on, for C++ contract positions, I never see anything that high, in the SF area or elsewhere. Of course, my typical search involves Dice and Craigslist. Perhaps there's a better method of finding lucrative contracts.
As someone who has done this for 5+ years now (before that 10 years at various large / medium corps. and startups), I'd advise you that you won't find good opportunities via Dice and Craigslist. Nearly all of my contracts have come from references / networking (i.e. people I worked with once who hire me back as a consultant to build something / solve a problem). You're just looking in the wrong place.
So, general statements about how contractors should make approximately double their per-hour salaried rate only apply to people with a sufficiently established network of paying clients.
I don't know, I don't really consider it "normal" or "market rate" if there isn't an open market for it.
I appreciate your wisdom, though, don't get me wrong. It just makes me question the typical advice espoused by people.
Out here in SV it is almost unheard of; if someone is not working out after 90 or 180 or 365 days you drop them and move on. It is definitely a sellers market for talent here and anyone who is worthwhile enough to make an offer to is not going to put with an explicit probationary period (since everyone is a at-will employee and general non-competes are worthless the concept is pretty much a moot point anyway...)
The advantage of the contract with a specific project is two fold:
1) It makes it very easy for either party to end the relationship in a natural and simple way. Minimal hurt feelings/embarrassment/harm to morale, etc.
2) The project is at least semi-isolated so it's very clear how skilled the person is. They don't get lost in some "training" mode as a new hire spending 6 months "ramping up" on the primary codebase. They (hopefully) get an early win and earn respect and confidence from the beginning.
The obvious disadvantage is that if you do hire a really good developer for a short project, they will have to start looking for their next contract almost straight away, and so you are likely to miss out on converting them to full time. By the time you've figured out they're good at what they do, they have another offer (at contracting rates).
I've never seen that in the US. I should add that to our hiring agreements!
But I do agree with the other poster. Most high quality devs I know, worth their weight, won't sign on for that. Their view is that its a slap in the face from day one, and disrespect like that from management never gets better over time.
Talk to your lawyer. It may not necessarily be a win to add that clause. You have the ambient right to fire someone (in almost every locale in the US) with no reason whatsoever. Why qualify it?
Actually I was joking about adding. I have no plans to add such a thing. Our interview process has fortunately been solid enough that no one we've hired has been less than solid. And I think such a clause would backfire, since many of our best devs wouldn't have accepted on such conditions.
I've just started a new job, and I am on a 6 months probationary period, which apparently is standard for this company. It doesn't really phase me, I would be surprised if I was let go.
I haven't worked anywhere that didn't at least have a 3 month probation period.
Someone who opts-in to #3 is not necessarily desperate. In fact, to the contrary, they likely also want an opportunity to feel the company out and be more confident in their choice to stay/leave at the end of 3mo.
Depends on the contract. Over here (Finland) it's very common to have a three months "trial period", during which both the employer and employee are free to terminate the contract at (practically) any point and for any reason. However, after that three months, you need to give a one month advance notice to quit and firing someone becomes more complicated too.
Same here in Australia; I'm about to start a trial period of a few months with a single week's notice for termination from either side.
(Every job I've held has had this in some form or other. I'd wager it's common in countries with termination rules that aren't quite so, uh, "at will" as the US'.)
That "opportunity" is not worth having no company-provided health insurance, nor is it worth paying both halves of the FICA tax, except for the desperate.
It's not the easiest thing in the world to explain, no, which is why I bet most people who do the temp-to-perm thing don't bother, and just pay the contractor according to their yearly salary. After all, if they don't know enough not to take the term-to-perm offer, why complicate things? ;)
1) Simple programming challenge (< 30 minutes) by email. To see if they can actually write good code. Resume/age/experience/location mostly disregarded.
2) Casual discussion-style interview to get to know how they think and behave.
3) Short term contract with a predefined project (< 3 months) to see how they work over time.
4) Full time hire with salary + equity.