Saturday, November 28, 2015

Offshore - A Novel Solution for Working With Tennis Elbow

This morning I did some programming, but I didn't touch the computer.  Instead, I worked with a young man from the Philippines who served as my arms and hands.

I have tennis elbow (tendinitis) in both of my arms.  I'm doing everything I can to heal my arms including rest, heat, braces, stretching, massage therapy, and acupuncture.  Things are starting to heal, but tendinitis is a notoriously slow injury to recover.  While my arms heal I still need to work, and I need to do that without further injuring myself.

In order to continue using the computer without exacerbating my injury, I've been exploring methods of computing without my arms and hands.  I've started using voice recognition software, which is how I am writing this blog.  The voice recognition software might be able to help me with programming, but frankly I'm not willing to undertake the learning curve that would go along with becoming effective that way.

I decided to try offshore help in a novel fashion.  I posted a job for a programmer's helper - someone who could poke the computer on my behalf.  I received many applications from programmers and other technically savvy resources, plus from admin people.  Prices ranged from $3.33USD per hour all the way up to $50.00USD per hour and more.

I interviewed a few people who fell on the "more affordable" end of the price spectrum (there's no point working if I'm paying out more than I'm bringing in just to do it) and started working with two young fellows - one from the Philippines and one from Serbia.  The guy from the Philippines is a programmer.  The guy from Serbia is an engineering student with an interest in programming.

We use software called Team Viewer to work together.  At the start of the session I send them a Team Viewer ID and password.  Using that information they take control of my computer.  I tell them what to program, and they type and click and poke everything out for me.

During the session we talk on Skype using different devices (not our computers).  We cannot have Team Viewer and Skype running on the same computer at the same time otherwise we get a feedback loop from my helper having his Skype running alongside a connection to my computer with my Skype running.

Both of my helpers are excellent.  They are smart and keen with strong knowledge of programming and database environments and they both have great attention to detail.  They both add value by catching my mistakes and making suggestions, and I expect that over time they will add more and more value this way.  I had thought to enlist more than two helpers but I think I got lucky and the two that I have will provide all of the availability and skills that I'm going to need.


We are learning to work together and getting faster as they learn the environments that I work in and I learn how to properly describe what it is I expect them to do.  This is not pair programming.  Pair programming is when two programmers sit down together to work collaboratively on a software development task.  What I am doing with Gvozden and Jaypee is completely different and has unique challenges.  They aren't doing any programming - I am.  They just act as my arms and hands.  The challenges come because they can't see me so I can't point to show them what I'm talking about as I give instruction.  In a way they are blind, and in a way I'm hobbled without the use of pointing and gesturing.  But I'm learning, they're learning, we're all learning, and I am able to work without exacerbating my tendinitis.

Friday, September 4, 2015

Tips for a Successful Project With Offshore

There are as many different ways to use offshore resources as there are people who engage offshore resources.  Over the years I have developed techniques that work well for me in my situation.  Here are some things that I do to ensure project success.

Use Offshore Resources for Isolated "Heavy Lifting" Tasks

The project I'm working on is MY project.  I stay knee-deep in key activities and retain the intellectual capital.  I use my offshore resources to perform isolated technical "heavy lifting" tasks of developing specific design and code deliverables based on the very detailed design I have provided them.

I do not rely on my offshore resources to provide project management, requirements gathering, systems analysis or quality assurance tasks. Those tasks are mine.  They are crucial to ensuring the overall success of the project, which is, ultimately, my responsibility.

By keeping my supplemental resources to the isolated technical tasks, I minimize the risk of the loss of intellectual capital if/when my resources move on.  I therefore provide the crucial continuity to my clients and minimize risks associated with having to replace a resource.

By performing the project management myself, I remain the key point of contact for my client and I always know the exact state of the project.

Through extensive requirements gathering and design activities, I come to understand my client's needs very thoroughly.  Unlike many of my resources, I have the same first language as my client and I have a basic familiarity with their business and the culture in which it operates.  I guide my offshore resource(s) through comprehensive quality assurance activities to ensure that the requirements are met.  I confirm that the software behaves as expected before my client ever sees it.

See the Work Early, See the Work Often

This is, of course, very important for all software projects, but it is particularly important when
relying on offshore resources to interpret a design and develop what it describes.

The sooner I start looking at the system, the earlier I can catch and correct any miscommunications and get development headed in the right direction.  A demo or picture isn't good enough.  I expect to get my hands on it to start testing as soon as possible in a project.

I set the expectation right from the start that I will expect to see the software early and often.  I establish a plan for having a test environment available ASAP.  I communicate that I realize the system won't be finished or perfect when I start looking at it to minimize resistance to letting me see it soon after it starts, rather than waiting until my provider thinks it's finished.  Thanks to agile methodologies, developers are becoming less resistant to showing their work unfinished.

Time Overlap

Working with offshore resources means that a lot of the work happens overnight.  I find it key to a successful project to have as much time overlap as possible to:
  1. Prevents unnecessary delays when my resources have questions
  2. Minimizes mistakes from my resources going too far down a wrong path before I provide feedback
The bulk of my offshore resources are from India. India has one time zone, which is approximately
12 hours off of where I am (Mountain Time). I say approximately because my time changes twice a year with Daylight Savings Time and theirs does not. Half the year we're 11.5 hours different and the other half we're 12.5 hours different.

Indian resources work a lot with North American clients and are used to adjusting their schedules to accommodate ours. Many offshore people begin their work day in late morning or afternoon and work into the night in order to overlap with the North American morning business hours.

I am an early riser by nature, and the more I work with offshore resources, the more I run with my nature rather than trying to fight against it. I start work by 6AM each day, and sometimes I start as early as 5AM or 4AM, depending on a project's need for me to collaborate with my offshore resources.

It is not necessary for me to begin my work day so early, but it certainly is helpful and gives me the maximum overlap possible with my offshore resources. The expected time overlap should be established early - find out what your resource's working hours will be and negotiate an agreed upon overlap window for work days.  You don't have to be a crazy early morning person like me, but it does help.

Stick to What you Know

I know software and web site development, and it is software and web site development projects that I undertake.

To have a successful project utilizing offshore resources, you need to have a thorough understanding of the processes and tools which will be needed for completing the project, even though you won't personally create every deliverable.

For example, I do not have any experience with "app" development. Occasionally I am asked to bid on an app development project, which I always turn down or refer to another provider. I do not have any understanding of the technologies used for app development and deployment, nor any concept of how long development takes or how complicated specific features might be to develop.  It would be foolhardy for me to take on a project that I know so little about. I would not be providing value - I would be a hindrance. My own inexperience would be the biggest risk factor in my own project.

Other kinds of projects that I shy completely away from are:
  1. Pure web design projects with no database or programming. I have a colleague in Toronto to refer.
  2. Template-based web development. Projects involving creating web sites using Drupal, Joomla, Magento and the like are outside of my skill-set. I have a colleague in Edmonton to refer.
I know what my skills and strengths are.  I supplement projects that I would do anyway, strategically, using offshore resources only to fill in the gaps of my own skills.

Monday, July 27, 2015

Using ELance for Hiring Offshore

I have been using ELance since 2002.  I know there are other sites out there but the ELance service is excellent and I've never had a need to use any other.

Think of ELance as being like EBay, except that instead of connecting buyers and sellers for the purpose of exchanging goods, ELance connects clients and providers for the purpose of exchanging services. 

There is a lot more to using ELance than what I describe below - this is just an overview of how to get started.  To begin, you simply set up an account on www.elance.com.  You can start posting jobs immediately, and you can browse through the providers.

Posting a Job


Posting a job on ELance is easy.  Posting a thorough, complete and understandable job description which is likely to yield good quality bids takes a little more time and effort.

To initiate a job posting, select "Post a Job" under the "Hire" menu.

Give the job a meaningful name.  That is important, but not as crucial as having a great job description.  In your job description include:



  1. A high-level list of deliverables.  Request that the quote include estimated completion dates for each deliverable.  
  2. Your detailed design document (attachment)
  3. Your data model and sample data (attachments)
  4. The desired/intended technologies
  5. The intended audience (ie. is it a stand-alone application, an application shared across a network, an intranet, an extranet)
  6. The intended platform (ie. is it required to run in multiple browsers, on smart phones)
  7. Qualities and qualifications of your desired provider  
  8. A description of your intended development process (ie. communication methods, bug tracking processes)
  9. Project deadlines
Select the category of work and specific skills required.  This will help your job posting reach the most relevant providers.

Set your work arrangement.  See my "Recruiting Offshore Providers" article for my perspective on what kind of work arrangement I prefer.  You can modify the settings in "Location, Privacy and Other Options" if you wish, but I generally take the default.

When your job is posted live on ELance, you receive an e-mail and when you start getting bids on the project, you also receive e-mails.

Selecting a Provider

See my "Recruiting Offshore Providers" article for detailed information about how to best utilize
ELance for short-listing providers.  Once you've chosen a provider (or providers), you simply click the "Select" button.  If you're selecting multiple providers, you simply click the "keep the job open after I select a provider" box.  You can then select another provider.  For each provider selected, ELance sets up a separate "work area" for you for managing your communication, milestones and payments.

Communication


When your job is in progress, selecting that job (from under "My ELance" menu) takes you immediately to the messaging area for communicating with your provider.

When your provider sends you a message through ELance, ELance forwards it to you as an e-mail, and to respond you don't have to log on to ELance - you can simply reply to the e-mail and ELance:


  1. Adds it to the Messages list in your project workspace
  2. Forwards it to your provider

Skype Messaging is a great tool for real-time communication with offshore resources. In my
experience it is the preferred communication tool for lots of offshore resources and they ask to be added to your contact list to open a line of communication.

For more official communication or sending instructions, I stick with my formal method of communication. I tend to send messages through ELance - my service provider for hiring offshore resources. But for answering questions, providing clarification, and brainstorming solutions, Skype Messaging works great.

Payment

Payment for your project is handled via ELance.  How it works depends on the work arrangement you selected:

  1. If you selected an hourly arrangement, your provider will issue an invoice each week and you pay the invoice through ELance.
  2. If you selected a fixed-bid arrangement, you pay the full amount up front into ELance's escrow account.  You pay out the full amount to your provider only when the project is completed to your satisfaction.  This provides a level of peace of mind that you're not paying for something that never gets delivered.

In order to make payment through ELance, you have to connect at least one financial account to your ELance account.  You can attach your PayPal account and make payment that way, or you can attach a credit card.  When attaching a credit card, it takes a few days for ELance to approve the account.  They issue two small charges to your credit card, which show up on your statement.  When you see the charges on your statement, you enter them into the ELance system to prove to them that you hold the account entered.  ELance reverses the two small charges within a few days.



Wednesday, April 15, 2015

Ethics of Offshore

The ethics of using offshore resources is an enormous and complex topic.  I am not a particularly deep thinker, nor am I equipped to tackle the entire topic from all perspectives and all magnitudes.  But I will try here to address some of the ethical situations I encounter with regard to my offshore practices.

Disclosure and Refusal

Some organizations, in their desire to support local jobs and the Canadian economy, do not want to
have development done offshore.  Even though the amount of money from my projects going to offshore resources is relatively small, it is still important that the client know ahead of time and have the opportunity to refuse offshore involvement.

In cases where a client refuses offshore resourcing, I may provide a quote using all local resources (if possible), or in cases where I likely won't be able to find local resources to perform the work, I may have to decline the project.

Impacts to Cost and Schedule

When completing a project which utilizes offshore resources, transparency with regard to cost and schedule are important.  My clients understand what impact the offshore resources have on the schedule and the costs.  I don't want to set false expectations about what software development costs "normally".

When estimating a project, I prefer to do a detailed requirements gathering phase before estimating for design, development, testing and deployment.  With the requirements gathering done, I itemize all expected activities for all expected features and do a "best case", "worst case" and "likely case" estimate for each.  Depending on how much risk I think each item contains, I then choose which of my three numbers to include on the final estimate.  For the items that I intend to outsource, I estimate as though I personally were going to do the programming.  My offshore costs have to include paying multiple providers during the "trial period".  Still though, it is likely that the final costs will come in under what I've estimated for development.  This affords me three things:
  1. Funds to pay multiple providers during the "trial period".
  2. A bit of a cushion in case of resource "flake-out" and having to start over with someone new.
  3. The opportunity to be a hero when the project comes in under budget (assuming that 1 and 2 haven't used up their cushions).

Who Profits from the Cost Benefits

There are two schools of thought with regard to who should profit from the cost benefits of using offshore resources:
  1. The client is getting the same value as if all local resources were used so they should pay the same price, and I, as the service provider, can "pocket" the extra.
  2. Cost savings is one of the benefits of using me as the service provider so it is in my best interests to forward the savings to my client.
Personally, I am of the second opinion.  Because my clients are mostly small to medium-sized organizations, and many of them are volunteer-run or not-for-profit organizations, cost is a huge consideration for them.  I make money only from my own hourly efforts on the project, not from marking up the costs of my offshore resources.


Continuity, Maintenance and Warranties

One of the biggest risks that a company accepts when developing custom software is in continuity,
maintenance and warranties.  There barely exists a manager or business owner who has not been burned by a provider who flaked out on them, leaving them with an incomplete or unmaintainable software application or web site.

Continuity and the ability to provide maintenance and warranties are an integral part of the service I provide to my clients.  By retaining all the intellectual capital of my projects, utilizing offshore resources only for technical "heavy lifting" tasks, I ensure that I can offer this continuity and assure my clients that they will not be left holding an incomplete or unmaintainable product.

One deliverable I always offer clients, whether I use offshore resources or not, is a robust "Tier 3" support document.  A "Tier 3" support document (modeled after ITIL) is the technical support document that describes your technical environment and explains any specialized processing and support processes.  With the help of my offshore experts, I create a robust "Tier 3" support document that can be used by any resource to pick up where I (and my team) leave off.  After all, it's not just my team that can move on... eventually I will want to retire or move on myself, and it's important to provide clients with the information they will need to pass on to a new service provider.  

Impacts to Canadians and the Canadian Economy

This is a particularly thorny subject.  We have all witnessed the nearly complete exodus of certain jobs to offshore providers.  A prime example of this is in call center providers.  Who among us hasn't been disheartened and frustrated by the complete unavailability of Canadian representatives from a Canadian company?

As I mentioned above, I am not able to deal with the larger issues of offshore resourcing.  I am only able to explain how it works in my small world.

I am a one-woman consulting firm.  When I take on a project with a client the bulk of the work associated with that project, from project management, requirements gathering and design, to quality assurance and deployment, are performed by myself.  I use offshore resources only to fill in the gaps with some technical activities, primarily graphic design and coding.  

Many of my clients' projects would not be viable if it weren't for my strategic use of offshore resources.  Otherwise they would be faced with costs in the tens or hundreds of factors greater than by using my services or shelving their project altogether.  

Through my strategic use of supplemental offshore resources, I ensure that I keep Kraft Dinner on the table of one small Canadian business owner (ie. me), and I provide value to small Canadian organizations by helping them complete projects that otherwise would not be viable.  My clients' projects are usually so "inconsequential" in scope and budget that small multi-person consulting firms won't even entertain them.  The benefits that my clients realize from developing their software would otherwise be unrealized.

Quality

I think most of us would agree that some offshore practices involve a drop in quality (ie. call centres staffed with ESL resources.)

When I first started encountering offshore workers in the late 1990s the quality left a lot to be desired.  I was happy about that, actually.  It gave me a level of confidence that my livelihood was not in jeopardy.

Things have changed a lot since the 1990s.  The quality of programming from offshore resources has improved dramatically, even to the point where my offshore resources are certainly as good as, and often better than, local resources I've worked with.

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.  

Saturday, February 28, 2015

How I Got Started Working with Offshore

After completing a stressful full-time contract in Calgary in 2002, I decided that I'd like to try freelancing from home.  I found this great web site called ELance (www.elance.com) which is sort of like EBay, but instead of connecting buyers and sellers for the purpose of exchanging goods ELance connects clients and providers for the purpose of exchanging services. 

I thought 'wow - this is perfect!' and set about bidding on a few projects applicable to my skill sets.  Within a few days though, I quickly realized that I could not compete in a global market against offshore resources who were bidding 1/10 or less for work than I was.  First I got discouraged and then I got angry and scared.  Were these offshore resources going to steal all of my potential work from me?  Was the day coming when I wouldn't be able to make a living wage in North America?

I flipped ELance the mental bird and established a new contract in Calgary with a previous client.  Although I had to work on-site, I was able to make an arrangement with them to work part-time instead of full-time and I was happy.  It was good.

Over the next few years I started branching out and acquiring more part-time clients.  Through my numerous connections associated with the Calgary Outdoor Club, I started getting requests for all kinds of projects.  Unfortunately, I often found that those projects involved tasks requiring skills that I do not have.  For example, I often got requests for web site design.  I can set up a database-driven, fully-featured web site like nobody's business, but when it comes to graphic design I'm pretty pathetic.  Sometimes I got requests for projects that I could complete single-handedly, but more often a project required something which I was not personally able to deliver, like graphic design.  It seemed that although people wanted their web site to function well, they also wanted it to look nice (go figure), and I was in the disheartening position of having to turn down too many projects.

I started reaching out to other providers who could help fill those voids.  I didn't want to have to say 'no' to these projects just because I couldn't personally complete one aspect of them.  I met a precious few programmers and graphic designers and I tried to collaborate with them on my projects.  The problem was, though, that they frequently moved on to full-time assignments, moved on to another kind of work, or were just plain too busy with their own projects to help out with mine.  I spent many hours trying to connect with providers who could help but came up disappointed and empty-handed. 

I struggled for a while with how to complete projects fully when I did not have every skill required and couldn't find local collaborators.  One day I suddenly remembered ELance and I thought 'Hey. Rather than trying to compete with those folks, what if I tried using them as providers for the skills that I lack?' 

I began posting jobs on ELance.  I posted things like logo creation and web site design template creation that I couldn't do myself but that were essential project deliverables.  Suddenly I was able to confidently answer 'yes' to projects that I wanted to do, but otherwise might have had to turn down because of my lack of specific skills.  I knew that I would be able to find offshore resources who could fill in the gaps in my own skill set. 

More recently I have started using software developers extensively as well.  I am a good programmer but over the years it has become difficult to keep up with all the new programming languages and techniques.  I don't always know the best way to program something, so by leveraging the expertise of offshore resources, I ensure that I provide the best technical solution, and the best quality solution possible.

My offshore providers are not only able to provide skills that I do not have, but they also provide additional capacity.  By engaging multiple programmers when appropriate I can turn around projects faster than I might otherwise with just myself performing the programming.

My practice of supplementing projects with offshore resources to fill in where my own skill set has made my own business sustainable and viable over time.  I can confidently offer my clients complete project development including the best in design and code deliverables, within a fast and effective schedule.

Thursday, January 15, 2015

Offshore Development - Evil Symptom of Greed, Cost-Saving Panacea, or Smart Opportunity?

--Development of a data-gathering web site for a small start-up--
--New design and navigation structure for an old ASP 3.0 web site used by a volunteer organization--
--Development of a data import and management application for a not-for-profit reporting company--


What do these projects have in common?  None of them would have happened if it weren't for offshore resources.




Many North American developers view offshore programming as an evil symptom of corporate greed involving shipping our jobs overseas and many North American managers view it as a cost-saving panacea in which they can get the same development value for a tenth... or a fifth... of the cost of using local resources.  Neither of those is actually accurate, and there are many situations for which offshore resourcing, executed properly, is not only appropriate but can also be the only option.



North American companies are very much about full-time staffers.  Whether they're employees or contractors, almost all companies want full-time bums-in-seats where they can be found productively working,  at any time during the prescribed business hours. 

North American workers are very much about regular, full-time work.  Whether it's a full-time job with benefits, or a contract position, we want to know where the next paycheque is coming from and how much it's going to be. 

I have been a consultant since 2001 working on part-time and casual projects for as few as one client at a time to as many as ten or fifteen clients at a time.  Sometimes my projects last for years (part-time), and sometimes they may be as brief as four days of work.  In all the years that I've been consulting, I have met less than ten other Canadian IT professionals who also work this way (and I haven't been hiding at home or under a rock.)

So, when a company wants to have a web site created, or some software developed, but it is a small (or even tiny) project, what are they to do?  They can't hire someone full-time to do the little project; they can't afford to hire a team from one of the big consulting companies; and they are unlikely to find the right local individual to do the work. 

Many of these projects sit on the "wish list" pile on the side of the boss's desk and never get done.  Sometimes they might get their cousin's neighbor's nephew who knows that much about computers to take a stab at it, but it never really comes together.  Often they may try using a local resource but then that person flakes out on them and they're left high and dry.  Occasionally they get really lucky and they find a great local contract resource, but that resource doesn't have all the skills needed to complete the whole project, leaving holes in the final deliverables. 

Working with an offshore resource, or an offshore team, can be the key to getting these projects done. 

There is no such thing as "cheap" development (unless you mean crappy, non-functional websites or software), and that goes for offshore development as well.  You can't just poke the "Dial an Indian" button, toss your ideas at them (which make perfect sense in your head, but probably only in your head), wait two months, and expect to receive a glorious, perfect deliverable out the other end for a few crumbs and Canadian Tire dollars.

To have a successful project using offshore resources, you absolutely need to have the right local resource to oversee and manage your project.  This person needs project management skills, but they also must have a solid technical background, a solid basis in systems analysis, and solid quality assurance skills to guide the offshore resources to the desired result.  They must be able to find and recruit the right offshore resources.  Sure there are lots (read: thousands and thousands) out there to choose from, but the quality of work varies wildly.  Usually the right offshore resources are absolutely NOT the cheapest offshore resources at first glance, but when you consider how much money can be thrown at trying to get an unsuccessful project to the finish line, spending the money to get the right resources is ultimately worth it.

I have been leveraging offshore resources to complete projects successfully since 2005.  For more information, see my business web site, Andwa Consulting, or contact me at rhonda.scheurer@andwa.com.