Coding, is? Fun!

Sunday, October 21, 2007

The code of IT consulting

I have been in the IT consulting services industry for some time now. I thought reflecting back on certain practices as a consultant will be useful:
Early on, when I worked in Cognizant, I was new to the contracting model. The idea in contracting is that a temporary worker performs certain services on a project. This helps the client to avoid directly hiring, say a programmer. In the United States, hiring an employee comes with significant overhead – such as providing health insurance and other social security benefits. It is also not easy to let an employee go without proper cause.
The client taps into the contractor pool and hires a consultant. The client also has another advantage – they can hire a specialist specific to the current project. They do not have to invest in training.
Thus a client hires a consultant for two reasons:
1. They can make targeted hirings for certain projects that are immediately available.
2. They can get a specialist in a particular field.

If you are an Indian going to the United States for working in the IT field, you have two options:
1. Become a permanent employee in a company
2. Work as a consultant
As a permanent employee, you gain job security – as mentioned above, you usually get social security and health benefits. The company will also think twice before laying you off. But you do not usually get paid overtime.
As a consultant, you work as an independent consultant or as the part of a consulting group. You can command hourly rates that result in a higher pay monthly than your permanent counterpart. But it is likely you have to pay for your own health insurance. You may lose your job any time.
When the economy is doing good, consultants make a killing because IT budgets are higher. When the economy is going bad, the first people to be hit are consultants (first-hand experience).
When a client selects you, they usually go through a primary vendor who makes consultants available to them. The primary vendor properly screens (that is, interviews) the potential consultant.

So, this is the situation in the United States. What about India?
Indian IT industry generally does not use consultants – for a couple of reasons. Because of the higher labor pool and the scarcity of jobs, Indian companies can easily hire qualified people for lower pay. Also, Indian IT industry does NOT have any problems laying off people.
In India Graphic Designers usually work freelance and as contract workers – but programmers rarely do.

But, when you get hired by an Indian company, you are still a consultant for the client (usually American or European). Your company (whether it is Infosys or Wipro or Satyam) basically uses you as a “body” to throw in and out of a project (hence the term “bodyshopper”). The large majority of technical people are bodyshopped.
There are two different models in Indian IT services:
Turn-key, fixed-bid projects – Projects that companies undertake to finish with available resources - since they have specialists in the field. This could be an SAP implementation or a Business Intelligence application. The clients in this case rarely have visibility or choice in the allocation of individual resources. The projects can be long running projects (as in SAP) or shorter projects meant for an “evaluation”.
Retainer projects – In such projects, the client uses the offshore consultants as an extension of their own development team. In such projects, the resources can be used in an hourly rate and are called “Time & Material” resources.
In either case, the key is to understand that you are primarily a consultant – you are being paid for rendering services to the client. You are being paid to work in the best interests of the client.
In my mind, this is the best model to work under – one of my former colleagues thought ALL IT workers should be consultants. I have noticed that in the companies I worked for, the best work was done by consultants; and they were the most knowledgeable and responsive. One reason is that the SLA (Service Level Agreement) is clear in the case of a consultant – that you respond to client emails fast is clear. To an employee, somehow the SLA is not clear.
In my work, I try to act as a consultant (ie as if there is an SLA) to everyone – even fellow employees; and I try to honor such a code when I respond to calls from other divisions.

What does such a “code for consultants” mean? You will see as you read below that most of it applies to other divisions in your own company. Treat everyone as a client at work – including your subordinates.

The code of consultanta
1. Adher to an email etiquette – always respond to any client emails within a day; you can tell them you are working on something else. But, respond!

2. Always make sure the clients can reach you through different channels – a phone, if they cannot reach you online.

3. Make sure they have an escalation path – so that they can reach your boss or someone else who can help them. I have seen consultants enforce their indispensability by hiding other people in their organization. That is good for you but not for the client (which ultimately will affect you). In fact I would suggest making sure they know your whole team. The escalation path should be available even if you are not on vacation.

4. When you go on vacation, make sure you have an auto-reply set that says when you will be back and who the client can contact in that time.

5. Make sure that all communications are polite – and be secure enough to back off when the client want it their way.

6. Keep an eye open for any collaboration or value-add for the client. If you see one of your other divisions create a training plan, see if it is applicable to your client. Alert them about new information in the market. Make them understand you have their best interests in mind.

7. Always keep track of your time to as much granularity as possible – if a client loses confidence in your timesheets, the relationship is over.

8. I have noticed that Indian teams become very upset when the client hires people on their own. (God forbid if the hire is an Indian). I have actually seen offshore managers try to strategize around this. The offshore team feels paranoid; and the managers feed this paranoia. I have seen team members trying to eavesdrop on conversations! This is a very bad and insecure way to deal with such hirings. As consultants, it is our responsibility to SUPPORT their hires in every way. I have always tried to do so, and I have not had reason to regret it. Instruct your team not to be paranoid and extend all cooperation. Do not sabotage or second guess the client’s actions and do not let your team do so either.

9. Never, never solicit employment from a client when you are working as a consultant. If the clients themself bring it up, tell them to contact your company. Usually consulting services have a Non-Solicit and a Non-Compete agreement with you to prevent this. Even if your company does not have such agreements, never solicit employment from a client. It is unethical.

10. If someone asks you who you work for, mention your company name – NOT your client’s name. I have seen people do this in interviews – if their client is Dell or Intel, they say they work for Dell or Intel. They don’t – they work for the company that processes their paycheck.

Labels: ,