Tips for hiring a freelancer programmer?


8

I'll be writing my own web-site soon, and some parts of it I plan to outsource to developers (either people I know, or if I won't find any - developers from "freelancers sites").

Has anyone who tried it (or have an idea how it should be done) can give me any tips?

Here's what I thought of so far-

1. Partition the work to small tasks (so that it will be managable and so that I can change the freelancer if I'm not happy).

2. Ask the nominee a few questions about his speciallity before hiring, to see if he knows what he's doing.

any more?

Thanks.

Hiring Outsourcing

asked Nov 3 '10 at 08:44
Blank
Oren A
141 points

8 Answers


4

From an experienced Drupal consultant's perspective:

First and foremost: Build on an open source CMS or framework. You'll save yourself from re-inventing the wheel, and it will be easier to move from one developer to another if the need arises than if you built a site completely from scratch.

Regarding breaking down work into small tasks: This strategy is a mixed bag. It does limit your risk, but it also raises your cost. If the dev has to prep a demonstration, invoice, etc. for you every couple of days instead of every week or more, you have to pay for the time it takes your developer to do that. Try to find a balance between the two, and also talk to your developer about which tasks are most efficiently coupled together from a time/cost standpoint.

Regarding quizzing your potential consultant: It may be hard to hear, but anything you can quickly look up to quiz him/her with, an incompetent wanna-be dev can quickly look up to answer. The good news is that there are better metrics you can use:

  • Is this developer active in his/her professional community? Does he/she contribute code, documentation, or other tangibles to the CMS or other core system? Does he/she speak at conferences?
  • Can the developer provide you with a client reference or portfolio?
  • Does the developer take the time to make sure a work specification is completely fleshed out?
  • Does the developer insist that training be part of every site build project?
  • Does the developer respond promptly to questions and keep appointments?
  • Does the developer offer reasonable payment terms, including a down payment (to protect the developer) and completion and/or progress payments (to protect the client)?

Frankly, most quality consultants avoid freelancing sites and are more easily found via the community surrounding their primary platform (such as Drupal.org for a Drupal developer). Freelancing sites eat too much of a consultant's pay (typically 15-30 percent), and delay receipt of payment, in addition to consuming our time with an awful ratio of bad clients to good, and using their clunky communication channels. We can either raise our rates to cover all that extra overhead, and consequently price out good small business clients, or vacate the freelancing sites altogether and deal directly with potential clients.

answered Nov 3 '10 at 10:27
Blank
Hedge Mage
1,438 points
  • About quizzing - isn't it possible to quiz the potential programmer online - e.g. using skype. Surely he can't look up an answer **that** fast. – Oren A 13 years ago
  • He's already looked it up before you asked, or enough info to B.S. his way through to a degree someone outside the field wouldn't call him on. Think about it this way: if you can get a cursory knowledge upon which to base your questions in 30m of research, you still know less than someone who has done 2h of research. You *need* someone with years of experience, but someone with 2h of experience, and someone like me with 7y of experience, can both effectively answer your questions. The 2h person's knowledge and experience deficit would blindside you *after* the project has begun. – Hedge Mage 13 years ago
  • You would be surprised what people do not know. When screening for C# programmers I always ask what the "virtual" keyword means. More than half do not know this, and that tells me that they have probably never used inheritance in a meaningful way. If I asked them what inheritance was, sure they can answer, but again more than half can't tell me what polymorphism is even though its basically part of the definition of OOP. This is screening only people with 5+ years of experience. – Jeremy 13 years ago
  • Don't mean to nag, really. But do you really think someone with 2h of experience can answer questions as well as someone with years of experience? That's undermining the whole idea of job interviews.. However I'll definitely take your main point into consideration and **select my questions carefully**.. Maybe asking a friend who is familiar with the relevant programming skill to do the "interview" for me is a good advice as well.. – Oren A 13 years ago
  • @Jeremy Right, but *you* know what the "virtual" keyword means. Someone with a completely nontechnical background wouldn't know that that's a question worth asking, let alone what to think of various possible answers. Unless I'm totally mistaken, Oren A is a businessperson, not a programmer of any kind. This makes a massive difference in how one interviews a programmer. – Hedge Mage 13 years ago
  • @Oren A: Try to picture me (a hacker who speaks only English, ASL, and classical Latin) trying to select someone to translate my writing to Japanese. I could ask each candidate to say something to me in Japanese, but I'd have no idea which one was interpreting correctly. I would get a more accurate feel for their ability from the recommendations of previous clients, their standing among other Japanese translators, and how they behave during the vetting process than I could possibly get from anything I asked them about the Japanese language. – Hedge Mage 13 years ago
  • @Hedge I see your point. – Jeremy 13 years ago
  • @Hedge - I'm terribly sorry for giving you the impression I'm a businessperson. I'm actually a programmer by education and profession (my question started with the words - "I'll be writing my own web-site soon", and you could also see that in my profile..). I'm a server side programmer and I know some client side. Since I don't have time to learn client side deeply enough, I thought I'll "outsource" that part. But still your advices are quite handy (-: Thanks a lot. – Oren A 13 years ago
  • @Oren I'm sorry for the confusion! I didn't look as deeply as your profile, and just assumed from your choice of punctuation that you were a business type rather than a tech type. :) – Hedge Mage 13 years ago

3

From someone who has been on both sides of this, your best bet is to get references.

Don't waste your time with programming tests. Coders are familiar with tests and do them well, but may not do your job well. Furthermore, for those complaining about people looking up the answers, who cares! The end result is most important, and how they get their answers doesn't matter. Of course, they should know what polymorphism is (as suggested by another answer) and other basics, I'm not suggesting they shouldn't. I'm just saying that as someone who works with 15 given languages at any time, sometimes the substr() parameter order is different in one language than the other, and I look it up. That makes no difference on the end result.

Ask your developers how they would split up the project. If you are not familiar with this, then let those doing the work decide how to do it. It may save all of you a lot of time.

Hiring a designer is fine. Not a lot of web programmers are brilliant at design, but they should at least know how to make a good looking site. If you check references, you'll be fine with this.

Regarding the comment about any good programmer is already employed... that is not a hard and fast rule in this economy, but something to consider. When I do freelance work, I don't take on many clients. I haven't been looking for clients in 6 months... taking a bit of a break... but I assure you I could do good work.

For comment about using an open source framework: This is a fine idea if a framework makes sense in your situation. Most of the time, you will waste more time trying to hack WordPress into something that you want, and it won't be all that usable at that point. Reinventing the wheel is bad. Making a wheel into a microwave oven is a waste of time. Use what makes sense for your situation and let your developer help you decide that.

Check the work they've done in the past. Have a conversation with them. Get specific. Ask them specifically what they would do for you. If they can answer you, then you have a good candidate. If they can't, look elsewhere. Check their references. If you do these things, you will get solid developers. It really is that simple.

answered Nov 12 '10 at 04:19
Blank
Brad
141 points
  • "Reinventing the wheel is bad. Making a wheel into a microwave oven is a waste of time." -- +1 – Richard 11 years ago

2

I would start with a small part to test your developers, but eventually, you're going to save money by "buying in bulk" from fewer vendors. You should be able to pick one or even two if you feel safer.

Get references. Has this person done quality work on time and do they honor their price quotes. If you think you can understand the code, take a look at that part of their work as well.

answered Nov 3 '10 at 10:52
Blank
Jeff O
6,169 points

1

Focusing only on one area when hiring a freelance programmer can miss you a great opportunity of hiring the right person for the job. Another thing is sometimes conducting only an interview to screen applicants is just not enough to see the full potential of a person.

This article ( https://www.staff.com/blog/hiring-on-workopolis-a-mistake/ ) regarding the common mistakes employers make when hiring should serve as a good list of tips of what you need to avoid.

  1. Hiring only local people
  2. Hiring some without testing them first
  3. Work should be done in the Office

You need to conduct your search through various channels, which will help you find the right person for the job. Giving a basic programming test is a good way to screen applicants that will help you determine who among the applicants has the skills and expertise that fits for the job.

answered Jun 18 '12 at 17:16
Blank
Raico
41 points

1

Having used freelance sites on many large projects, with several providers I will sum it up in two lines:

  1. Anyone who is any good is already employed
  2. Almost anything you are told is a lie

If you want to get blood from stone here are my tips:

  1. Have the worlds most detailed spec.
  2. Break tasks down so small that even a 2 year old could complete.
  3. Ask the person to check in work after each task is completed.
  4. Most important: Make strict deadlines and ask the person to stick to these.
  5. Start with tasks that you think are challenging. Don't try easing people in, otherwise you will be 2 weeks into a project and realize the person can't do the work required.

Good luck with this.

answered Nov 3 '10 at 09:18
Blank
Xiaohouzi79
1,257 points
  • Also note: Finding anyone is easy, finding someone who can actually do the work required is hard. It's not like selling your cat on eBay. – Xiaohouzi79 13 years ago
  • OK guys. "Get blood from stone"... "It's not like selling your cat on eBay" ... WTF! I'm hoping these are just poorly chosen metaphors, and not the voices of experience. – Dan Esparza 13 years ago
  • @Dan - Unfortunately it is both: hours of excruciating experience mixed with poorly chosen metaphors – Xiaohouzi79 13 years ago

1

On a positive note, what I do suggest you do is try a great site like 99designs to get your design work done.

You can then send your design to PSD2HTML to get sliced and half your work is done.

Both of these sites are great.

Alternatively find a site template at somewhere like themeforest.

Then place an add for a good quality developer on Stack Overflow's career site.

Going down this path you are paying for quality and for most of these sites you will stay be paying a reasonable price.

answered Nov 3 '10 at 09:33
Blank
Xiaohouzi79
1,257 points
  • Please... don't use one of those PSD2HTML services. I have yet to find one that actually does a decent job. They are more concerned about "pixel perfect" which is generally NOT good web design. (Most render entire blocks of text as images rather than leaving it as text, for example.) There is much more to it than simply cutting up your images and building the page layout. Hire someone who will take the time and effort to do it right. – Brad 13 years ago
  • I did read your entire post actually. My comment was more for the OP and less for you. I am emphasizing the need to have a developer do the heavy lifting, and in my opinion, all the lifting, when it comes to breaking down a design into workable XHTML. You don't have to agree with me, but I assure you, I did read your entire post. – Brad 13 years ago

1

In addition to the great points in other answers, you're probably going to increase cost and decrease quality if you need to use a lot of developers. Good developers can work on someone else's project but the longer one person works on something the more they know about how it all fits together. Test people with difficult tasks before you commit to them, maybe have a few people build the same thing at first to see which one is better, and consider building a team with different specialties if necessary, but try to avoid switching developers frequently.

You're in a tough position here. There are two common failings when you find developers - either they can't do what they say, or they can do anything but they just don't care about your needs, communicate well, etc. Learning enough about technology to recognize who's good and who's not can take years. Past work and references are a good initial filter, but you'll always learn more about them as you go along (a few initial tasks will at least help to weed out the worst). Combining those three is really the best shot you have but there's always some risk unless you're willing to pay a lot for someone with a long proven history.

With references look for clients in a very similar situation; a developer might do great work for a client who could do it all but doesn't have the time, but if you're in a position of seeking expertise they might not work as well with you. Or a developer might do great work for clients with high budgets, but if you have a very limited budget they might not be careful enough.

answered May 27 '11 at 02:56
Blank
Richardg
474 points
  • Thanks, great answer. – Oren A 13 years ago

0

Get a very specifically designed test (designed by another top programmer) that evaluates the skill that you need. Then get them to do that test. You can also just use services like Odesk or Remote staff that do their own testing.

And use Time Doctor to manage the staff so that you know they are really working

answered Nov 11 '10 at 21:33
Blank
Rob
151 points

Your Answer

  • Bold
  • Italic
  • • Bullets
  • 1. Numbers
  • Quote
Not the answer you're looking for? Ask your own question or browse other questions in these topics:

Hiring Outsourcing