Companies that are more aware / experienced with the challenges of outsourcing software development to India often rely on an expensive middleman. These companies exist for one purpose, and really one purpose only, and that’s to legally traffic workers from India to the US in what many people call “modern slavery”, while maintaining a pool in India that they can overcharge the US clients for. Is it legal, yes, is it ethical, I’ll let you be the judge.
Here’s how it works:
Potential candidates are sold the dream of coming to the US to work for big companies making big money, and soon find themselves chained to desks in situations where there are cases of HR and labor law violations by US standards like not paying for hours worked, and even questionable business practices like sending workers home to India for 1 month a year to avoid taxes.
How is that legal, you might ask… IT’S NOT. How do they get away with it, you might also ask… because they threaten the workers from India that they will be sent back to India if they say anything.
Further, the culture follows a fairly strict hierarchical system where you are to never question someone above you in a company, and this is clearly exploited for profits by the managers of these companies.
If you read the reviews, like the ones below on glassdoor.com from former employees, you can see a clear trend in this type of business model:
“Overworked and underpaid”
– Long hours
– Lower than industry pay
– Management keeps changing direction
– Health care benefits are expensive
“Very poorly managed organization”
Most of the time one is working with untrained jr. associates who are struggling and are not motivated. The organization does not hire for talent. No career progression. A lack of professional project execution methodologies. Poor value to the client. Severe lack of work life balance. Extreme politics. Frequent indiscriminate behaviors on the part of “Sr. Leadership.”
– No people development
– VERY Political
– No real training, the management will tell you to crack exams by studying cheat-sheets
– Billing as much as possible and work as little as possible
– You have no say in career direction
– Staffing wrong people at the wrong place
– Recruits anyone with a remote experience in IT and project management
– VP and leads do unethical things to bill more
– Below average salary and bonus
– Bad 401k matching
– Little holiday
– High turnover rate (~25%)
– Everyone that came on-board and everyone I know at the company thinks of leaving at some point
– Politics: Everyone holds secret agenda
“Ineffective leadership + unclear position in market = few projects sold + stunted career development”
Your success at the firm and ability to get on projects is predicated entirely on networking and getting in the good graces of certain leaders, not about your skills or the quality of your work.
Company has shifted direction 5 or 6 times in the roughly 3 years that I’ve been with the firm and they still don’t have a clear GTM strategy, which has hurt the firm’s management consulting brand. Still known nationwide primarily as an IT firm.
This firm has lost a lot of good, bright people, who’ve found greener pastures elsewhere. Almost everybody I know at Capgemini intends to leave as soon as they get the chance. I personally am just biding my time until I can get something better. I strongly recommend that people joining this firm reconsider their decision.
They have terrible unstructured solutions for their clients. They attempt to do as little as possible to accomplish the job.
“One of the worst 2nd tier consulting firms.”
– No projects in pipeline
– Finance practice is in near collapse
– HR department unethical
– Bench time exceeds 2-3 months. Half of the practice on bench.
“Depends if you are hired in us or from india. if you are hired from india and moved to US, LIFE IS BAD.”
Depends if you are hired in us or from India. if you are hired from India and moved to US, LIFE IS BAD. There is nothing called work life balance.
“Big Name very little scope for individual growth”
– No Scope for Individual Growth
– Bureaucratic with top down format
– Focused on billing client to enhance revenue and not on providing client value
So how in the world knowing all of this are well known US companies using companies like this? That’s simple, on paper it looks cheaper; the key there is on paper.
There are 4 basic skills required to be an effective software engineer / web developer. They include the following:
Skill 1: Solving Problems
Software development is 100% about solving problems, so you want people that are good at it.
Unfortunately most offshore resources are not great problem solvers, in fact, it goes very much against their culture in general. They are waiting for YOU to solve the problem, and then assign them the task to carry out your solution.
Skill 2: Teaching Yourself
If you truly want to have a skill that will propel you through your software development career, learn how to teach yourself.
Unfortunately most offshore resources almost refuse to teach themselves, and in fact, it goes very much against their culture in general. They are waiting for YOU to teach them how, step by step, and they will never follow any other way but those steps from that day forward.
Skill 3: Naming
Every time you are writing code you are naming things. When you read code that you or someone else has written, you are gaining most of your understanding about that code from the names of things in that code.
Unfortunately language barriers create many issues when it comes to naming, so your offshore resource will likely create code that is poorly documented and named, making the code difficult to sustain.
Skill 4: Dealing with People
The basic problem is that humans are not logical creatures, we are emotional ones. Sure, we like to pride ourselves on our ability to reason, but the reality is that most decisions we make are more influenced by emotion than reason. What this means for you as a software developer is that unless you can effectively deal with other developers, managers, and even customers, you will constantly face trouble despite how good your ideas are or how valuable your skills are.
Due to vast cultural differences, where hierarchy is so prominent that it almost paralyzes productivity, offshore resources (or onshore resources on work visas) find it difficult to interact with, and treat others, as one would expect.
If you can solve problems, learn things quickly, name things well and deal with people, you will have a much greater level of success in the long run than you will in specializing in any particular technology. If you can’t do these four things…. OOPS.
Planning on hiring software engineers from India? A few things to keep in mind:
1. The chance the person you’re talking to is the actual person you are hiring ranges from 60-70%
2. Resumes are generally more like a wish list of future goals copy-pasted off the internet, and should be looked at as a career path they hope to follow than their actual experience
These are two very important points that people from the US seem to miss (mainly because it’s so dishonest), but this is just standard stuff when dealing with offshore resources.
Be Prepared to Interview!
Let’s say “Stephen” had to interview some offshore resources (because the company decided they could save some money if they just hired cheap labor from India they could markup 500% (theoretically of course)), perhaps it would go something like this …
After digging through a pile of resumes for a junior developer position, I settled on a few for an in-person interview. When the day came around for one particular candidate’s interview, the receptionist told me that there were two people in the waiting room wanting to see me. By all accounts, a husband and wife. That was a bit confusing, but I called them into a meeting room and had the following conversation …
Stephan: So what is it that I can do for you?
Man: Yes, we have come for the interview.
Stephan: Interview? For the programming position?
Man: Yes, we come to do interview for our son Rajib.
Stephan: Excuse me? You’re here on his behalf?
Man: Yes, we do interview. He’s very good boy and he do good job to you.
Woman: Yes, very good boy.
Stephan: Ummm … err … I normally talk to candidates directly …
Man: Yes, we here for him. You interview with us.
I wasn’t really sure what to do, so I did the interview. I asked all the technical questions I had and I’m happy to report that not only were they answered very well, but Rajib was apparently more than willing to work long hours, be a team player, and contribute a lot. After all, his father told me so. But unfortunately for Rajib, an *actual* candidate turned up and secured the position.
HOLD YOUR HORSES COWBOY, WE’RE JUST GETTING STARTED…
Not everyone is lucky enough to have their own proxy or two as an option for interviews, so this is where the internet becomes their best friend. They will take out ads, think of Craigslist for mentally challenged software engineers, asking to pay or trade with proxies to do their technical interviews. This is a joke, right? No, you can search yourself. Apparently in India this falls under the category of “Job Support”… but in most other countries that would fall under the category of FRAUD.
Now you know.
If you have the pleasure of phone interviewing, be sure to ask such HR questionable questions like:
1. How old are you, followed quickly by what year where you born?
The hesitation with math gets them often.
2. When did you graduate school?
Especially if that’s on their fake resume, can be effective.
3. When are you available for a Skype interview to see you face to face?
Cheaters like to be heard, but not always seen.
Of course, you want to listen for things like, voices matching on secondary calls, information changing over time, etc.
As you can see, we’re saving money already, and your boss will be so happy you might even get promoted and manage your new offshore resource. Congrats!
Do not outsource your software development.
Yes, you read that right. I work for a software development outsourcing firm, and I am telling you not to outsource.
But why not? Everyone’s doing it, and everyone can’t be mistaken, right? The common perception is that outsourcing saves money based on labor arbitrage. There may be other factors, but mainly companies do it in order to get more software, probably faster, for less money.
However, the economics of outsourcing are far less straightforward than the labor rates comparison suggests. There really is no such thing as “labor arbitrage” in software development. Unlike copper or wheat, all developers are not created equal, so you are not exactly trading commodities. Furthermore, outsourcing is definitely not without risk, as discussed below. So the concept of arbitrage doesn’t apply, and with it goes the whole proposition.
Losing financial ground: First of all, are we comparing apples to apples? Yes, that overseas firm only charges you $20/hr for a developer. But how much value are you getting in that hour? How competent is that developer? Are you getting strong people on your team, or mostly recent college grads with questionable skill levels? What experience do they have? One experienced $100/hr in-house developer may well produce more value for you than five or even more junior $20/hr people overseas.
Also, remember that you need to train external resources. Initially, they don’t know your product, they don’t know your process, and you haven’t worked together before, so it takes time before they can begin to produce value. While necessary, the investment in a learning curve definitely eats into projected savings. And that senior in-house developer who is fully up to speed will be outperforming them again.
Now let’s say you are beyond the initial knowledge transfer. Are you realizing those savings yet? Hardly. With software development, communication is key. It’s hard enough at times to explain to an experienced person in the same room what you want them to build. Imagine doing the same with someone who is thousands of miles away, relying mostly on email and IM, and sometimes on voice and video Skype calls. Software development is a highly involved social process, with people sharing complex ideas and abstract concepts.
And no, documentation won’t completely remedy this: you can’t really document everything about a system up front, and any written text is always subject to multiple interpretations. Plus, the market changes so quickly that, by the time your documentation is complete, it’s typically obsolete and new requirements are driving a different system. Software development deals with tacit knowledge and emergent understanding. Again, hard enough in-house and even more challenging with an outsourcing supplier (think cultural differences, accents, communication barriers, etc.).
What about the ability to put more bodies on a project? For example, you are late in your release schedule and tempted to add cheaper offshore resources to meet deadlines. Unfortunately, if you do, “Brooks’ Law” is likely to take effect. This famous principle states that adding resources to a late project will make it later or, as formulated more colorfully by its author Fred Brooks, “Nine women can’t make a baby in one month.” Even when a project is not late, more people does not equal more value. With the complexities of communication, a larger team moves more slowly, sometimes significantly so, and productivity is consequently lost. Your investment may buy you more developers overseas, but not necessarily more value in the form of marketable software for your dollar.
Also, don’t forget the extra management costs you’ll expend communicating with and monitoring the performance of your supplier. Aberdeen Group’s research shows that over 76% of customers report project administration and vendor management costs to be far higher than expected, which won’t come as a surprise to anyone who has done any outsourcing.
Finally, consider the overall risk of project failure. The stats vary but, depending on the source, between 30% and 50% of outsourced projects fail outright: they are either abandoned completely (and the work is brought back in-house at additional cost), or fall radically short in terms of the functionality and business value they deliver. Granted, not all in-house projects are completed either but, with outsourcing, the risk of project failure is higher.
So please, do not outsource your software development.
Unless you absolutely have to. And unless you do it with Agile. More specifically, Scrum. Sometimes keeping a project in-house is not an option. For example, you may need to ramp up your development team quickly to ship a product by a specific date or risk of the window of opportunity closing, but you know you can’t hire enough high quality people in your geographical area. If you are going distributed, you are essentially outsourcing and at least some of the difficulties inherent in traditional software development apply.
Outsourcing to a company using Scrum, however, will help you overcome the obstacles that make the traditional approach unwieldy and inefficient, and that cause endemic project failures. How so? Unlike the traditional “waterfall” approach, where all software is delivered once, at the tail end of the project, Scrum focuses on providing a continuous flow of value to the customer, which minimizes project risk and increases return on investment. With Scrum, catastrophic project failures like the recent California Court Management System (CCMS) $500 million debacle are impossible by definition.
Inspired by the Toyota Production System (TPS), Scrum was first introduced in a conference paper by Dr. Jeff Sutherland and Ken Schwaber in 1995. Scrum is designed around several foundational principles and practices, including development in short iterations, incremental delivery of potentially shippable software after every iteration, prioritization of features around business value, and direct customer involvement in planning, elaboration and acceptance.
Sutherland’s research shows that, when run properly, Scrum can help achieve — even on a large, globally distributed project — the type of hyperproductivity/extreme velocities only thought possible in small co-located teams, velocities that are several multiples of the productivity typically seen in waterfall teams, in-house or offshore. Applied in the context of outsourced, distributed software development, Scrum acts as a catalyst of communication and as a powerful spotlight shining onto every aspect of the client-vendor relationship, forcing accountability on the one hand and unleashing tremendous productivity on the other.
Sutherland, who currently advises the investment team at Boston-based OpenView Venture Partners and coaches OpenView’s portfolio companies in the use of Agile development techniques, explained to me that he counsels OpenView’s portfolio companies with this exact advice: either outsource to Scrum companies or don’t outsource at all.
Steve Denning at Forbes calls Scrum a major management discovery and, in fact, contends that its founders should receive a Nobel Prize in management, if there was one. Can it in fact help you add people, including offshore, and go faster rather than slower? Can it help you reliably deliver software when working with outsourcing vendors? My own answer to these questions is an unqualified “Yes,” but please investigate and find out for yourself. Especially if you are outsourcing, I don’t think you can afford not to.