I feel you have to be fairly technically competent and capable of writing good specs and sticking to them if you are hiring a programmer directly. If you are really stretched, it might be better to the hire the company. They should walk you through requirements gathering and the whole project plan.
Whether it's a single person or a company, you could get a good deal or a disaster either way. Hire either as long as they come highly recommended, have a good track record, and can deliver on time with minimal supervision.
Shop around, because for $150/hour all you may be getting extra is the go between. Otherwise it depends on things like security policy... are your resources and code projects proprietary? Do you feel more secure giving access to your project to one coder or to everyone in an organisation? Granted that sometimes a team of coders can cope with tasks beyond a single coder, but if you select the coder for his specialty in the first place, he will be the expert.
|Whether it's a single person or a company, you could get a good deal or a disaster either way. |
How does this sort of disaster manifest itself? I can imagine slow output, sloppy output, or security issues. Any tips for preventing these? Any other disasters to watch out for?
|How does this sort of disaster manifest itself? |
They take your deposit and then don't deliver on time, or in a reasonable time, or ever
Worse case, they keep developing and developing and charging and charging until the golden goose can no longer lay any more eggs.
What typically happens in my experience is companies crank out more proposals than they could possibly complete assuming not that many will actually sign up. In the event too many clients do say "YES!" that's when someone gets the short end of the stick unless the company or developer is up front with their schedule.
I would suggest you get a fixed price quote for a very specific development proposal and not leave anything open ended. Specify that complete work product will be delivered at each payment milestone too so you don't get stuck paying for something without getting what you paid.
I would also suggest putting in a clause for perhaps a 10%-20% discount penalty for any missed deadline if you want to make sure they hit them on time.
[edited by: incrediBILL at 6:37 am (utc) on May 27, 2012]
Great info Bill, thank you.
What do you think of insisting they sign up on eLance and working through there so a lot of this stuff is automated including 1099's?
No experience with eLance or those types of sites, can't really comment.
|Shop around, because for $150/hour all you may be getting extra is the go between. |
FWIW, I rarely got out of bed for anything less than $150/hour back when I did custom site development. My clients quickly figured out I was cheaper in the long run because I knew what I was doing with 20+ years experience vs. developers that were just hacking away for an hourly wage.
Besides, good developers usually already have lots of reusable debugged code they can pull out of their bad of tricks and make things come together faster and more functional than 100% unique development.
People that assume their projects are so unique they need new development always got charged appropriately and you would be surprised (not!) that 99% of those people suddenly realized what they were doing wasn't so unique after all.
Would you want your dev to work something like 2 8-hour days per week, or 5 3-hour days?
Would you insist he/she work on specific days and at a specific time of day?
Would you bother with a contract for a dev working in a different country than your's? I hope to hire someone for ongoing work on various small projects, so the project itself wouldn't belong in the contract. Maybe an NDA or something, but would that make sense with each of us in a different country?
|No experience with eLance or those types of sites |
I've been putting projects through Rent-a-coder for a few years. Now they call themselves vWorker. I originally started hiring by the hour and then by project which had a more or less hit or miss success rate. With vWorker you post your job specs, coders quote and you select which one after reviewing their past job history and client reports.
Then you deposit the funds which are held in trust until you approve the delivered job. Any problems and vWorker arbitrates. After putting more than 120 jobs through vWorker I wouldn't do business any other way.
And forget about outrageous rates. Earlier this year we had an Apache mod filter developed for $27, and a partner reckons it's one of the most professional jobs that he has ever encountered.
Kendo, I'm curious why vWorker (1.6K projects currently) instead of eLance (16K projects currently)?
@Tonearm - be sure to check out Freelancer.com too. 3.5M users.
I've been using them for a while and I'm more than happy with the results and their system. Besides, quantity is not related to quality.
I'm an expert programmer. I program in Microsoft .net platform.
What language/platform are you hiring for?
$150 per hour is going to pay for company overhead. It is possible the programmer is full time employee and making around $40 - 50 per hour. $80K - $100K per year.
I have hired programmers through elance in the past. Typically, I prefer to work with an individual and not the company.
In 2009 I worked solely as a freelance programmer and hired 5 programmers through elance to help out with work that I could not complete all myself.
Most of the projects were ongoing and they would work 10 - 20 hours per week.
I paid weekly on the work they completed. There were no penalties for miss deadlines or stuff like that, priorities change frequently. I paid bonuses and didn't worry about NDAs. Sure they will sign it, they are not concerned about taking your idea, etc.
You paid based on an hourly rate only and it worked out well? How did you organize everything? github?
Yes, I paid based on an hourly rate. $10 - $40 per hour depending on the developer. The developers in India were are around $10 - $12
One of the developers I used a lot was from Ukraine and he charged $15. I had a QA analyst from Ukraine too.
The designer I use charges $40 per hour and he is in Canada.
I used Basecamp to manage the projects. If you only have one developer, you might not need this.
Let's say I wanted to add a "Product Review" feature to the web site. I would come up the requirements on how I wanted it to function. Create possible mockups, screen shots or URLs of something similar I liked.
I would provide this to developer for him/her to give me a ball park estimate of hours to complete. Could be around 20 - 40 hours.
Another important thing to have is a development environment of web site and database. Ideally, this would be on a separate server.
This allows for development and not impacting production. The developer can upload the changes on a daily basis and you can QA and accept/reject them as they are completed.
Once everything has been approved, you schedule the changes to moved to your production environment.
Some of the developers I paid through Elance, while others through PayPal.
I want to emphasize what incrediBill says about disaster.
6 months ago I was hired by a company that had it's development done by a firm. The amount of money they spent was outrageous, I think 300k, and the quality of the platform was terrible, they used an inhouse php framework that was awful to work with and had no testing in any form. It was a total nightmare to come into, but I needed the job because I was moving cities.
What I discovered is while I do think the firm sucked, the project manager on our end lacked any experience to effectively manage such a large project. We eventually had to hire some Indian contractors on oDesk, which is another topic, but these common things popped out no matter who you hire.
- Require estimates per project/milestone. Make sure they inform you if something is going to be over budget.
- You have to write crystal clear specs. The user does this action, this is the expected result. If this then this else this happens.
- Have photoshop mockups so the contractor can visualize what you are doing.
- From day one establish clear expectations. aka you must communicate daily, meet deadline, write clean code, commit your code frequently and push it to a repo frequently for review.
- Take those specs and test every single inch of functionality to make sure it meets your specifications when it's given to you. And really make sure you understand it. We had a contractor do some paypal work and it worked in the test case he developed but it didn't work in reality requiring a code rewrite, so make sure your test cases work.
In the end while I think the project manager should have fired the firm, but he was the one who let it happen. You must remember this in the end it's your fault if things don't work out.
Also, when hiring someone make sure you have instructions in your posting. It's amazing how many people cannot follow simple directions. Do not bother with ones that cannot no matter how good they look on paper.
The reason my vote is to go with a company is that individuals can come and go. Good companies tend to have more longevity.
If you go with the guy and he gets a great job because side gigs weren't cutting it or he moves, gets married, has a family, or whatever then you lose the guy who has the most knowledge on your project history and code base.
If you go with a good company that has good project management processes then even if the guy who works on your site today is gone when you make changes in a year that company will have all the history of your project and code, and if they are really good you won't even know the guy who worked on it the first time wasn't the same guy the 2nd time.
Also if things go wrong it is a lot easier to get satisfaction or seek restitution from an established company rather than "just some guy"
that all being said I have been "that guy" and I was a good one and there are others out there so if it was me or someone like I-bill you were getting then it is worth it.... the reason I still say go with the company is finding a good company is easier than finding a good guy
|Yulia from DNP|
Well when you are hiring a company, you are hiring loyalty , professionalism, and most of time the company has a certain reputation to keep so choosing a good company will benefit you eventually more then one programmer.
Again, depends on what exactly you need to be done.