Wednesday, June 15, 2011

Outsourcing Software Development To India

"Talking to you about software is like talking to the Maoists of Nepal about politics. They have a script they will read out of, and they will keep repeating themselves until either you give up or you give in. There is no conversation."
- An email I sent recently to someone in India

It can be done, it is a good idea, but there is no magic bullet. You have to know what you are getting into. If you attitude is, build me the best travel site in the world, and I have 5,000 dollars, and see you in two months, you are starting on the wrong foot. Your dreams will be dashed.

Step 1, do you know what you want to get done? Can you write it down in half to one page in plain English? If there are features you have seen at other sites that you want for yours, do you have the URL for those sites, and can you name and describe the features?

Step 2, find a team that can deliver. Yes can mean no. Or people can say yes to you just to buy time. Often times yes can be said to save face. There are cultural differences involved. If you find yourself feeling impatient every other sentence you exchange on Skype with the person at the other end, that is a warning sign. If you are uncomfortable while negotiating, you are going to get much more uncomfortable during product development.

Step 3, you get what you pay for. Be realistic. If your budget is too low, and you are hoping to get a lot done, chances are your expectations will not be met. Great engineers are hard to find, everywhere.

Step 4, once you have the spec down, and have a reasonable budget, and you have found the right team, it is time to make the initial advance payment and get work started. But before that, know who you will be dealing with. You want to get on a first name basis with all the key people who will be steering your project. You need someone at this end who will stay in near daily communication as the work is being done. It can be as little as a one line email. It can be small talk on Skype. Building software is also about building relationships.

Step 5, before you commit, you want a good timeline, you want milestones. You possibly want a tech spec from the other end. Can they do it? How do they expect to do what they say they can do? Ideally they will want as big an advance as possible. Can't blame them. Their fear is you might get them to do 50% of the work and then simply disappear. Or get 100% of the work done and then disappear. Your fear is they might take all the money, and simply not deliver the work.

Step 6, a 20-50% advance is not unheard of. If you are uncomfortable making that advance, chances are you don't feel like you found the right team. Keep searching. Maybe you did not do your due diligence. Maybe you did not look at enough of their sample work from the past. Maybe you did not do your homework. Maybe you did not ask all the hard questions. Maybe you did not talk to some of their previous clients.

Step 7, expecting them to do all the work before you make any payment is unrealistic. They want all the money beforehand, you want all the work beforehand. So negotiate a happy middle. You will end up with a schedule. You make an advance. Then there are milestones to be met and payments to be made.

Step 8, when the work is 30% done, when it is 60% done, you should have a good feeling. As a last resort you should be willing to call it off. You lose your 20% advance, you cut your losses and you move. That will be another indication you did not do your homework before you committed to a team to do work for you.

Step 9, you need someone at this end who will maintain near daily engagement while the work is being done. That near daily communication should feel more challenging than the communication you had when you negotiated. If it feels challenging, that is a good thing. But challenging in a good way. Not challenging in a oh-I-think-I-hired-the-wrong-team way. And if you don't have someone at this end who is capable of that communication challenge, maybe you are barking up the wrong tree. Even if you find a team that has someone at the other end who will do most of the project management for you, you will need someone at this end who could manage the project and do a good job in the communication department.

Some general guidelines.

(1) Start with a small project first. Use that project to build your relationship with the team that you think will be able to do a bigger job for you.

(2) Cultural differences are for real. If you have never immersed yourself in a culture completely different from you, maybe this is not for you. The nuances will drive you to the ground.

(3) You can't build the next Zynga if all you have is an idea, or rather a goal, and a really small budget, or worse, you are looking for a techie to come in and build the next Zynga for you for equity, and you are looking for that techie in India, and you don't even speak the language. Not gonna happen. Outsourcing has its limitations. You will find many people who can build a basic website for you, or a basic ecommerce site. And then it gets harder. But if you have a very clear idea of what you need get done, and you are willing to do your due diligence, and you have a realistic budget, you will be surprised by the kind of good work you can get done. There are people who do iPhone apps at the other end. There are people who help out with tech startup ideas.

(4) Have a big enough budget. India is cheaper but not that much cheaper. And part of getting it done for cheap is a willingness to take risks. Be prepared to lose some money as you fire one team and go look for another. You just lost your advance and that's okay.

(5) Delays happen. But if someone at this end maintained near daily engagement, those delays should not surprise you. Make some room for the fact that those people are 10,000 miles away. Their daily pressures are vastly different.

Outsourcing software development to India is more an art than science. The challenge is to add as many science elements as you can - milestones, deadlines - and to enjoy the art elements - so when you say yes you mean maybe? Google News was created by Google India. All the top names in tech - hardware and software - have Indian presences. Obviously the talent is there. But you have to find them and you have to pay them and you have to communicate with them.

Apple does hardware in China. The idea of getting software done in India is basically a sound one.
BusinessWeek: India Software Outsourcing: One Unhappy Customer: Usually, when I hear negative comments about Indian programming, it’s in situations like this: An American firm is trying to manage a small
captive shop in India. The top Indian software services outfits say companies would be better off dealing with them because they manage the projects, assure quality, and can scale up and down quickly. That pitch makes sense. But do things really work that way? .......... the deliverable was a very poor solution. The product deviated from the specification substantially. It looked like it was done by kids....and it was. We had to do an enormous amount of patching as well as realizing that they "borrowed" a substantial amount of code from other sources in India. Even though we were told it was Open source, there was no way to trace the IP, and proper branding. ....... Both of these projects will have to be rewritten sooner or later. ....... Later on we started another project. The first and last task was some platform user interface development. Yet another disaster. It was late, poor code and had to be re-written. ....... Some of the problems we encountered: ..... - Communication. You will never hear about problems until it is too late. It's a cultural thing. They loose face if they let someone know they don't know what they are doing or that the result is below par. The problem is that there is no way you can manage this and you cannot take actions. You end up with either a dropped project or a bad product. You need to have someone you trust on the ground. ...... -Infrastructrure. Our team was in Mumbai. Many in high tech use Bangalore. The Internet and phone connections were awful and dropped four to five times a day. ....... - Loyalty. We noticed a dramatic change in resources constantly moving. People were always leaving for another 20% salary increase. It's all about cash and who will give you more. ........ - Micro Management. If you are to avoid some impact on lack of information sharing about any problem you must micro manage the project. Preferably, you need someone there full time, which we couldn't. ........ - Cost. Well, it looks cheaper on the surface but caveot emptor. In the end, this cost us more and we were throwing money away.
Furthermore, t is not that cheap any longer. WE moved our entire offshore model to Ukraine and are extremely pleased. ....... - Quality. In short, we discovered that the code developed in India was either poor or eventually thrown away. Not very well invested time and money. ............ It's probably better to use India for QA work rather than Development. Maybe we acquired/hired the wrong resources, or we didn't explain the product well enough, or we weren't as prepared for off shore business as we are today, but after moving the resources to Ukraine, I would not try India again. ....................................... (comments) I really doubt whether Ukraine, Russia or China is any better ...... plain bad programming. Lack of error management, logging, and code formatting to our declared standards. In any case, we found that software testing works extremely well, but software development (with requirments of high domain knowledge) require much much more hand holding.This leads to too many cycles between the offshore and onshore teams, and it leads to too many conversations thru Skype / phone / video. We found it easier to do it at home. ......... the big-six. .... the big- INFY, CTSH, TCS, WIT, SAY etc will refrain from touching anything less than $5M ......... The smaller shops ... are encumbered with folks who really spend time picking up skills on the job. Also for the vast majority the goal is to acquire the skill in demand rather than being a passion. ............... The industry thrives on the low margin masses, which are mainly the fresh or low experienced engineers. Managing them is a challenge. ...... you find a person with 3-5 years of programming experience now managing a team of 10-20 engineers. First 3-5 years is not even sufficient to master software skills without formal education, then without any training in mangement they are thrust into an environment of managing people in a high-churn low loyalty environment ....... The Indian software industry runs as a software factory and the quality is comparable to the shoddy manufacturing in the incipience of the Chinese manufacturing industry. ....... Dont get me worked up about the 11th-hour syndrome. Its always communicated at the last hour that the deadline cannot be met. ....... 38% of doctors in USA are INDIANs. 12% scientists in USA are INDIANs. 36% of NASA scientists are INDIANs. 34% of Microsoft employees are INDIANs. 28% of IBM employees are INDIANs. 17% of INTEL scientists are INDIANs. 13% of XEROX employees are INDIANs. Co-founder of Sun Microsystems: Vinod Khosla Creator of Pentium chip (90% of the today's computers run on it) Vinod Dham .. We are the RISHEST ethnic group in US! ......... Like with any execution model whether India based delivery or even if every developer is in the same room, if you are not ready to invest time in or cant get hold of some vendor with experience it can lead to failure. Leading researchers have reported that only close to 31% of all Software development projects succeed and a large % of failure in projects is attributable to poor management of the Development Process ........ invest time in getting the process right, get the right level of local leadership and understand socio political nuances ....... most of the top Indian Software companies are in eastern Europe so dont be surprised if some your existing team moves to Infosys or TCS or Satyam for a 20% higher salary ......... as standards of living are going up, outsourcing is going to change its direction too ..... the proliferation of IT companies in India, in last 10-15 years, has added few badly managed companies compared to companies (Read Infosys,TCS, Wipro and Satyam) which are creating a niche for themselves ........ these one-project-profit companies ...... get proper reference from existing customers before offshoring development work to India ....... failures happen everywhere and with anyone. Out of 100 projects some will fail irrespective of the location of development and cultures. I have seen multi million dollar projects fail for the same reason in US and in India. ....... the simple solution to the difficult question is not in blaming off shoring , it lies in effectively managing your risks, recruitment processes and development processes ....... For successful outsourcing, key is in having right process in place and bringing in the right people. Wherever this is overlooked, it fails. ....... The population of India is very large ( maybe 1 billion?). There is bound to be a 1% creamy layer in any population. However in a sample size of 1 billion, this 1 % of 1 billion is a very large number. Then again the best among this cream (the cream of this cream like IIT graduates,etc) comes to western countries in search of greener pastures. Naturally since these are the cream of society , you get to see only the best. This clouds the thinking of the lay western person, who thinks all Indians are geniuses, because he has met only the geniuses. Now with this faulty assumption he comes to India to allocate the hi-tech programming work, thinking that everybody in India is a genius. The result then shocks and confuses him. .......... you will find good developers and leaders in every country. ...... There are thousands of IT service providers in India, more than a million people in the software industry. How on earth can you generalize on such a wide segment of the indutsry. ....... Talk to the customers which the company has serviced ..... there are poor programmers everywhere. ...... in my seven years of my programming career I have re-written so many lines of code originally written by other programmers, and most of those programmers were not surprisingly, from the US only. ........ it's more about finding the right skills and then managing your projects well. ....... Either the client or the software vendor should have certain level of maturity to work in an offshoring model. ....... The huge success of India as an outsourcing destination says that much louder than the complaints of customers like you. ...... Companies in US/Europe will need get involved in Project Management and maintain better relationship with these Indian companies. ....... in some projects more than 100 developers work over a period of 1-2 years to bring out a software, taking it through the different stages of development. ...... Project Management holds a very strong key and US/Europe companies will need to get involved in day to day affairs of Project Management ........ If the requirement is clear enough then it was the responsibility of steve's team to verify and provide sign-Off on each delevirable they made. ....... Well, I was in the team 'which did not deliver as per the expectations' as Chris mentions it. What he does not mention is what they did with what product they had and things that they could not decide. First we put up a year making a product named E-pay then they discarded it just like that. Then we invested time and money in making a product webplatform which by the way was done in parallel with team members from Sweden as well (name withheld). So when the delivery was not right it was because the direction from the top mgmt was not at all right. When the cart stops do you whip the cart or whip the ox? As for the claim of poor code quality etc, I throw an open challenge to put that code out in open and let it go thru the code quality tests. We have followed the best of methodologies and the best of XP practices (much more than the parent team in Sweden). This is just his own personal prejudice (just check his history at Novel) coming out in nice words... its always feels good and relives you out of responsibility if you can manage to put the blame squarely on others efficiently... ............... Steve - I was part of "your" team then. It is not ethical to blame when business drivers change and business decisions are bound to change. The then CEO had a different roadmap aligning to the kind of work under development in India and StreamServe came to India after aquiring that Indian operations. FYI - All the people working who where then in the team are working for ace companies on ace positions at present. Not to mention, StreamServe has two star performers their Indian counterparts. Please accept that business to India was closed because of chnage in business strategy and your self-centered perceptions carried forward from Novell which are not hidden from rest of the world. ...Not to mention that Ukraine too is good, probably as good as Indians, may be more, may be less, but since it aligns to your perspectives, all the best to you................ Over 90% of the software created today are custom products specifically designed for particular companies and their unique business models, structures and processes. The business domain knowledge is often more important than the technical skills when building the software. This is particularly true with service-oriented companies. For example, the requirements for a CRM product of AT&T is vastly different from those of Safeway or even Sprint. To successfully complete an IT project that provides a business value, the developers must either have very good knowledge of the proprietary business rules or work closely with those who do. ............. Having analysts to gather requirements and hand them over to the engineers does not work in reality because the projects are way too complex. ..... The lack of in-house knowlege about the inner workings of the software often lead to big losses in financial terms. It's like visiting a different doctor every time you have a cold. ....... This is the reason demestic software vendors like Accenture and IBM often send their developers to work directly on site. Many of these contractors end up staying on one client site for many years and even hired as permenant employees because their domain knowlege is too valuable to the customers. Foreign outsourcers are not able to do this, and thus cannot provide good IT solutions to American businesses regardless of how competent their engineers are. ......... If you cannot build/deliver new applications on shore, how can you expect to do it off shore? ....... If you believe in manufacturing software off shore (and I do) you need to look at how China has been successful in delivering hard goods. In that case, there were drawings and actual machinery shipped to China. They did not build the machines or tooling from scratch to manufacture. They initially used the machines and tooling we sent them and then built what they needed. .......... We are expecting off shore developers to build something that they have no idea what it is. ....... U.S., business people are like raccoons and shiny objects. They see a lower cost per development dollar and they have to have it. What they lose sight of is that to manufacture software a world away you should have already be able to do it here. ......... while a developer in India may cost you 25 dollars an hour, the number of management hours more than eats away that economic advantage. ....... Off shore will magnify you best and worst practices. ......... As a project manager managing several off-shore projects, I find myself diving into every aspect of the software design and development cycle, micro-managing the project. Basic elements such as error management, proper user on-screen messages, UI layouts etc are lacking. There are a few talented software folks and the rest lean on these few pricy ones. In the 80s and 90s, software or system engineers spent considerable years as programmers, analysts, designers and testers until they were made senior consultants and architects. ........... Unlike US; where the starting salary of a S/W engineer provides enough for a decent living; in India this number comes only at senior lead/manager level. Therefore there is a haste for people to move up the value chain. ........ Since the quality of the s/w delivered would be closely linked to the average experience of the team; companies invariably get what they pay for. ....... Failure on delivery can be due to several reasons even after the right team is selected. ....... The first thing is that are the requirements documented well. ..... Having a crisp requirement document is helpful to everybody but the need's not felt compeling enough till you actually find that the project has failed. ....... After a well documented requirement we have to setup a team with a set of team who are motivated to do the job at hand. ...... the biggest problem is the expectations. Most people outsource with soaring expectations. In reality its difficult to achieve 30-40% of the desired producitivity in the first 2-3 months; about 60% for the next 6 months or so and its only after a year that the productivity is at about 80%. ......... To make it go beyond 80%; lot of planning and thought is required from both sides. ....... Most companies get really disappointed during the first few months and show it really well too. This creates a negative spiral of morale and productivity. ....... Cost advantages of outsourcing to India are immense (atleast 50%); but they occur only if you are able to create teams which are made to reach the right productivity level over 1-2 years ........ s/w talent is in shortage world wide ....... In a flattened world the ability to outsource is a key to success. Ignoring big supply pool like India will only restrict your choices. ....... most Indian IT companies have offices everywhere and therfore are best suited to capitalise on the talents available elsewhere. ...... However the next wave seems to be creating products for the Indian market ....... Complaints and bashing about outsourcing is not new. As with any industry where human being are involved in all the activities and machines are used simply as tools, there are good and bad experiences. But in case of a failure, it is human nature to get away and put the blame on other. ........ As an engineer and as a manager my best bet would be to actually analyze the scenario and closely monitor the situation from time to time and try to fix the holes. Drawing a parallel with software development - Just like a white box testing is needed for the software development from time to time, there is a white box testing needed for relationship development too. This white box testing can be in the form of closely monitoring the situation/relationship, quality of delilverables, appreciating the efforts, pat on the back for successful deliveries, showing disappointments for bad ones ........ Biggest challenge in outsourcing is to have proper communication (IM, email, phone, skype) ....... both sides starts the relationship with a pre-mindset and level of expectations, but hardly anyone shares that with other at the beginining. ........ we have learnt since our childhood that one of the better ways to resolve a issue in any relationship is to "Speak Up and Discuss", business relationship is no different ........ I have been working in India for over an year now, and when I started the current relationship with a US company, I could easily read the doubts on various faces there. Now they are happy with the relationship. ....... I am a provider of outsourcing services to several clients in US and UK in the US 500 - 5000 range. And in a way my experience is exactly opposite of Chris... there is a tectonic shift-taking place in the sector and that is that the American SMB’s are now unable to afford the Indian software industry. At the enquiry level most of the clients don’t have any idea of what they want. We regularly get queries such as - clone yahoo/monster/youtube, budget US $ 2500.We send a spec sheet before accepting a project, which is always taken lightly by client. At the development level the scope of project is increased considerably. However the funniest thing about the process is that the behavior/communication with us is very aggressive as though they have placed a multimillion-dollar project with IBM. ........ Like Chris, am equally disillusioned with the outsourcing business have started sacking clients and plan to shift to some other venture soon. .... We are a bay area-based company with operations/execution unit in India. I run the firm, working with the clients closely and travel back and forth quite extensively. We have some huge successes where our clients reaped hundreds of thousands of dollars in savings, be able to go to market with solutions we have developed, and basically be nothing but totally satisfied. We also have instances where things have gone south. I do detailed analysis every few months to see how we can recetify the negative scenarios and it all boils down to the following: ....Requirements, Requirements, Requirements: When we have client who does not see the value of defining the requirements in detail, that is a deal that is going to doom one day, sooner or later.....Our tagline is "Locally delivered offshore solutions" - for a smaller sized firm, we take serious effort to connect locally before working on the solution. When the local part goes thru correctly, the project is often a huge success............... This artical and half of the comments just smell of prejudice, racism and frustation - of the author and his fellow friends' inability to deliver quality themselves, and then pass the blame on Indians! ..... I have spent a while in the Indian software industry and I certainly know that the quality of code written by the 'the big'- INFY, CTSH, TCS, WIT, SAY is a hundred times better than the trash written by most s/w companies in the authors' country. This comes again from my frustation correcting their substandard code all these long years... For one, these guys who love to blame the Indians fall behind in skillsets. Two, they demand sky high salaries, and three, when they fail to do a good job themselves they pass on the blame to indians!!! Ridiculous!!! .......... Steve says his project failed because of poor coding - Do we know who hired these professionals and who retained them? If Steve and his team had hired them, in my opinion they need to take the blame and get the stick. If you hire bad programmers [it doesnt matter if they are Indians or Americans or Ukranians] they will write bad codes. You dont need to have a failed product to identify a bad programmer! ........ I have seen worst possible coders in US as well as in India. No country is untouched with it. I should also add that there are good programmers in US and in India too. ........ The crux a software manufacturing success is in the Process adopted to execute the assignmnet and the Quality Management Plan. Learn from the earlier failures and come-up with Lessons learned and implement Best Practices. This could solve any complex issue. ........ Proven Industry standards and effective quality approaches should make s/w manufacturing a success story. ....... the companies that are able to hire the best talent in India (i.e. the Googles, the Microsofts etc.) do get really good programmers. ....... I am an Oracle IT Developer. I do contract work for companies all over the world. For the past 5 years I've spent about 1/3 of my development time on projects re-writing poorly written offshore code from India. When you look at the cost of an Indian developer to the re-work cost which is required on 90% of offshore written code, it is far more efficient, cost effective and less risky to build onshore using qualified (and yes more expensive) consultants. ........ The reason why we need terabytes of memory, clustered databases, load-balanced web tiers these days is to run Indian offshore code! ....... 18 years IT after 12 years in Accountancy I can understand the LOW COST as long as you should expect the LOW quality. In all I have worked on and with 17 projects where Indian outsourced workers were used. Not one project was on time and 15 of the projects have been re-written completely or cancelled because they were late being delevered. 8 of the projects were from the elite best Indian companies. ......... One good engineer can do more for the company than 5 or 10 average ones. Management never understood that concept. They keep playing the head count game and don't have a clue what a software project really is. Given a set of real problems, a talented engineer can solve them with creative and practical solutions while 10 average ones will be scratching their heads or flipping through books trying to find any random solutions to apply onto the wrong problems. ........ I am a Simple PHP programmer and I got INR 4000 per month i.e. $100 per month then why should you expept quality from us. The company gets lot of money without caring us. Please Dont blame on us. ...... Hire a guy at your side who had offshore experience, hire a guy at the offshore who has done work with US and know your work culture, make both of these guyz managing the project and force them having real stake in the effort, when u hire offshore resources get their resume and take technical i/v. If this seems to be a pain in the ass, then remember "no pain no gain". ........ for every technically competent US tech worker there are 100 more who are worthless. This is same for offshore people...only ratio is slightly higher. When there is lots of money to be made, fakes will always be there ........ I have spent last three days fixing the data model that your brilliant American data architect created and messed up analytics reports.
Today I finished it and reports are fine now. I did that job with much less time and money. ........ We are an IT services company in India, and have been royally cheated by one of our ex-customer who ran away without paying us for a considerable effort. The reason we could not chase is again being a start up we did not have the courage and capability to file a legal proceeding and well as the culture says, we leave the destiny to take care of such folks. ......... You will find substandard coding and products everywhere, not just in India. ..... .Is it so that whenever an Non- Indian writes a code it does not contain defect? Had then been so the concept of testing would not have ever born? Can all the people who are crying on quality,proclaim that they would deliver code in perfect quality within the limited time frame which is given to offshore? I guess not..!! ....... This issue could be resolved only if proper project managment + constant reviews is done ...... We are able to make softwares which are platform independent but are missing people who are culture independent ...... A practical solution would be to pilot a smaller project and see if all the communication/management/infrastructure/etc is in place to scale the project. Every project is unique and so would be the vendor and the particular team working on it. It is negotiation skills and a deeper understanding by the likes of Chris to make sure they know what they are getting their company into. To share best/worst practices is definitely appreciable, but I think it is as much the failure of Chris as a manager as it is of the vendor/team. ......... Employ people you can sue in your countries courts if things go wrong simple as that. ....... Hey steve, first of all! you are a dumbhead! if americans know to devolop quality code then why do you outsource to India?. Having one bad experience with an Indian company and clients doesn't mean that you can berate the whole of indians ......... There are certainly great coders and programmers in India, but they are in small number - let us remember greatness is never available in abundance which is why its great! ...... Come to India if you want a mass of people to maintain code, develop patches and do rudimentary work. If you want product development and if you are not one of those big brands that can get the best talent from top Indian institutes, then you are in for serious trouble. ...... the outsourcing by US companies in any country india/china/ukraine is a win-win situation to both of them. Say out of 10 projects if they need to hire brilliant techies (which they assume themselves) in US to fix the poor performing code for 1 project then its a lot of profit they are making out of remaining 9 projects (don't you think). ....... I have worked for multiple companies as a consultant where programming is “outsourced” to russia/india/china etc.. and the quality of code coming back is a total joke, I would not accept it from a developer in this country let alone outsourced. They do not seem to care about meeting requirements that are set down in documents, but care more about “chucking out another project so they can move onto the next one” this is the reason why you get rubbish code. They are just a production line contininously producing crap moving from project to project. Each projectI have seen has had to be recoded internally by someone wasting time and money as it never met the basic concepts for good design and coding practice.. And from gazing round Coding sites like CodeGuru/CodeProject I am starting to see where they get all their code from.. “Copy and paste jobs”.. ........ Ukraine or Russian can give more quality and less problem I had bad expirience with Indian companies several time and we are working only with companies from Russian or Ukraine. ....... As an American with an Indian background, and having worked with a few indian companies strictly based in India, here are the holes I saw in software outsourcing (btw, all of my projects outsourced to India are failures at some level and required complete to partial redevelopment using local resources).
1. companies promise and show paper documents of processes, but hardly ever follow them
2. communications are reasonable in pre-sales, sales, and opportunity development for the vendor. They are worst when your project requires the much needed support, fixing of bugs, maintenance and fine-tuning. Usually, the vendor stops responding once their $$ have been received and the bug reports are getting generated post launch
3. The vendors, taking advantage of a non-enforceable legal system (in India), hold customer hostage by not returning source code, or not returning original assets of software product or holding some of it thereof. I have had many sleepless nights calling the companies and their personnel with no success.
4. Most companies hardly maintain a staff to support you at YOUR time-zone. If you are in US, you have hardly any choice, but, to stay up and talk to them during their day-time which turns out to be your sleep-time.
5. Due to the demand out there, vendors do not care even if they lose customers by generating a half-baked product, since more fool-hardy customers are in line.
6. In short, India outsourcing is either as expensive as it is in US, or will result in excessive frustration, sometimes, causing a total revamp of your software. I find the work ethics or customer service of the companies I used, do not respect the promise of delivering a final functional product. If you have ever been used to money-back concept in US, good luck with outsourcing! ................... People (including me) like it or not India happens to be a promising land for SW outsourcing.The whole world writes about it.Not alone US! ....... This thread can be a case study for a doctoral thesis on mass hysteria. I hold no brief for India but the same post could have been made to arrive at a conclusion that American managers fail. Relook at facts in the original post - Bought a remote outfit but strategic plans changed (does this mean we can generalize that Americans shouldnt do strategy?), rather than bite the bullet they tried to 'reutilise' the team for unrelated work (does this mean we should generalize that American programmers will have no problems if told to do support or work on unrelated technologies to their core skills; or that you shouldn't hire American managers as they don't have a clue about HR management), they have high attrition (should we generalize that American programmers dont leave for higher compensation?, specially in an organization not sure of its strategy and plans?), they find quality of output is poor and code is as if delivered by kids (should we generalize HR& MIS systems of Americans are so bad they didn't know the experience and skill level when they hired employees or that the project management and development processes were so poor they couldn't plan or track performance before the final delivery), they still feel QA can be done in India though the main reason for India not working out is culture (should we generalise that QA is better left to people with an unethical culture?). It is quite amusing to see that even after realizing their failure, the 'management' responsible for the mess carries on. Individual brilliance of the new team recruited in the right context can hide management incompetence for some time, but this shouldn't be seen as success or failure of a country. ........................ Those people who complain about Indian IT professionals, should talk to Bill Gates and the CEOs of hundreds of other companies making lots of money in India. ......... Those who have generalized the issue must have been good programmer ;) (writing generalized code does not mean looking everything in this perspective). There are some drawbacks in the working style of Indian developers, which could be overcome. We follow SCRUM process in our project and do distributed scrumming. We too had similar problems but at last we resolved it and we have the strategy. Here are some highlights of the shortcomings with Indian developers.
1. Professional experience: When recruiting don't get carried away by the professional experience one has.
2. Jr's , Sr's , Caste and respect to elders: All the developers should work as a team, no team lead, no managers (could be managed from onsite, in India managers plays a lot of politics).
3. Mixing teams (have ambassador from India at onsite and vice-versa)
5. Domain Knowledge (don't give just documents to study, let each member take some topic and explain it to others, track whether the team is grasping everything or not)
6. Cultural barriers (understand the cultural barriers,
7. Question estimate/work (Indian guys are bad at questioning, they don't question at all. If you find things not practical just report it. Needs brainstorming and some trainings to overcome this)
8. Maintaining quality (before taking some one in team, let him write to code, give him feedback- understand his weak areas. Do lot of peer code review during project if you feel its important)
9. Raising impediments (Indian guys are not at all good at raising impediments, at last moment we know things are worse. Train them the importance of raising problems. Brainstorm them. Now my team works brilliantly atleast in raising problems ;) )
10. Help (self esteem and self confidence, shyness these all the qualities of Indian developers :P . Well this are serious issues but again by Personality training we could overcome. With a good trainer in 2 trainings i got the worst shy guy to open up)
11. Time sheet ( Make the guys practice filling time sheet. Start them with 1 hour tracking time, my team practiced for a week during all these trainings and well they know now the importance of time)
12. Improving (Give feedbacks, new innovative ideas from developers. Guys have good ideas that could really improve things)
13. Changing requirements/documentation (One important part, if you want offshore team to work well then you should have minimum and well documentation. I say Minimum don't put lots and lots of docs. Only proper use-case and UI documented should do. Update in case of chaning requirement.) .. The above process could be carried out before taking a guy into team (its not so easy nor difficult). It works for us and well could work for others. We do distributed scrumming at Qvantel. We have offices in Finland, Sweden, Spain, Norway and *India.... What ever we write/speak i am sure is understood by everybody who knows English. We don't need to masters in English and remember its not our mother tongue. ........................ About Indians - its not even a united country. There's the north, and there's the south and they hate each other, and then there's some thirty different cultures, all of whom are equally arrogant when it comes to defending their own sub culture. So the trick i've learned is to say - indians are worthless in general, but people who speak your language, or who come from your caste (that gift of the wierd religion they follow) are much better, and they will be your slaves forever. Or if that doesn't work, they've got pockets of Muslims and Christians whom you can use very effectively to turn against the rest of the crowd. ....................... The really young ones in their workforce do all the work with low skills and low pay, and then they stop working and start managing the moment they get a 3-5 years of experience. Its very important in their village-driven culture to prove to their other villagers that they've achieved 'success' or whatever it is they call 'success'. And talk to any of them, the'll throw in a few big names like Mittal or Tatas and how they're doing "grand" on a "global" scale. ......... The fact is, like all third-worlders, they pretty much all aspire to live in Europe or the US (gives them a chance to collect a big dowry from their in-laws, another element of their "Indian culture"). And then they bring their worst traits to the first world, vegetarianism and big, empty words being the worst. .......... Once the current generation of American programmers and architects passes away, it's all in the hands of the Indians, or the Chinese, or the Ukrainians or the crazy Russians .......... the biggest obstacle and roadblock we ever encounter is Culture difference ...... People here are debating starting from freshers from the industry up to the most experienced senior people and all every one is doing is blaming blaming and blaming. When all of us say "I am not responsible" than who is responsible? ......... No one can come to know what you have in mind unless it is communicated in a comprehensive form. The assumptions are too many and many of them are never conveyed or communicated from both the parties and this is what always leads to confusion. ......... I am myself an entrepreneur, and have a good tie ups with clients from across the globe. I also face similar situations, but the best part is, when ever such things happen, we both sit together, analyze, and overcome every adverse situation and devise appropriate counter measures to ensure it doesn't get repeated. ........ That is another cultural difference. Indians will nod that they understand even when they don't. ...... Does India have developers who are as good as U.S. developers? Absolutely. Are the chances you will get one based on the cut-rate good? Absolutely not. ....... There are more than 100,000 software companies in india may be even more. ....... My onsite salary is 1/4 or 1/5 of the salary of any stupid employee of my client. But if we see Indian salary then still it is 8 times i.e. indian employees are getting 20 to 25 times less salary. here hr cost of employee is 100 US$ and India salary is 5$ per hr or less in an avg. ....... I am a software professional moved from India, now working for a large US company.
Now, without any bias, let me explain my experience here. My company decided to offshore some of the work to IBM. IBM has built offshore teams in India and Brazil.
The biggest issues we have faced with Indian offshore team.
- Very inexperience team members(in the range of 3-5 years). After 5 years of experience most of them move to managerial role and thus creating a team with very limited technical experience
- Loosing team members very frequently. They move to another company who offered little more than they make.
- Very bad work ethics among developers. (Note: I found testers are extremely ethical). Developers spend time on an issue 'only if that helps him gain more knowledge'. Otherwise you can see a very disinterested pattern in problem solving...... Compare to the Indian counterparts, I found Brazil counterparts were extremely knowledgeable with great work ethics................ I used to work in the offshoring industry. No doubt India has some extremely talented programmers. ..... I would challenge the failure stats of India with domestic US figures. I think the main problem here is iterative and waterfall project methodologies. ....... Agile project management will help improve the probability of success with your software projects.
Enhanced by Zemanta

1 comment:

webdesign said...

Keep working and great job on the posts, I will come back again and check your feed out soon.
Web Development Company