12

Note: At first I wrongly posted this question to the original Stackoverflow site

Let's say that for a software project I have:

  • a complete project plan;
  • a software requirements specification;
  • a software architecture document;
  • a lead developer;
  • and (me as a project manager).

I need to hire 1-4 freelance developers to get different parts of the project done.

My plan is to use odesk, elance, etc. to find the needed workers. Then I will set up Redmine or JIRA to organize the workflow (tickets, deadlines, etc.). I am also going to introduce daily email reports on what has been done so far (required from each worker). I will use escrow for payments to these freelancers. I am not going to hire the cheapest freelancers.

But before I do that, I would like to know:

  • are there any special things I need to know and to do before I start working with freelancers?
  • are there any best practices to manage such a distributed team of freelancers effectively?
  • does my overall plan look feasible and realistic? (from your experience).
6

One of the key aspects of working with freelancers you need to address (and the earlier, the better) is their level of availability and commitment to your project. Although there is always a risk of a team member (whether they are employees, consultants or freelancers) moving on or having to work on other things, the risk with freelancers tends to be higher so you need to plan for it:

  1. Acknowledge the risk: formally address the risk through your risk management process and evaluate it (e.g. what is the risk if freelancer A quits the project or freelancer B is no longer 100% available?). Assess the impact on your project (would it put the project on hold? would you lose work done?).
  2. Plan for knowledge sharing and transfer: define and implement good configuration management (e.g. frequent code check-in, clear version controlling, etc.) and documentation processes. You could also implement peer reviews (i.e. a team member reviews/tests another team member's work) to promote knowledge sharing amongst your team.
  3. Facilitate team communications: daily reports are good because they will help you keep track of things and also ensure that your team is working as planned on your project. Make it easy (pick a simple tool/process) for your team to report status back to you though so they don't waste time on putting a report together. You can also set up regular team meetings (video or conference calls if your team is not co-located).
  4. Make your way of working clear and part of your contractual relationship: You're the PM but also the person who pays so you're both a leader and a client to freelancers. Make it part of your formal relationship that (e.g. required availability, access, etc.).
  5. Select and hire the right resources: make sure that part of your selection process addresses what you need from your future team. If you need people to work 100% on your project, find out if they have already committed to other projects. Look for people who can demonstrate a genuine commitment to your project. Set your expectations with them clearly (e.g. the way you want the team to communicate with daily reports, their availability, etc.).
|improve this answer|||||
4

First thing to keep in mind is that the freelancers are not full time employees. They don't have to respond to your emails in a timely manner, they don't have to send you reports, etc. They are likely freelancing because they like the freedom.

With that in mind, it is not realistic to have a completed project plan or schedule yet. Even PMBOK would tell you the schedule can only come after you've gotten input from the team members who are going to do it.

Be flexible. Have sufficient buffer built into your delivery dates to accommodate hiccups, non-responsive team members or plain old iterations of work. Be prepared to cut functionality and features in order to focus on the core offering.

It is a good idea to try out each person on a smaller project or task and build from there. You will learn a lot. Like building any new relationship, it takes time. Each person is an individual with their own habits/styles and, most importantly in a freelance situation, each person has their own lives independent of doing work for you.

|improve this answer|||||
  • Mark, I could not decide on which answer to mark as accepted. The full answer for me is yours and angeline's together. Thanks! – skanatek Jan 22 '12 at 15:00
2

To add to Mark's draft, especially the first paragraph, you need to avoid the risk of dual employment. There are criteria, tests if you will, with which you need to comply so that there can be no confusion on the type of relationship you have with these freelancers. Companies have had to pay dearly when these lines are blurred.

Also, consider the type of contract under which these are guys will operate. Are they "a set of hands" under your direction or are you carving out scope and outsourcing to these guys? Make sure your Statement of Work clearly defines how this work will be conducted, how they will deliver, their obligations and yours, evaluation criteria, payments, award fees and penalties, etc.

|improve this answer|||||
  • 1
    +1 - Also, don't forget about copyright law and having a contract. In the United States, freelancers hold the copyright on any code they write, unless those rights are limited in a legally binding contract. – jmort253 Jan 21 '12 at 8:52
2

I don't have a full answer to your question, but in my experience there are two things you really should think over before starting:

  • your code review process
  • your testing process

If you have a great and reliable test system with a well documented coding guideline (part of the review process) is a win-win situation: they'll know what and how to do, and you can be sure that their delivery matches your expectations.

Anyway, if you have 4 freelancers and one lead developer, the lead developer will spend his time with communication, synchronization, bug fixing and integration. That's from my experience.

|improve this answer|||||
0

I am glad that I am not the only one how posted a question on the wrong site once! What strikes me the most in the word "freelancer" is the "free" part of it. Usually, if someone insists to work as a freelancer, it is because he or she do not want to have a boss! If you try to impose one on him or her, the freelancer can become a "loose cannon". But that is just an image I am giving you. I would convoque a meeting with everybody at the beginning of your project, and agree on a way of communicating regularly with the members of you team (I concluded that you will not work at the same workplace). Let them feel that you trust them, but that you want to know regularely if they need something or how far they are in their progress or meeting their dealine. Make them understand that it is not a way of controlling them (that you are not a control freak), but just to have a good time working with each other and avoid a last minute rush. Usually, a freelancer is somebody with great abilities and potential, but that never found a place where he could belong. Who knows, you may become friends along the way and do more business together. Have a good day.

|improve this answer|||||
0

No matter who your project team members are (freelancers or full-time employees) - you should start with Human Resource Management Plan. This document should define rules of the game and should address all important aspects of the project, regarding people and their interconnections. Once this document is in place and you baseline it with your team - their location or status won't matter.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.