Visiting an offshore training camp for programmers

I wrote this while sitting in a training camp Genghis Khan, a school for the rookie offshore programmers. The camp is located in the remote mountains of northern Mongolia. Many wannabe offshore developers come here for training. Since I am a popular personality among Mongol Java crowd, they let me sit in the class where Srini, the guru of offshoring was delivering the presentation called “Dealing with Overseas Employers 101 rdquo;. These are my notes from this class.

1. America is rich, we are poor. It “s not fair, they have to share.

2. In the beginning, their manager will try to scare you by promising that he “ll check up on the status of your assignments daily. Do not be afraid ndash; a status report is just a formality, and they “ll take whatever you write.

3. One of your major problems will be “what to write in status reports “. Never write “I could not do it rdquo; there. Americans like positive statements. For example, let “s say you “ve got an assignment to create a reusable component that will identify the number of failed database requests. You do not even have a clue what are they asking for.

The first week you spend on Google in hopeless attempts to find such component. The status report for the first week should read “Comparing various approaches of creating reusable db-failures component to find the most efficient and effective way for its development rdquo;. During the second week invent something similar. Hopefully, on the third week something more urgent will come up and you “ll get another assignment.

4. Be prepared to spend the first couple of weeks waiting for the logon id and password to your employer “s network. After obtaining these credentials, you “ll find out that you still don “t have access to a dozen of servers, which require Unix logon. Your remote manager will promise you to resolve it as soon as possible, but because of the service level agreements (aka SLA) with the Unix support team , you won “t get access for another week or so. Typically, it “ll take about a month just to get you connected.

5. Never say “I do not know rdquo;. Accept all assignments ndash; one of two things will happen ndash; either you “ll figure out how to complete the assignment, or it “ll get cancelled.

6. In conversations with your overseas teammates, always require detailed written specifications for each small program modification. Ignore their statements “I “d fix it myself faster than writing detailed specs for you rdquo;. They have no choice and must work with you to show that your team is useful.

7. Use time difference to your advantage. For example, if you want to send an email asking for some clarifications, do not send it in the moring, because you may get an immediate answer. Do it in the evening (your time zone), before leaving the office ndash; you “ll get the answer only next day.

8. If you have a choice, avoid fixed price projects. Hourly-based pay will allow to put a couple of extra hours here and there, and having a couple of extra rupees or rubles never hurts.

9. Experienced offshore programmers never try to obtain US working visa and to work onsite. If you do this, you “ll work a lot harder ndash; not worth the trip.

10. Always be polite ndash; it “ll get you far. Insert “Excuse me rdquo;, “Thank you rdquo;, “Yes sir rdquo; in every other sentence. Always smile – even during phone conversation. The he showed this movie about an offshore tech support.

11. Change your local employer every three months. You are gaining experience daily, and even if the new job offers just one percent of salary increase, go there. It “s a golden IT offshoring era ndash; use it while it lasts! Or as they say, it ‘s time to make a quick buck!

12. If you work in QA, keep a couple of bugs unreported till the very last date of the testing cycle. Report them at the end of this day. They ‘ll have an emergency meeting, production released will be postponed (no big deal) and you ‘ll be able to put more billable hours on this project. Repeat the same procedure at the end of each testing cycle. In computer science this is called recursion.

For some time I was speechless after hearing all these advices. Srini spent at least half an hour after the class answering specific questions from students. I also asked him, if he really believed in his teachings. He smiled to me and said, “Welcome to the real world, ma man! rdquo;

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s