Our Commentary on The Atlantic’s Article on the Pitfalls of Offshoring Software Development
In an earlier post we mentioned this article from The Atlantic that warns of the many pitfalls of offshoring software development.
Behind the ‘Bad Indian Coder’
Although Augment’s focus is to help companies successfully offshore software development, we do agree with virtually every point in this article. The key to a successful offshoring experience is to find the correct talent and have processes in place to ensure great quality and communication.
Let’s break down some of The Atlantic’s points.
“Code from India can be truly awful if you work with most companies,” another Redditor said. “A lot of them treat programming as a task to be completed with numbers and fire those that can’t work fast enough, rather than a task requiring quality where people are educated to avoid mistakes and fired only as a last resort.”
We agree. We’ve worked on some offshore projects that have been disasters. These projects had poor communication and the initial database, design and overall architecture set the project up to fail from the beginning. You live and learn though. As in any occupation in any country, there are definitely software engineers in India that should not be employed. But many are good employees who may need some oversight, strong feedback and encouragement to become great employees.
Like the quote above alludes too, Indian programmers are people, not simply cogs in a machine. They want to feel like they’re a part of a team building something. They may be thousands of miles away from the company they support, but they also have the same fears and worries about their job performance and the project as their onshore counterparts.
“For some projects, we tried architecting and planning it all out in detail over Skype, but it never worked well,” he told me via email. “Invariably questions come up during the development phase, with decisions needing to be made. With an 11 hour time difference, their options were to either wait for the people on the other side of the world to wake up for a consultation, or make a judgement call. Both options suck given that they don’t have the general knowhow about the industry and the customers that we do, but waiting till we wake up [would mean] a wasted day of work.”
We’ve experienced the same thing. That’s why we believe planning, design and architecture should stay onshore. There are special situations for a simpler project where these items could go offshore but overall they should stay onshore.
That’s because planning, design and architecture set the stage for the entire project. If requirements are not clearly defined and incorporated into the architecture and design, then the entire project will be off base from the beginning.
The part of the project that should be offshored is the backend and frontend development. That’s it. Offshoring even this portion can help companies save significant time and money.
We also recommend to work with offshore resources that can work in your time frame. The developers at Augment work early morning to mid-day so there is always overlap with the onshore team, making collaboration simpler. No waiting until someone wakes up.
“I think the Indian education system as a whole is greatly flawed in that it does not urge students to think, but rather to memorize, or ‘mugging’ as they say in India,” he said. “Essentially if you can stay up all night before an exam and cram as much information as possible into your head, you will do pretty well on tests.
Kulkarni felt this partly explained why his Indian staff created products that had been programmed before they were fully planned out, forcing the New York team to rewrite entire programs from scratch on occasion.”
That’s why we think the planning needs to stay onshore as much as possible. Unfortunately articles like this one broadly categorize all Indian developers as unimaginative, uncaring and inflexible. That’s not true at all. The education system in India may be different than in the United States but we’ve worked with many developers who are quite creative and hungry to learn more and adapt.
“Weighing in on the buggy Indian code debate, Indian developer Shekhar Gulati wrote on his blog, “In India … students just cram the things and get [the] score but practically they know nothing.” Gulati pointed out that he once interviewed a computer scientist with a degree in the field and six years of experience who was unable to write a simple program during his test.”
This is again a broad generalization using one example to label the entire Indian software developer workforce. But it is something to be aware of. All developers (whether onshore or offshore) need to be properly screened to make sure they’re savvy and competent.
It may take more effort to properly screen an offshore developer, but they can be screened in the same way and using the same questions/tests as any onshore developer. Skype and other screen sharing programs are great for this. Once in place, a properly screened offshore developer can be a very effective member of an onshore team. Also working with a quality offshoring firm can help with the screening of individual developers, and they can also ensure the quality of the work and help facilitate communication.
Augment guarantees the quality of all development work performed by our offshore developers. We also work very hard to achieve seamless communication between everyone working on the project.