Outsourcing to India. Part 2.

Written by Roman on September 29, 2007 – 1:07 pm

Part 1.

Chickens transportationObviously, the main reason why people outsource their development to such exotic places as India is the cost. I used to get proposals from Indian companies to outsource some of our projects with the price for .Net developer as much as $7 per hour. It means $280 per week, or $1’120 per month. For the first pilot project they’re ready to work for even less money. This kind of proposals seems to be very attractive, especially comparing to Sweden. In Sweden, considering taxes and current currency exchange rate with US Dollar you would be able to hire one developer for the cost of 5-7 developers in India.

Unfortunately, the issue is not as simple as comparison of the payroll costs. There are many other things you would consider, and it is very often not so easy to measure how much each of them would cost you.

If you are sitting in the same office with your developers, you might discuss any topic and find the solution pretty fast. You can talk face to face. You can use white board with pens, or even your monitor with the source code opened. Or you can have a lunch together. Having developers in remote office has its own price. If your developers are in thousands of miles from you, then you talk to them using phone, messengers or e-mail (considering pretty bad infrastructure in India, I would consider video- conferencing as useless thing). The problem is that if you talk to somebody over the phone or e-mail, you leave a room for misinterpretation of your words. In addition, there are certain cultural differences. As a result, it might be very easy to find yourself in a conflict with your outsourcing partner that will not help you to keep good relationships and keep working productively together. Also think about the price for all your phone calls to India – normal conference call is about one hour, or even longer.

Misunderstanding might cause the problem that you get something you didn’t ask for – people simply understood you wrongly. It will cost you time and money to re-develop the wrong stuff.

You cannot always sit in your office and manage people remotely – time to time you need to travel to meet them, or invite them to visit your country. It means additional expenses associated with travel, hotels, rental car with a driver (I would never drive a car myself in India) and so on – and all these costs are getting higher now in India. Long time ago I noticed that no matter how smart you are and how smart your outsourcing partner is, the meetings face to face is the most efficient way to establish good relationships. So if you want to make your work productive, plan for periodic meetings face to face.

Due to pretty pure infrastructure in India, the quality of phone calls and Internet is not always very good. Time to time there is no connection and you can only wait until the connection is up again. It means further delays.

I really got sick from the fact that time to time you knew about the problems at the last minute when you have no other choice except to postpone the deadline. I understand that it is kind of cultural thing, but it was really difficult for me to accept that. Therewith, there is one small “feature”. If you ask somebody to send you a document on Friday, and that person answers “OK”, for me it means that he or she will send me the document on Friday because there is no reasons at this point why this document could not be sent. For Indians, “OK” means “maybe”. Very often this “OK” became “No”, so we finally started to interpret “OK” from our Indian colleagues as “Maybe, but Most Unlikely”. As a solution, we began asking for clear “Yes” or “No”.

Reading over this post, it seems to be too pessimistic – maybe because we faced many problems with outsourcing to India. Nowadays I get several e-mails weekly with offers to outsource some of our projects to India – those e-mails are sent to Deleted folder almost immediately.

Anyway, I think that outsourcing to India or to any other offshore area might work very well. Especially with the conditions like:

  • Your partner controls the company you outsource the project to. Or at least your partner controls everything related to your particular project. No need to say that your partner must have the same goals as you, and you have to absolutely trust him. In this case you will have somebody you trust to organize the development work and to follow up in case of problems.
  • Outsourcing company is not located in India, but instead in the country or area you are originally from. In this case you might avoid all problems due to cultural differences, and also you probably speak the same language as the people in the outsourcing company. The good example is a company in Saudi Arabia that outsources its development to Egypt – although they speak different dialects of Arabic language, they still understand each other. Also, both countries have the same culture and religion.
  • As an option, you are originally Indian, so you have no problems working with outsourcing company located in India as you came from the same culture.
  • Outsourcing company is working on the project that is not related with your other projects, or this relationship is so weak that it will not affect your other projects in case of delays or technical issues.

Personally, I think that it works much better without outsourcing. Currently, we have all our development in Egypt. Although it is not pure outsourcing because this is my partner’s company, this is forced decision anyway as we are not yet ready to spend much money on development in Dubai because of its high cost. Later, when we feel more comfortable with our sales volume, we will most likely move the development to Dubai.

———-
Interesting posts in Blogware:
Xing Blog published article about Doing Business in China. Joel Spolsky discussed the Excel Bug. On one of the blogs I found 12 years old article about How Software Companies Die - even after 12 years, the article looks like it’s written today morning.

Posted under Software Business | 4 Comments »

Outsourcing to India. Part 1.

Written by Roman on September 25, 2007 – 10:26 am

On its way to oursourcingI’ve been working with Indian developers for about 5 years when I was employed by Siemens in Gothenburg. The project we developed was very large, about 2’000 people in US, Sweden, Norway, Germany and India. There were about 300 people in our office in Bangalore.

I had couple business trips to Bangalore staying there for several weeks. Just before I quit Siemens to move to Dubai I was staying in India for about half a year working in our office over there.

The experience was amazing, and here come some of the points.

Technical Knowledge
I worked with brilliant developers. It was really exciting to have technical discussions with some of them, as they had smart ideas. Yes, there is a number of average and bad developers, but this is the same in any other country. I think that technically, Indian developers are of the same level as developers in any country like US, Sweden, Russia etc.

Relationships with the Manager
This is where the whole bunch of problems starts. Manager is a kind of superman and his word is very often a law. If he does not like or does not understand your idea, it will not be implemented, and developer will not normally argue with that. Especially, if the manager is from top level, like the chief of the entire office in Indian branch.

Admission of Errors or Lack of Knowledge
For some reasons Indians have problems to admit they made a mistake or they do not know anything. They will try to finish the work and solve all problems until the deadline without telling it to your, and you will know about those problems just before the deadline. Kind of surprise when you were told before that everything was all right.

It happens not only in the office, but also on the streets. Many times we simply came to some kind of slum in the middle of nowhere after we’d asked for the right way to the place we wanted to visit on the week-end. People could not tell they’re not aware of it, so they simply pointed to any directions they wanted. It took us a few weeks to understand that it is useless to ask for the direction on the street.

You could find a way back home from the slum, but it causes more problems if it happens in your daily work. Once we had very bad situation that was later escalated to the top management of our project. Let’s say we had a deadline for the next version development last Friday. During couple months before the deadline, our Indian office reported that progress went fine, they’re on track. Then on Thursday, they reported that we would delay the release because they got about 500 bugs left to fix. Although on Wednesday, nobody had any idea about those bugs.

Infrastructure
Quality of phone calls from office or home phone, mobile connectivity and Internet are pretty poor. My colleagues were not able to reach me either by my office number or my Swedish mobile number. Conference calls with US and Swedish offices very often had troubles with the quality.

Cultural Differences
Body language, I think, is the largest difference that you notice couple minutes after you’ve started talking to Indian. When we say “yes”, we shake our head up and down. Indians shake their heads from right to left – similar to the way we say “no”.

One month after I had started working at Siemens, I went to the project meeting in Germany where I met our Indian colleagues the first time, and that was my first experience about body language differences. I explained something to my Indian colleague, and he shook his head from right to left, saying “yes” in Indian. But I had no clue about this difference, so I thought he was saying “no”. Assuming he didn’t get what I was telling, I repeated my point again. I think after the third repetition he told me by words that he understood and agreed to my point after the first explanation.

English – if Indian has lived in US, UK or even non-English speaking European country for a while, then it might be pretty easy to understand his or her English. Otherwise Indian English sounds the same as Kannada used in Karnataka state. After a while you start understanding this English too.

Indian Food – very spicy, especially from Southern states. Even breakfast. After the first couple of weeks in India you feel yourself as a dragon breathing with fire. After 6 months spent in India I thought I would never ever eat Indian food again. But now it is one of my favorite food. Living in another country for half a year definitely affects your habits and preferences.

To be continued.

Posted under Software Business | 2 Comments »

Licensing Your Software

Written by Roman on September 22, 2007 – 11:57 pm

The 4th point of this article reminds me discussion about licensing of our product. I assumed that the licensing must be very simple, as if somebody wants to hack the program, he will do it no matter how smart your protection is. We had a professor from pharmaceutical faculty from one of the local university participated in our discussion. He pointed to one very interesting thing that is probably specific to the Middle East. Doctors and pharmacists are not used to buy stuff on their own expenses because pharmaceutical companies and their agents distribute a lot of things free of charge – kind of presents to promote the particular pharmaceutical product. In addition, all medical magazines are free. (By the way, this free stuff is not only in healthcare – here in Dubai people used to have a lot of free stuff like magazines, newspapers, seminars, training etc).

This “free stuff” environment results in the fact that doctors and pharmacists very often do not understand the licensing of the software - if one gets a CD from medical representatives, he simply feels it’s fine to give it to his colleagues who might also benefit form using the program. For those who sell licensed software, this approach courses problems, because as long as one doctor gets software, it is most likely that many of his colleagues will get a “special copy” of it too.

The conclusion of our discussion about licensing was that we would implement product activation. This is how it works. When doctor gets a program, he can use its full functionality for about 15 days – this is common for any software you can download from the Internet. Then he would need to purchase a license or otherwise the product will work with the limited functionality. All licenses we issue are stored in the License Database. When doctor enters the license into the program, the activation happens automatically by calling Web Service from our web site to mark that particular license as activated. All other attempts to activate the same license from another computer will fail. This approach works fine with about 90% of all customers. Other 10% have no Internet, so they would make a phone call to activate their licenses.

Yes, it is true that licensing is a feature that has no value for your customers. But from other hand you have to put some efforts to protect your product, especially if your market is sort of not used to buy licensed software using “special editions” of it instead.

Posted under Development, Software Business | 1 Comment »