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.

No comments:

Post a Comment