Buying Projects Successfully on Freelance Sites
What are freelance sites and how do they work?A freelance site is a site where people can post a project and people who can complete the project or provide the service bid. The buyer reviews the bids and selects a provider. The provider completes the project and the buyer pays. The buyer often pays the freelance site, who takes their cut and sends the rest on to the provider. There will be differences in the details from site to site, but the basic sequence will be the same. Often buyers are happy with the results they receive. But all too frequently something goes wrong, and the buyer wastes time and money, and has to start all over again. There are some things you can do to help avoid a disappointing experience when hiring a coder through a freelance site.
There are many different types of coders bidding on projects. The people who bid on your project may be from any country in the world. They may be 13 year old kids with a copy of FrontPage or they may be professional coders who have been designing websites and writing code for years. If you have a simple website a teenager may be perfectly capable of putting it together for you. But if you are thinking of having a webstore that takes credit cards or website that allows users to register your less experienced coder may cheerfully bid low on a project he can't handle. If you are lucky all you will lose is time. Your coder will struggle for weeks to complete the project and will finally give up. You will not have to pay him, or you may have to make a partial payment for the work he has completed. But your project will be weeks behind schedule. If you are not lucky, and inexperienced coder may be able to put together a site that appears to work, you will pay him, and he will disappear, leaving you to find the bugs weeks or months down the road.
Keep in mind that most coders on freelance sites are working on very low profit margins. In order to make it worth while, a coder must keep his costs down. And one of the costs a freelancer incurs is the time he spends bidding on jobs. It takes time for a coder to read your request, understand what you want, and estimate how long it will take him to complete the job. Rarely can a coder make an accurate bid without asking the buyer a few questions. If a coder bids on six jobs a day and spends an hour on each one he will spend at least half of his day bidding on jobs rather than working on them, even if he is working a twelve hour day. What this means in practice is that most bidders barely glance at the specifications. They bid in the low range on lots of projects with the intention of tweaking the bid after a buyer shows interest, or even after they have been selected as a provider.
Know What You WantMost buyers give coders plenty of opportunities to tweak their bids because they write very poor specifications. For example if you specify that you want a website where people can register and get a user id and password, but don't specify that the system should automatically email a new password to users who forget their password, you will almost certainly be charged extra for that feature. It is not the coder's responsibility to decide how your website will work. It is his responsibility to implement your ideas. The first step in having a successful experience as a buyer at a freelancer site is to know what you want.
First determine your goal. For example, if you are requesting bids for a new website, why do you want to have a website? Do you want to share your photo's with family and friends? Do you want to sell a product or an online service? Is your plan to share an idea or promote a cause? Whatever your reason for starting a website, look at other sites that do the same thing. Do not restrict yourself to websites that are promoting the same ideas or products that you plan to promote. If you are starting a website to sell a product look at other websites that sell things, regardless of what they sell. Keep track of the websites you visit and what you like and don't like about each one. Remember that design and function are two separate issues, so keep a list with a column for the website name and url, the functions you like, design elements you like, and any problems you want to avoid.
Write your specifications.The biggest mistake buyers make at freelance sites is writing incomplete specs. The bidder is expected to supply what you asked for. Anything you leave out of the specs is an opportunity for a coder to insist on more money.
Have reasonable expectations. You are not going to get a clone of Ebay for $300.00 US. You may get an auction site, but you won't get Ebay. You may get an excellent site for a very reasonable price, but most very successful sites have had hundreds of hours of coding and even the cheapest coders have to make some money.
Use your list to write a clear description of what you want. Think about all the ways a typical user will use your site, and what features they will expect. Include all functions that you want on your website, both frontend and backend
Consider security issues.Your coder should be able to provide basic security, but cannot be expected to be aware of industry specific security issues. For example, a coder should be able to provide a secure login for backend functions, but may not understand the security implications of HIPPA. It is your responsibility to provide information about any extraordinary security required.
In addition to your website specifications, your coder will need to know the operating system, languages available, web server, and database. If you do not know, specify the name of your hosting provider. The coder should be able to determine what he needs to know from their website. If you are requesting bids on updating a website and you are using a CMS or template system, your coder needs to know that information.
In your specifications, include any documents, prototypes, or screen shots of development work that has already been completed on your site, especially if you expect your coder to base his work on them.
Specify who will provide content, images and graphics. Usually you will need to provide your own content and images. Keep in mind copyrights and royalties when considering these items. If your supplier has to purchase photos for your site it will impact his bid.
Specify what browsers are to be supported. It is not possible to create a website that looks exactly the same in all browsers unless you use flash. And flash has its own problems
Who will install the code?The coder should include as part of his bid information on how he will install the script or website. Even so, you should include a statement of your expectations. Will you give the coder access to your server so he can install the site? Do you expect the coder to write a script to install the project for you?
SupportHow long do you expect the coder to be available to explain how the site works or to do bug fixes? Coders will not be willing make changes or help you with your site indefinitely. Specify what you expect, and whether you will withhold part of the payment until the support period is over.
MaintenanceConsider how you plan to maintain your website. When your area code changes, how are you going to update your website? Are you going to use Frontpage or Dreamweaver or code them by hand? Do you expect the coder to write a backend package? Are you going to farm small changes like this out to a freelancer? The answers to these questions will impact the bid.
DocumentationSpecify what kind of documentation you expect for your project. Always require the code itself to be commented. Insist that comments and variable names be in your native language. I once saw a buyer requesting bids from Romanian coders only because her script was commented in Romanian and no one else could figure out what was going on.
Who owns the code?Read carefully any statements (either on the freelance website or statements made by the coder during negotiations or after selection) regarding the ownership of the finished product. Some coders sell the same scripts with different designs to multiple clients. There's nothing wrong with this, and coders are always going to draw on expertise and techniques developed on one project in other project. But you, as the buyer should understand that your hot new dating site may have hundreds of clones out there that look different but operate exactly the same as yours.
Along the same lines, you should investigate whether you have the right to resell the code or if you can install it on multiple sites. Read information about open source licensing and decide if open source is a good option for you. You may be able to save a lot of money if all you need are a few slight modifications to an open source product.
Time Frame.Include your deadline. If it is a large project, give a timetable with measurable goals so that you will be able to determine whether the coder is on track. Tell the coder how often you expect progress reports.
Write a synopsis.Your specifications will probably be too long to post as the bid request. If possible, put your specifications in a separate document and include it as a downloadable attachment. Now write a synopsis of your project to post on the freelance site.
Some suggestions about the synopsis:
- Provide a brief overview of your project. If your project has something that will make it unique from similar sites, include that information.
- The phrase "should be easy for someone who knows what they are doing" is a give away that you don't know what you are doing. Play your cards a little closer to the vest. If you know a project to be easy, let the bidders tell you. Remember--you are the customer. It is up to the bidders to impress you with their knowledge, not the other way around.
- If your project includes adult or controversial material, make it clear in the title or at least in the first paragraph of the synopsis. No one benefits if you select a coder only to find out that he is unwilling or unable to work on your project because of the content.
- Include your deadline in the synopsis.
- Include the times that you will be available to answer questions and work on the project.
- Understand the reluctance of coders to provide a mockup for consideration before you select a bidder. Its not fair to ask coders to do all the work before they are selected. It is better to ask to see other sites that they have designed. Ask if you can contact the webmaster at the example sites for a reference. So not contact anyone at an example site without checking without the provider first.
Posting the request for bidThe procedure for posting a request for bid will vary from site to site. You will certainly be required to register. You may be required to have a funding source identified so that your contract amount can be put into escrow when you accept a bid. Not all sites require escrow. The ones that do may have higher quality coders because the coder has a good expectation that he will be paid for his work.
Selecting a bidder.This is one of the most important steps in having a good experience as a buyer on a freelance site. There are no hard and fast rules, and all of the tips given below are YMMV. However there are some things you can watch for to help ensure that your project will be successful.
- Prefer bidders whose bids are readable and understandable. You don't want there to be misunderstandings about what you want or what the bidder plans to deliver.
- If the bid is not going to be completed on the day it is awarded, the bidder should tell you when (and what hours of the day) he plans to work on your project and what method he plans to use to stay in touch. His agreement with the freelance site probably prohibits him from providing contact information before the contract is awarded, but he should tell you if he plans to use instant messaging, skype, email, etc. for communications.
- Look for indication that the bidder has actually read your specifications. Just a declaration that "I have read your project. I understand what you are looking for. I am ready to start now!" is not good enough. In order to provide a realistic estimate, the coder must understand the scope of your request for bid. I would prefer that a bidder ask a couple of questions, but he should at least make comments or suggestions regarding the project.
- Ask questions of any bidders who appear to be qualified and who make a quality bid. Note how long it takes them to respond. Remember that they are probably working on other projects, so to not expect instantaneous response.
- Prefer bidders who answer your questions in terms you can understand. There are lots of excellent coders who will have trouble explaining things in "layman's terms". But, if you are not technical you, will probably have better luck communicating with someone who understands how to explain things to a non-geek. Usually coders who can explain things to non-technical people will have better luck understanding what non-technical people are trying to say when they explain what they want. Do not disqualify bidders who "talk down" or oversimplify. They have no idea how technical you are, just as you have no idea how qualified they are.
- Most freelance sites have rating systems. Read the ratings of the coders you are considering. Take them with a grain of salt. Look for consistency, and don't disqualify a bidder for one bad review.
- Do not ask a bidder to do the work without going through the freelance site. Do not work with bidders who want you to go around the freelance site and hire them directly. This is an attempt to cut the middleman and deny the freelance site the opportunity to be paid for the service they provide. If you want to work directly with a provider without using the services of a freelance site go to your local yellow pages and take your chances.
After you've selected a bidder.Each freelance site has a different procedure for notifying the bidder that he has been selected. Follow the procedure of the site you are using. Follow any escrow procedures and upload any necessary files promptly. If your freelance site requires you to set deadlines, make them reasonable.
Respond promptly to communications from your provider.Time is money to these people. When they get to a place where they cannot proceed without input from you, they will move on to other projects while waiting to hear from you. You want to keep your project as close to the top of the stack as possible. If you cannot respond promptly, be sure to adjust the deadline date on the freelance website. Some sites penalize the coder's rating if he does not complete the project on time.
Read all progress reports thoroughly.Notify your coder immediately of any problems or miscommunications. The farther into a project the coder gets the harder it will be for him to fix mistakes that occur early on.
If the freelance site provides a method of communication you should use it instead of emailing directly or instant messaging. If you do communicate with your coder offsite, you should always confirm via the freelance site approved communication forms. If there is a dispute, emails and instant message logs will probably not be accepted as proof of what a coder promised.
Never pay in advance. Do not even pay partials in advance. It may be possible to divide a job into parts and pay as each part is completed, but I recommend strenuously against it.
When the job is completeyou should test the project thoroughly. Use your original specifications as a checklist. Get a friend or colleague to test the site as a regular user. Test everything. Check it in different browsers. Do not sign off until all of your specs are met. You can test the product on the coder's server, but be sure you install it and test on your server before you sign off.
Once everything is completed satisfactorily, release payment and rate the coder promptly. Prompt payment is important to the coder, and will be reflected in the review that the coder gives you.
I hope you have picked up some good ideas about freelance sites and how to buy a successful project. If you have any questions, please feel free to use the contact form.