Archive for the ‘Incredible India’ Category
Outsourcing–Dealing with “Good Enough”
One of the most common issues that western companies deal with after outsourcing software development to India is a lower standard of quality of the software/testing being done. It would be simplistic, and a little racist, to simply say that Indians are incompetent, incapable, or most laughably – lazy. I’ve dealt with literally dozens of western managers and developers infuriated by software delivered that functionally works, but that doesn’t follow what we would consider even a modest amount of professional development discipline. This can include things like no unit tests, unit tests commented out, poor understanding of the technology being used for development, insecure code that would falter under even the slightest SQL injection attack, etc. Again, the software generally works but is not something you’d want to trust your customer’s credit cards to.
Getting to the real problem
Rather than simply label the developers as incompetent, to be successful you need to understand a bit about the culture to get an understanding of where this problem could be coming from. Nearly 1/3rd of the world’s poor live in India, with estimates ranging around 645 million people. That poverty has led to a culture of making the most from everything they have. Very little is thrown away, and what is thrown out is then picked through and reused again. That spirit of ingenuity is what has allowed India to start pulling itself up to become a major influence in Asia and the rest of the world. There are literally dozens of examples of this that you see every day. From motorcycles turned into trucks for hauling goods to cow manure used as cooking fuel, everything can be used for something. 
But that ingenuity comes with a downside. When resources are scarce, the mindset is generally to take the shortest solution to any problem. One of my favorite examples of this mindset shows up in Indian construction. All over India beautiful new skyscrapers of steel and glass are going up, most of those do so with construction workers crawling on scaffolding made of bamboo sticks lashed together. Why? Because bamboo sticks are all that they need.
For your developers, the same mindset leads to software that functionally works but is of poor quality. Your requirements outline the functionality required but if you don’t make the quality requirements as equally clear then you leave it to them to decide the path they take and more times than not, that path will include bamboo scaffolding and smell of cow poop.

How to to get past “Good Enough”
The key to ensuring the quality of the software delivery is to create processes that enforce proper practices. Don’t leave quality decisions to the teams until they show that they understand the level of quality you expect as a standard.
- Make nonfunctional details part of the specification. This includes unit tests, code coverage, documentation, etc. Code is not accepted until these items are also met.
- Use modern development automation to help find issues before testing. These include continuous integration, automated builds, and automated regression testing.
- Provide training for all technologies that you expect the teams to be proficient in. Don’t assume they already know anything more than basic syntax.
- Code review EVERYTHING!!
- Find leaders within your teams who understand the quality required and appoint them as mentors to the teams.
Sometimes a cigar is just a cigar
While my interpretation of the cultural mindset of “Good Enough” might explain poor quality standards, this doesn’t mean that there aren’t some bad apples out there. Not every developer has the drive and discipline required to produce quality software. Your best bet for those individuals is the same as bad developers in any country. Minimize their ability to drop bombs into your code base until you can eventually get them off the team and out of your hair.
<Disclaimer> Please see my earlier post for a basic disclaimer and explanation of the intent of these posts.</Disclaimer>
New Blog Series: Outsourcing – First a Disclaimer
I’m about to publish a new article/blog series on my experiences as a manager outsourcing software development to India as well as living and working there. I meant to do this while I was there, but the pressures of getting software out the door coupled with dealing with the issues I’m now going to write about kept me busier than I would have imagined. So now that I’m back in the USA with power that doesn’t go off several times per day, I’m going to spend some time documenting what I learned in hope that it might help other western managers faced with similar situations.
Setting the stage
In order to understand the viewpoints I’m going to express, it’s worth taking a couple of paragraphs to describe where I started this journey. I have more than 20 years of experience developing software. In that time, I’ve held a number of different roles and have worked in every conceivable type of team and industry. I’ve had projects where I was the only developer and I’ve worked on projects that had literally dozens. As the industry has evolved, a major paradigm shift occurred as companies looked to commoditize software development and inevitably went searching for cheaper resources. India and their large systems integrators answered that call and so for the past decade or so, you would be hard pressed to find a significant development team without a native born Indian on it. In my recent positions I have been a manager of both onshore and offshore native Indian resources, as well as American, English, French, and various other countries. But the largest majority has been from India.
Here in the USA, there’s been no small amount of controversy over this paradigm shift. Whether your personal views fall on the side of expanding global markets or nationalist job protection, there is ample evidence available both for and against your views. In my personal history I’ve been booted from a project and replaced by three offshore resources due to a corporate mandate to move half of all development offshore. I’ve also staffed projects through my consulting company using offshore resources that were being abused by their management and who refused to let me help for fear of being sent back to India. And I’ve met more than a few happy, successful Indian natives who after working in the USA long enough to get their greencard eventually went back home to India to be with their family. But no matter what the situation, the undeniable fact is that the software industry has tied itself inextricably to India. So as a manager it only makes sense to try to understand software development in this new model, hence these articles.
Disclaimer
While it is useful as a tool to speak of the cultural, work, and management aspects of outsourced software development (specifically in India) in sweeping generalities, please know that I do so with the complete understanding that these descriptions won’t describe every person in/from India. Each person is an individual and I have had the great pleasure of working with some of the best talent in India. So as those friends read these posts please remember, I’m not necessarily describing them. On the other hand, when taken in large numbers the generalizations I will describe are accurate in my perception, if not intent or reality. I welcome any of my colleagues to correct me if I’ve misinterpreted something in these articles.
Leaving India
After just over a year of living in Incredible India, my family and I are only days away from packing everything into boxes and heading home to the United States. It’s been a wonderful experience made even better by the great friends we’ve made. We’re going to miss the ex-pat community as well as our native Indian friends. Okay, we probably won’t miss the multiple daily power outages and the mosquitos but after the swelling goes down and we get used to no longer having to listen for the backup generator to kick on, all of those nuisances will seem as minor as they truly are.
I especially want to thank my teams. Together we’ve gone from hours spent toiling day and night in a run down office in west London to hours spent toiling day and night in Bangalore. I know it hasn’t always been fun, but it’s never been boring. And mostly it’s been a great honor for me to work with all of you and to call you “my teams”. I hope that you have all learned much but I want to remind you of a few things you’ve heard from me before so that you remember them after I’m gone.
- You’re better than you think you are. Make big promises, push yourself. You never know what you can do until you remove your own limits.
- Always do the right thing. It’s one thing to know what the right thing is, but entirely another to have the strength not to bow to pressure and actually do it. Don’t let other people push you into doing things you know aren’t right for our systems. Remember, it always costs less to do it right the first time.
- Keep learning. You’ve chosen an exciting industry to work in but it requires that you constantly learn new things. Don’t let what you do today be the same things you did yesterday. Your code/tests/designs should improve with every iteration, every release.
Thank you again for all your hard work and best of luck in the future.
Paul Ballard
Art Imitates My Life – Outsourced (The Movie)
I often get asked by family and friends back home to describe what it’s like to be an American living in India. It’s actually not that easy to do because things that I now see every day and take for granted are so very strange to the average American that there’s simply nothing in American life to compare it to.
Fortunately some film makers got together and put the experience into a movie called Outsourced. While the movie exaggerates a bit on the conditions in most of the modern cities in India (for example most professionals work in very nice glass and steel buildings, not concrete bunkers), there were so many absolutely dead-on depictions of everyday life that Susan and I laughed our asses off. Here are a few examples that we have personally experienced.
<spoiler alert>
- Riding on the trains – I tried to do a trip in the train but the seats were so close together that the person in front of me, who was facing me would have had to interlock his legs with mine to have enough room.
- Getting mobbed by taxi drivers – This happens at every station or airport.
- Cows (and other livestock) in the streets – Absolutely happens every single day. We’re beginning to be on a first name basis with several.
- Nice homes next to slums – This happens fairly often but is usually beautiful office buildings next to shanty towns.
- Digestive Distress – The minute the guy ate the snow cone, Susan and I looked at each other and said “He’s going to regret that!”. While eating in India is easy enough if you’re careful (and the food is GREAT), eating off vendors in the street is usually a bad idea for the western stomach.
- “Unclean” Left hand – we heard about this before we got here but it’s not a big issue in major cities. Squat toilets (like the one in the movie) are still found occasionally though and many toilets don’t have any toilet paper in them. Susan has learned to carry some in her purse whenever we leave the house.
- Sugar in coffee/tea – Indians love sweets and all things sweet. They dump huge amounts of sugar in their coffee and tea. In fact a common drink from vendors is fresh pure cane sugar juice. I’ve heard that India has the highest rate of diabetes per capita of any nation in the world.
- McDonnel’s – Okay they have McDonald’s all over India but don’t think you’re going to get your burger fix there. They don’t serve beef in any McDonald’s that I’ve been to in India. Instead they have chicken patties and veggie burgers. They even have the Big Maharajah, which is a chicken patty equivalent to the Big Mac. Fortunately for me, they also have the Filet-O-Fish and that is what I usually get. The fries I’m happy to say are the same all over the world. They also don’t server beef in Pizza Hut, Taco Bell, Papa-Johns, Dominos or any of the other western chains that are all over India now.
Of course those are just some of the interesting and funny things to point out, there were many more subtle things that only somebody who lives here would notice. It’s these little things that make living in India such a fantastic experience and something I know will be with me the rest of my life.
- Helpfulness – throughout the movie “Toad” is never far from somebody willing to help. From teaching him how to jump onto the train to helping him find that special room for the night, there’s a cultural desire to help people here that is amazing. A cynic would chalk this up to their desire to make a quick buck off of what they see as a wealthy foreigner but there’s more at work here than that. I’ve seen our local CFO go to what to my American eyes seemed like fantastic lengths to make sure that everybody at a dinner meeting got exactly what they wanted. It’s a trait in him that I admire and wish came as naturally to me as it seemed to with him.
- “No Problem”, i.e. anything is possible – In the end of the movie, when they move the call center to the roof, I’m sure that seems completely made up. The reality is, solutions like that occur every day here in India. This is a country full of people who are used to living with so little that they can solve problems using anything, even a VW hubcap. No problem.
- Hard work – Indians are by nature hard workers. I’m not just talking about the manual laborers or farmers, but even the professionals including my great team of developers. Long hours and strange shifts (to match their western clients working hours) are the norm here.
- Holi – The festival of color shown in the movie is very real. I unfortunately missed it this year as I was in London, but Susan got tagged by her friend Heta. It’s not as widely celebrated here as it is in Maharashtra (where the movie is set), but it’s still a lot of fun. I saw the aftermath of the buses and sidewalks when I got back.
In addition to the funny story telling there are also a lot of excellent insights into the reality of outsourcing and the global markets.
- Outsourced Jobs – While we like to think we’re the best in the world at everything, the harsh fact is that there are a lot of people in the world willing to do the same job for less money. The only way to protect yourself from this is not to let yourself fall into commodity work. Stand out from the crowd, make yourself more marketable. Even the Indian jobs can be outsourced to the next cheaper country, which happens all the time.
- Made in America – We want to buy American, but we want to pay Chinese/Indian. American workers cost more money which in turn drives up the cost of products. We can’t keep pushing companies to provide cheap products and not expect them to find cheaper ways to make them, including outsourcing. If we don’t like it we can always pay the extra $220 for the American made Bald Eagle statue. But instinct (and Walmart) says that we’re probably not going to do that.
- “You need to learn about India” – India is the second most populated country in the world and THE most populated English speaking country. Its combination of low cost labor and access to natural resources means that its economy will continue to grow and become a bigger player in the world markets. It is absurd to think that any major company can compete without a strategy for Asia which includes India. 1.6 billion people cannot be ignored. Learning about Indian culture now can only be beneficial both for business and personally.
So if you’re reading this and want to get a better view of what life in India is like for an American, I highly suggest you watch Outsourced. Oh, and along with all the insight it’s actually very funny, and a bit romantic (in an Indian sort of way).


