Wednesday, September 28, 2011

Freelance software development

This article discusses what you should do if you want to work as a freelance software developer. In my view it is becoming more and more easy to get freelance work specially in the field of software, online marketing and content writing. I am working as a freelance developer for more then 4 years. I am working full time from home and I am earning as much as a full time employee of the same experience level will earn from a reputable organization. My advantage is that I have flexible schedule. I work from 8 a.m to 2 p.m, and leave my desk when the kids arrive home after school, I spend time with them and, take rest in the afternoon and then work for 2 hours in the evening when they are playing, finally I start my work at 8 p.m and keep working till my husband comes home. This is why I love my job, I can have good time with my family.


Now I would like to discuss how one should start bidding, winning and completing the project.

1) Find and create a good freelancing site. I have worked at elance.com, vWorker.com and oDesk.com. I have found all of them to be really good. I started as an individual and created a free account. A free account is better as you will not have to invest anything. You will start earning without investing a penny.

2) Find the areas of your expertise. Completing a project is more difficult then winning a project. I have seen many developers who just wanted to grab a project. They had lots of ideas of getting the project done, like forward the project to someone who has used the required technology, find juniors to implement the project etc. But if you are not a champion in the technology that is required by the project them most probably you will fail and you will get a bad rating. A bad rating means no more work. So first of all find your area of expertise, it can be anything related to software development like java, .net, quality assurance, testing, project management, php or requirements gathering etc. You will find more projects for some of the fields like php, jquery and SEO etc.

3) Start searching the project and start making your bids. Before placing the bid make sure that you understand the project completely and you can make an estimate on the time and cost. Here are my tips for making bids

  • Don't bid too small or you will loose interest in the project after winning and start working on the project.
  • Don't put too high amount otherwise you will most probably not be awarded with the project.
  • Multiply your time estimate with 2 or 3. All clients want perfect work, to make them happy you need to invest more time. Mostly our time estimates are not correct as we make estimate on the basis of what we see. But when its about implementing the things we have to be careful about many things which take time.
  • With your bid explain your understanding about the project.
  • Write a small description of how you will implement the project. Don't write everything.
  • Try to ask questions to open a communication channel with the client. Don't ask unnecessary question it will simply make the client annoyed.
  • Inform the client about your availability and about previous experiences of the same type of project.
  • If the client has provided a list of technologies you should know and you don't know some of them, inform him about them too. In case the client chooses you for the project, he would know that there will be learning curve for those technologies.
 3) Don't get dishearten if you placed bids on many project and didn't won even a single project. Try to find out why others are being awarded, try to find out a patterns in your failures, like did the accepted bid had very low/very high amount then your bid, did the accepted bidder was a successful coder at the site etc.

4) After you win a bid make sure that the client had escrow the funds at the site and make sure the terms are good for to start working.

5) I think, I don't need to say that you should work very hard to make the project a success. Deliver exactly what the client wants. Don't try to add extra functionality you think is good, but you are not being paid for it. Think about the time and money the client is investing on the project, keep yourself at the place of client and think what you would the coder to do.

6) Keep in touch with the client and inform him about your progress. Try the understand what type of communication your client wants. If he doesn't want to get bothered about everything, then may be a weekly report will be suitable for him. Try to be consistent, and overcome the difficulties that would arise during your development. Remember "Google" as a best friend of all developers.

7) After finishing the project, ask the client to review and don't mark it as 100% complete until he completes his review or the deadline has arrived. Ideally the project should be marked as 100% complete before or on the deadline.

8) The client will review your work and release payment after full satisfaction. Allow atleast one week to the client to review your work. Don't get impatient if the client takes time in reviewing and releasing payment. Remind him to review your work after 4-5 days.

9) After the client releases your payment you can choose any method to withdraw funds which are supported by your freelancing site. Payoneer is a famous withdrawl method these days which costs very low, other methods are worldpay and bank to bank wire transfer. Request the client to leave a feedback score for your work if he doesn't do so after releasing the payment.

10) Last but not least, remember me in your prayers while enjoying the money!

1 comment: