Offshore developers and Onshore Clients – Part 2

As explained in Part 1 of this topic Onshore Clients are all those project owners or project managers who are working in developed countries handling projects done by thee Offshore (remote) developers, who are mostly operating from developing countries.

What I will try to address here is what you should keep in mind while dealing with developers from that part of world. What all criteria’s you should have in mind while awarding a contract to someone remotely operating in developing countries.

For Onshore Clients:

  • As a client you have to set clear expectations and not deviate too much from those commitments.
  • If you are deviating from your previous agreed deliverable (for any reason) it’s always best to provision for that in your budget and timelines. Because developer most of the time may not be saying no to you, out of fear of loosing you as a client or (some other personal reasons), and in order to complete your extra requirements he will compromise on quality and may not feel the same level of commitments to your project as he felt when he started on it.
  • Sometimes when you communicate with developers offshore on messenger’s or Skype audio/video, it’s best to record the commitments and communicate that in email as well, as sometimes what you have communicated verbally may not be translated same in developer’s language (especially if English is not his first language).
  • If you are getting your project done in developing countries because of cost advantages please keep in mind the work culture/problems those countries have as a part of their infrastructure (electricity, internet, turnaround time in case of natural calamities like flood or sever storm causing electricity breakdown).
  • Always be proactive with your communication through email and set clear dates for deliverable, as sometimes if you just say do this task and you expect to hear result in next call but the developer assumes that they haven’t been given any timeline so they will wait until you ask him for deliverable.
  • Try to get a fair idea of how much work your project needs in terms of hours/weeks/months, It’s best if someone locally can give you good time estimate on time/efforts, price can be varied based upon where you are getting it done, but never expect same project to be done on same price in all the countries/or from all consultant.
  • When you post your projects on websites where you ask developers to bid, most of the time in order to outbid other bidders developers make bids too attractive to deliver/believe (I remember one incident where I saw bidding’s for a project, which was suppose to be a replica of a project, which I had managed in one of my company in the past and we had developed that project for our client in 5 months with 4-6 developers + 2 testers working over time and 2-3 analyst/tester from client side,  I saw bids by developers as low as $500 with time of 1 month) I am still not sure if anyone can make that project in 1 month even if you put 10 developers, even if you had to rip of the existing project from the internet.
  • Just beware of these hard to believe commitments.

In the end it’s all about how well you are communicating with the person/team on the other side, and how well you understand his/her work environment limitations and work culture and how quickly or best you adapt to get best out of your offshore team. Communication is the key, as even if you have the best developers in your development team and if the things are not communicated properly to them they wont be able to deliver as per your expectations.

 

Advertisements

Offshore developers and Onshore Clients – Part 1

Just to clarify here by Offshore Developer I mean all those developers who are working in developing countries on less money and with lesser infrastructure compared to what developed counties has and Onshore Clients are all those project owners or project managers who are working in developed countries handling projects done by these Offshore developers.

Offshore developer: “my client keeps on changing his requirement”, “as soon as I show him something he starts asking for different variation with same budget”, “requirements document doesn’t list the requirement but he says it was obvious”, “too much of work/expectation for too less money and too short time”.

Onshore client: “Hard to track developers sometimes they suddenly disappear for days”, “can’t understand what they are saying sometimes”,  “not good at communication” (especially in English), “promise too much but don’t deliver on their promise”, “internet/electricity(connectivity) problems are too frequent”

These are the most heard complaints, or focus of conversation when you are talking to a person who is working in one of the above mentioned roles. The quotes listed above are the things I have heard from time to time from different peoples based upon the roles they are playing.

It’s not a technical post, it’s for offshore/freelance developers and onsite clients/managers on how to address the complaints. As I have been part of both sides of these roles where I have worked as a freelance consultant or as an Offshore developer and now on other side of fence working in companies who has to deal with offshore developers or on freelance project on sidelines.

Just to keep it short I will break this post in 2 parts and in first part I will deal with Offshore developers/freelancers/consultants.

For Offshore Developer/Freelancers/Consultants:

  • If you are trying to be a consultant for someone, you better be good at what you show in your profile.
  • Try to set clear expectation to your client. Make sure you always communicate your commitments in writing.
  • Never promise anything verbally as there can be a miscommunication in terms of what you are trying to say and what the other person is saying.
  • Be prompt with your communication, at least try to send over daily status on the progress you are making on the project.
  • Always keep scope for days’ off during project development.
  • If you are working on a project as a side project after your regular day job. Make it clear to your client and don’t assume you will always be able to spend full weekend days for client project (especially if you are married you might have other family commitments).
  • You might be able to spend 2-4hrs/day on client project after your regular job but it can’t be committed as well as it’s highly possible you have sudden requirement at your regular job and that’s your primary responsibility.
  • Most of the time you will be over-committing and under delivering to client, try to avoid that.
  • Don’t pick a project in a technology you have never worked in before, just hoping that you will find help from your friend or from internet and deliver the project quickly (every project has it’s own variations).
  • The other problem with picking up project in technology you are not good at is, you have to spend too much time in figuring out things either with the help from friends or from internet and you will spend more time in figuring out things then doing/implementing those. You wont be able to justify your hours/time spent on project vs. things you have completed to your client as client is expecting you to be good at what you have have committed to him.
  • If it’s a fixed price project you will make less money in the end even if you have completed it, as you had spent more time compared to time you quoted for client.
  • If you are working on hourly based rates with client make it clear upfront that particular piece of module/project needs you to investigate things. Most of the clients know that as a developer you have to do those things but when he is clear upfront and not kept in dark he is always happy to adjust his timelines and you as a developer don’t have to lie to him on deliverable or extra time it is taking for you to deliver on things.
  • Developing countries: Most of us (not all) developers are coming from countries like India, Pakistan, Bangladesh etc. We have some infrastructural problems which are totally out of our controls like – electricity, internet connectivity issue or sudden family commitments.
  • If you are working as a freelance/consultant try to have a backup plan for all these issues if you can, like having extra electricity backup, working from internet cafe’s, or have extra internet connection, or go to some broadband internet cafe if you need to do high bandwidth work in between. Always keep a backup days in your commitments just for those days where you suddenly has to take off from the project to fulfill your family commitments, but make sure you communicate clearly to your client upfront. (it’s little dicey but it’s good to have a good friend who can back you up during those times in these assignments).

Other things which I have noticed and it’s for all my younger colleagues whether you are working in all those big MNCs or small companies or as a freelance consultant, focus on your English comprehension if you can’t speak good English it’s not a big issues at lest try to be more pro-active in emailing or documenting the stuff and communicating in writing regularly. Try not to be afraid to speak in English if given a chance, grammar is not important while you are talking to someone in English but the information (content) you are trying to convey is more important, and higher you go up or more years you accumulate on your CV you better start getting good at communication (especially English) as you will be spending less time on coding and more time on managing clients and developers who might not be good at your local language and English might be the only one common language among your team and client. Write better and clear code as that reflects your personality to peoples who deals with your code. And it also shows how mature you are as a coder. Just don’t copy paste code from help websites, at least try to understand first what you are writing because if you had to explain the code to someone or debug it for any error you wont be able to do so if you don’t know what you have coded. Improve your coding and communication skills over the time. And try to spend some time on forums or read blogs especially in your core technical domain. Most of the time answering questions or helping other developers on forums helps you in getting free marketing/publicity and that helps, if you wants to be a consultant or freelancer.

There are lot of other things which can be written for all those who wants to make their mark in this software development industry as a Software Developer/Consultant or Freelancer. But I will end this post saying “Stay Focused” and “be clear” and “write better code” and All the best with all your projects you will be handling.

In Part 2 I will try to cover the onsite developer or clients and things to keep in mind while dealing with developers working in developing countries.