Monday, April 6, 2015

Recruiting Offshore Provider(s)

Recruiting offshore resources can be a full-time job in itself.  Over the years, I've made some mistakes and learned a lot.  Here are some things I do to ensure the most successful recruiting.

Use Fixed Bid Projects

If my project scope is known and finite (and, for best results, my project scope is almost always known and finite) I use a fixed-bid project.  This is the best way to understand, anticipate, budget for, and control offshore resource costs.

Service providers on offshore recruiting sites such as ELance can be an individual; a robust corporation with office space, managers, and support staff; or anything in between.  In my experience, hiring a corporation is guaranteed to bloat costs without necessarily yielding additional quality or improved turn-around.  My preference is to hire individuals or very small companies.

To that end, I post a fixed bid project "budget" on the lower end of what I think the project should cost.  In general, it is the individuals and small companies who bid on projects in the lower price ranges.  The corporations bid on projects in the higher price ranges.

Set Clear Expectations

Offshore resources encounter challenges that I am less likely to deal with myself:
  1. Lack of exposure to, and understanding of, the business and the application
  2. Possible language barriers
  3. Cultural differences
  4. Limited communication opportunities

Before enlisting any offshore resources, I complete very thorough requirements gathering and design.  When creating my design documents, I:
  1. Define expected appearance and all expected behavior
  2. Define the business rules
  3. Provide wording for messages to be expressed to the user by the application (very important with ESL providers)
  4. Create screen and report mock-ups and flow diagrams to clearly communicate how the application should appear and behave.
I set expectations regarding:
  1. When deliverables are expected
  2. What time overlap window I'm seeking (ie. what hours I would like them to be available in order to overlap with my own hours online)
  3. What communication is required
  4. What my success criteria will look like

I ask my candidate to communicate their expected absences and outages (for example, festivals, holidays). 

I confirm that my candidate understands and agrees to my expectations prior to hiring them.

Prepare With a Trial Period in Mind

Whenever possible, I use an offshore resource that I have an established relationship with.  The level of trust and faith that I have when working with Robin, Sukhil, Richard, Gayathri and Chandra (cheers, all) is extremely valuable because I know that I can confidently proceed with them with a good understanding of their strengths and styles.

In cases where I have to recruit a new resource, I always hire more than one for a trial period.  There is a wide range of quality in offshore resources (as there is with local resources), and no matter how diligent I am, there's always the possibility of selecting someone who doesn't work out.

To mitigate this risk, one method that I use is to have a "trial period" build into my project plan and budget.

After I've done my thorough and complete design for the entire project, I split off a portion of the functionality - a deliverable that can be developed first, without dependency on other system features, which requires a good representation of the needed skill set.

I post a project for that one deliverable with a mention of the possibility of additional work after completion.  From the bids, I select two or three promising providers and give them all the same project/deliverable.  When selecting the providers, I try to select at least one proven provider with a solid project history and positive feedback and at least one "newbie".  The proven provider offers a level of confidence in their quality and reliability.  The newbies are often keen to start establishing a reputation in a very competitive market, so they will often charge less and deliver faster in order to get that crucial first success.

Through the trial period, I assess the professionalism, quality and turn-around of each resource.  At the end of the trial period, I pay out each provider and engage the best one for the remainder of the project.

By using a trial period like this, I dedicate one small bit of time and money to finding the right provider.  Jumping in with one favorite provider from the outset leaves me at risk of wasting time and money on a "wrong" resource and then having to start all over again with recruiting.

Short List Carefully

Depending on the nature of your project, I often receive a mountain of bids. 

I carefully review the bids, taking advantage of the tools and information ELance provides:

  1. Check the provider's portfolio, job history and feedback
  2. Review the text of their bid.  I shy away from template (spam) "we have read and understood your requirements and we're ready to begin work" responses.  I look for evidence in the bid that they have read my specific requirements and commented on specific deliverables.  Particularly good bids will include specific questions or make suggestions with regard to technology or technique.
  3. I look for the intended delivery date.
  4. I send a message to candidates I'm considering asking some clarifying questions, for example:
    1. How many people will be working on this and what is their skill/experience level?
    2. Do you have any scheduled absences (ie. festivals or holidays) between now and your posted completion date? What/when are they and what impact will they have on the schedule?
    3. Are you prepared to follow my processes with regards to communication, bug management and test system availability?
     I assess their response time and the quality of the response, and make sure they've understood and addressed my questions.
  5. I rate the proposals using the 1-5 dots on each.  For ones that I'm simply not interested in, I use the "Hide" button to move them to a separate screen. 

Closing the Loop

Using offshore resources can be very impersonal, and I often hear about resources who have had prior bad experiences of being taken advantage of, or treated poorly, or disrespected.  I try to operate with a level of respect to establish good will, even if I'm not going to be working with a resource at that time.  To that end, I close the loop with all of my applications who aren't selected by sending each a note thanking them for their bid, explaining why they weren't selected, and wishing them luck in future.  

No comments:

Post a Comment