I've worked at a couple of Indian "consultancy" firms and my experiences have been far from good.
At the first one I automated some testing for them what would free up 3 people they were having to hire for that job. They didn't like it. Thats because they don't have to bear the cost associated with hiring them. It's the client who has to pay. By the person, by the hour and the company gets a (mega) huge cut from it. I'm not sure how such consultancy firms handle this conflict of interest else where but for Indian firms, I know anecdotally, this is very common. So there is no incentive to hire good programmers. Or do good programming because the server costs, etc. again are going to be borne by the client.
And the second one, I was working at another such Indian consultancy firm bit out of Singapore this time. The company was run by the sales force. My manager's manager said in one of his speeches that "as the iPad becomes dual core it will replace servers." I looked at him as my dual core iPad 2 lay in my lap and clapped because that's what you have to do. And I'm pretty sure he didn't mean a P2P future of the web. My manger on the other hand wanted a "function" done that could take in an "iDevice program" and output a BlackBerry app. He wanted it done in 3 hours. My team could have been an isolated incident and I want to believe that but it wasn't so. The only thing my team was doing different than the rest of the organization was the rest of the organization used some form of source control I had never heard of. Probably Microsoft based as that was the decision criteria in all cases. Out team was using none. Files were shared using USB flash drives. There were instances where old employees had left and we didn't have the source of their work - only the binaries. They only hiring a particular ethic group of Indians by the time I left.
Majority of jobs in India are consultancy jobs. They may not be as terrible as my last one but I would think they are half way there. Things may be changing but that's how most of "IT life" is.
Perhaps Indian companies can get away with this because of the (possibly perceived) cost differences compared to a US/European consultant.
If the base day rate of an Indian consultant is £100/day, and an English consultant £500/day, then the Indian consultant can still throw on more inefficiencies (5x as much) before matching the cost of an English consultant.
So, in theory, an Indian consultancy firm can afford to throw extra developers, servers etc. at a problem and charge the client because it still works out cheaper.
Please note that I'm not slating Indian firms or programmers, merely pointing out economics that could help explain the above behaviour.
A good employee wants to drive down costs and drive up revenue at his company. A consultant can only drive up revenue for his company by driving up costs at his clients. This is seems very obvious, but the existence of the consulting industry versus in-house employees suggests that it actually is not...
Yes, on a per-project basis, it's in the best interests of the consultancy to drive up the project costs, thereby driving up their own revenues at the client's expense.
But that's a toxic way to do business, and in the long run it's against the consultancy's best interests. The correct way to think is to maximize the revenue of the account, and the best way to do that is to get repeat business. Also, by referrals. Neither of those will happen unless you're acting in the best interests of the client.
It's a pity that these firms don't realize this. Some do though; I work for one of them.
These companies thrive on three types of arrangement:
1) "Deals with the devil": The company knows they'll be drained for all they're worth, but they planned badly, overcommitted and basically just cant hire the expertise they need to do 'X by Y' any other way.
2) "Screw the cost, just make this go away": It's a big project, management has plenty of money and mostly just doesn't want to think about this project. A big name might cost a ton of money, but you can sue if things go sour and generally shit will be delivered eventually.
3) "A fool and his money part easily": If you got a bunch of money somewhere and have no clue as to how things work, these big boys will diligently take your money, lavish you with nice dinners while they extract every cent of your budget while making sure all the paperworks points to your own incompetence as the ultimate cause for the project failing.
All three types are variants of 'you messed up, now pay the price' and in that they perform a valuablem, if decidedly unglamorous, function in the IT ecosystem.
Right this is usually how it works, and if said consultancy saves the day then the existing management at the company assumes that that consultancy walks on water and keeps shelling out money for the perception that problems will not arise. If they do the process is repeated. What consultancies are selling is an illusion, an illusion that management is willing to pay for so long as the perception is that all is well.
4, The customer is the government. The contract always requires that everything from the data-center to the training is in the same contract so these are the only possible suppliers
They underbid the contact and don't deliver while dumping 1000s of untrained new-grads as "consultants" at $N*1000/day for changes until the project is ultimately cancelled by the next government.
"At the first one I automated some testing for them what would free up 3 people they were having to hire for that job. They didn't like it. Thats because they don't have to bear the cost associated with hiring them."
This happens because client wants automation for free. If you keep doing it manually client pays for the man power happily but once you automate despite seeing a recurring cost eliminated, they do not even want to pay for one time effort of automation.
Everything exists for a reason. These practices are adopted because of clientele.
Pardon me and my ignorance, but this seems so totally ripe for a highly competent consultancy to come in and deliver excessively amazing value compared to ... others.
Because this consultancy would first need to become golf buddies with its clients senior management, at which point it would be just like every other consultancy.
The whole consulting model is broken. Third-parties can never replace employees for the simple reason that their interests are misaligned. The most you can get from outsourcing is a boost in this quarter's figures (which is enough to get said management their bonuses, and then they move on!).
I'm the OP and I'm frankly humbled to see a 5 year old post trending today.
What's changed in five years? For one, Bangalore has a real startup ecosystem now, with funded startups that pay market-level salaries and offer stock. This was rare in 2006.
Yes, I am in the startup ecosystem in Bangalore and I can definitely say that there are pockets of real talent here. In fact I feel lucky to be in a place where I am enjoying work, learning a ton and surrounded by some of the most talented people I have ever seen.
Amongst the ones I personally know Flipkart, Myntra and Cleartrip have some really good people. And then there are freelancers who work remotely for the bay area startups.
Edit : If you are in Bangalore, then do attend the tech conferences here to get a better idea of the ecosystem.
Though the startup founders are young and fresh, the overall business environment still reeks age old business patterns. I know few startups who offer no equity, treat employees like 2nd class citizens and want to get rich quick without spending much.
2. A lot of talent is ignored.
Everyone knows that the education system is inadequate for training engineers, but startups seldom train/intern students and bring them on par. There is a lot of latent talent apart from the Engineering graduates. Millions of students graduate as B.Sc.(Science/Maths) but I haven't heard any startup training/hiring them. Outsourcing giants like Cognizant/Infosys however are an exception but they hire, train and turn these non-engineering graduates into maintenance drones.
3. General apathy of students towards startups.
Most of the students just want to earn money to be self sufficient. The easiest way? Follow the patterns of someone successful, mostly a person selected in outsourcing giants. These companies are a modern version of dusty Government offices and many people just log their time and get a paycheck. Art of computer programming is forgotten and everyone wants to be a Manager/Director is 5 years. This sets a wrong example for new guys and hurts the hacker culture.
P.S. Many startups are doing good work (e.g. Infinitely Beta) and many will succeed, but these factors show why hiring is difficult for startups.
1. Many founders in India found a "startup" just because they have money to capitalise it and nothing better to do. They have 0 tech skills and 0 management ability. The few startups that are doing well here are those founded by technical guys or people who've worked in a certain industry for a while and start a related venture.
2. Startups can't afford to train. They need programmers who'll hit the ground running.
3. Mostly because the startup scene here sucks; it's fucking comical I tell you. Join any indian startup forum and you'll know the story of how poor the quality of startups and their employees is. I leave you with an email I received recently from "OCC Bangalore" (google group for bangalore startups). Also, no offence intended to the few who really are running businesses worth running.
We need to call these php functions in our jsp files. We can use javascript I hope.
I searched alot on google and I found this:
--
<script type="text/javascript">
function test(){
document.getElementById("php_code").innerHTML="<?php for($i=0; $i<10; $i++) echo $i; //maybe a function ?>";
}
</script>
<a href="#" style="display:block; color:#000033; font-family:Tahoma; font-size:12px;" onclick="test(); return false;"> test </a>
<span id="php_code"> </span>
--
But doesnot seem to be working.
Some guys have suggested using this: jqSajax
Background:
We are trying to use an existing opensource solution which provides APIs and the same can be used through java and php. We want to use the same through our jsp files. Now part of it we have been able to use through the java webservices they provide, but since they are opensource platform they have missed implementing some of the code in java which is available in php services.
The potential for business is great. But I agree with you regarding pathetic state of startups.
Two of colleagues came in from a famous start up. And I have heard the kind of horror stories, similar to what I faced in large companies.
Start ups are really minified versions of Big Corps. Same linguistic and regional politics, stories of nepotism and making employees slog their bones to dust for paltry monthly pay and not much stocks in return.
In other words, unless its your own start up or you are a co founder. It makes 0 sense to spend the best years of your life working for somebody else's dreams for peanuts in pay and stock.
couldnt agree more on point 1,
on point 2:
people with bsc degrees are treated as second class citizens of these BigCos, they even have separate policies for these employees.(Beleive me i was one of them).
As someone who has worked at many startups in India, here are my 2 cents. You chose to work at a startup not in the hope of a glorious exit via some acquisition or an IPO. You work at a startup because you want to surround yourself by really smart people.
When making generalizations, while it is certain that most startups will fail, it is also quite likely that most of your startup coworkers will eventually succeed and go to great places, and when they do, they will take you along if you were any good in the first place. Because one thing that almost guarantees failure is not trying, and you would find a lot of 'not trying, complacent with my good job' people not at the startups, but at the large or middle sized companies past their prime, running on the momentum they picked earlier.
This is what I tell people when I hire them, and believe me, a lot more people are getting this now than a decade ago, when startups were associated with unexpected riches and easy money. That's a lot of hope.
Realy if you want to work for realy smart peopel you go and work at some where like CERN, NASA JPL and other tier 1 RnD organisations - of course for a devloper the pay sucks
> Sturgeon’s law applies here. 95% of all startups will fail. There’s no escaping it.
I don't know about India or software startups in particular, but according to Dun and Bradstreet the 4-year survival rate of new businesses is 37%.
Edit: I can't confirm the 37% figure. It's a number that stuck in my head from a few years ago. They're latest report [1] doesn't include survival rates.
Small and/or lifestyle businesses are great, but there are many properties they don't share with startups (mainly scalability leading to growth). In many cases a "new business" simply mean an independent contractor who in this statistic might as well be a regular salaried employee. Also someone spending time building a prototype, validating the market, looking for funding etc. but not bothering to register the business while there's no revenue could fail before ever making it into the "new business" statistic.
Therefore it's perfectly plausible that 95% of startups fail while only 63% of all new businesses do.
Then of course there's the fact that the 95% number is rhetoric, not a statistic.
If the company declares it confidential, leave. They don’t have a plan.
This can't be true for all startups. Some ideas are worth being confidential. Yeah I know execution matters most, but still idea can be what they are excited about.
You are technically correct, but in this case it's not the best kind of correct. Of course it's not 100% for sure they don't have a viable plan, but it's likely they don't and more importantly it's not worth your time to find out. The OP is right: leave.
If their business plan is so simple that they will compromise it by telling you, they don't have a business plan. If they can't identify the small bit of secret sauce (algorithm or research, unique understanding of/access to the market, unique set of competences etc) that will make them successful and thus needs protection, they either don't have it, or they don't understand it. Either case is bad.
I agree.. it's not easy to find good developers in India. I have come to understand the social circumstances which make them treat software development as just a job and not something to care about. The good developers cannot stand writing bad code and letting bad code go into production. The good developers look at code as an art form.
But the crux is just to know how to attract the right talent.. referrals are a common way of getting good developers. But, there are many other ways to do that too, if the companies are willing to make the effort.
I currently work for a cool norwegian offshore company which has a open and flexible work environment as do many of the international companies doing business here. They know how to hire.
Most companies here in India have a notice period as part of the employment contract.. but it is ALWAYS both ways i.e. employer and employee both have to serve notice or payout. Some of the comments here suggest otherwise.. but that is purely hearsay or ignorance.
Haven't done any kind of proper survey but from what I see many startups here don't like to pay even decent. They would hire with low salary. However the point is if you want good developers, you need to pay them well! Even if you manage to find some good developer at low salary, he will probably not perform his best. Finally, they would lag behind schedule, resources get scarse and they are officially failed.
Well as a note regarding outsourcing and Indian IT Bellwethers.
I can tell you that you are likely to hear extreme management bashing in this case. But after personally working in a very famous IT bellwether here in India for 5 years, and now in another famous global web company. I can tell you half the people who crib, complain and whine are basically people who expect to get rich by 'getting lucky'.
The most common complain is They didn't give me good stuff to work on, yet when you ask the same people what exactly stops them from downloading <insert their favorite programming language compiler/tool>, or why they didn't work on their favorite database while all of it is freely available on the internet- The answer is generally a blank stare. Tons of automation opportunities exist in almost all projects that these big companies take, yet most people you are likely to meet still expect work to be given to them. I have seen this attitude among all freshers and even among some very experienced people. The fact is most of these people arrive at a software industry after having the heard 'Get rich quick' stories from the 90's while somebody joined a IT services company, went to an foriegn onsite location for 5-6 years, became a manager in 4 years and made tons of money in the IPO.
In fact most complaints of 'Indian IT sucks' generally smells of 'I could not get rich quick'. With no real desire to make a career in software, and waiting to jump to a management role at the earliest is the hallmark of Indian IT. Getting promotions and holding fancy designations is considered extremely honorable. Let alone most technical leads who managed to win corporate politics race, I know- Can't write a 100 line program. Not getting promoted to managerial role by 27 is considered a sign of incompetence, Not being able to go to a foriegn onsite location is considered a sign of incompetence. Its almost like a blind rush for money, money and only money. I know of many so called Technical leads who boast that they don't write code anymore, trying to imply that people who write code or who are good at tech stuff are generally incompetent people not deserving of progress. How do you expect to make progress or do anything big, with this kind of people stacked from top to down?
After doing a lot of analysis, I have finally realized these people never wanted to be programmers ever. They have 0 interest in learning, building and making stuff. They don't have what it takes to make a career in software. These people just arrive at software companies thinking they will get rich very quickly, when they don't, they find every reason under the sun to justify how worse career options in software are. Those who do get rich by usual promotion->onsite cycles, generally go on to become managers and then ulitimately glorified supervisors, who seem to hold very high opinions about tech without knowing a jack about it. Regional and liguistic politics is too common, being the managers best man and bootlicking helps to get better appraisal ratings, promotions and onsite chances.
Having said all this, I still meet some very good technical people from whom I learned a lot(In the same big companies). I continue to meet such people.
As a last note, the rewards vs efforts system is all messed up and needs immediate fixing. These companies need to bring back meritocracy.
> I can tell you that you are likely to hear extreme management bashing in this case... people who crib, complain and whine are basically people who expect to get rich by 'getting lucky'.
Clueless managers who don't understand technology even on a superficial level are a real problem. Has nothing to do with how much engineer makes.
> The most common complain is They didn't give me good stuff to work on, yet when you ask the same people what exactly stops them from downloading...
Premise is people don't use technologies they like for their personal projects. I don't think that's true for the good hackers out there of course. But what they are talking here is about the work environment and technologies used (enforce) there. Just because you can use better tools for personal projects doesn't mean people shouldn't complain about the prehistoric tools at the their workplace. (And then you go on about money again.)
> After doing a lot of analysis...
Can you share more details please? Because all the smart people I've known no longer work at Indian firms if they ever did. I no longer work at them either, and trust me it's a (very) very very different environment. My college for a short period tried to not let these Indian consultancies recruit on campus.
A question for you. How do you justify developer happiness in an environment where there's no real source control, an impossible to use ticketing system, manager thinks a crawler is an actual hardware device like a photocopy machine, automation code is thrown away as you can't charge the client for that, load-testing results are manipulated to match the requirement (you keep requesting where for some reason out of 10 requests you get 3 "acceptable" data points and take screenshots only of those and report them) and I could go on an on. It's not about the money.
I've experienced all the trouble you describe. But really if a person is truly interested in learning something, there is nothing really stopping him. It hardly takes anything to go to the internet download python, a tutorial and start building something. If a person can't even do as simple a thing like this for his career, than I seriously doubt he will go through the grind and do all tough work required for success.
By all means, complain about getting put into a shitty project. But you can't blame the the company for all your troubles. Because career management really is up to the individual, waiting for somebody else to do it for you really shows lack of seriousness on your part.
I know of a few friends who work on COBOL/Mainframes. Quite few times I had advised to pick up a language like Python for their own good. But often the answers are 'What will I get', 'Will I go onsite doing that', 'Look the other guy did nothing and is still at onsite, why cant I get lucky like that'.
Trust me these people never want to learn. They just want to have it the easy way. Fast forward when they see a good programmer making it big in a product company suddenly they start cribbing about how company/manager didn't help them grow technically. While the fact is all the while they themselves didn't want to go the technical way.
The other parts I totally agree with you. I have faced the same frustration as you do. I even know of managers who had never heard of version control systems. Who never knew what a unit test is, or even simple things like a Excel Macro(Which falls into much of their own work).
Coming to those kind of managers, most of them are now facing the heat. Big Corps are cutting down on managerial layers big time. The 90's and early 2000's rush is over. Every one knows that.
> "In fact most complaints of 'Indian IT sucks' generally smells of 'I could not get rich quick'. With no real desire to make a career in software, and waiting to jump to a management role at the earliest is the hallmark of Indian IT"
I'd say that's about the same as the average brazilian graduating from the more obscure (read: easy to get in and out) private universities.
Salary is what attracts those people. And companies fail to screen them out, because they are staffed by the same sort of people. AKA Bozo Explosion.
"The most common complain is They didn't give me good stuff to work on, yet when you ask the same people what exactly stops them from downloading <insert their favorite programming language compiler/tool>, or why they didn't work on their favorite database while all of it is freely available on the internet- The answer is generally a blank stare."
Though not an excuse but average commute time here is 3-4 hours, add 9-10 hours of office presence. Most people do not have energy to do any meaningful work after such a tiring schedule.
I am also from the same very famous IT bellwether, Most of the employees dont even have admin rights enabled on their machice, so one can forget about installing their fav compiler.
I felt as though i am a idiot. I went on to learning ruby,Obj C and made myself a mobile developer, now i can sleep well, feeling worthy of having a brain.
There are only a handful of people who can be called as programmers in these indian IT companies, rest of them are just code monkeys.
And thanks to Kamaal for he is the one who introduced me to HN :) and congrant to you on moving on.
"I know of many so called Technical leads who boast that they don't write code anymore, trying to imply that people who write code or who are good at tech stuff are generally incompetent people not deserving of progress."
very true, in fact I know a bunch of people who want to become tech lead so that they don't have to write any code. Such companies are surviving only due to $ - Rs conversion rates. People outsourcing work to such companies are bound to get hurt.
"Look at the HR policies most companies have. The big shops all treat their “fresher” recruits as bonded labour. (The contracts are worded to pass the bond off as training fees.)"
Am I understanding this right. People have to pay a 'bond' to a new employer?
Employees are contractually obliged to pay the employer a certain sum of money if they quit before the contractually agreed period. Usually ranges from 1-3 years and the sum from 2,00,000 - 5,00,000 ($2000 - $9000)
Although, one of my professors in college (I majored in finance) told us that the labour laws in India forbid such contractual obligations and you can get away with not paying the amount asked.
Common among companies, although the extent to which it is implemented varies - typically exists for new recruits with less than a certain number of years in experience.
While it seems like a rather defensive & oppressive move, the companies might offer a different justification, maybe on the following lines:
1. Largely service driven IT industry
2. Projects running into several months - planning, estimation, allocation nightmares
3. The recruited talent has to generally be trained from scratch for the skills required for these projects. This is probably the most important point - as even the article above says, there is good talent but by a large sourcing good talent is way beyond trivial.
As such companies would want to protect their investments.
This is not meant to be a justification for such activities of course :) The point I'm trying to make is there are multiple variables in this. As the industry matures I expect things will change for the better.
Like having your stock options to vest over a five year period?
Also, in many many fields less meritocratic than software, you typically gain privileges as you accrue seniority with little regard to experience or actual contribution.
I meant having bonds on employment - imagine having to pay your employer when you quit because they had no idea what they were doing or flat out lied about what the job would entail? The thought is horrific.
The fact that you don't have to take actual cash out of your pocket to do it makes it a much simpler/less disruptive thing to do, but the outcome is the same: You commit to work for the employer for a set number of years, and forfeit a sum of money if you renege on the commitment.
This assumes that you are guaranteed a promotion/autonomy/responsibility after a few years - how many contracts have promises of career advancement in them (not the "social contract")?
It's not different here. Bonds are illegal by labour law in India. They cannot be enforced in court. They only serve as a harassment tool, and they work because most young workers don't know better.
I've seen this in the US as well. It boggles my mind. How can someone get another job when they are in a contract like this? Not many employers will wait 3 months before you start. Can such contracts really be enforced in the US?
Coming to giving a 3 month notice before firing some one, firstly when they ask you to leave they may not necessarily tell you that they are firing you for some socially acceptable reason like cost cutting. Instead they will give you two options, get fired for some fictional violation of company code or you can put in your resignation.
The choice is obvious, the person resigns, while he is actually fired. The quarterly results project this as attrition.
Having said this, the last I have heard about this bonds is that they are not valid in the court of law.
"last I have heard about this bonds is that they are not valid in the court of law"
Probably not. But what will you when they decide to not pay your final paycheck since you did not pay for breaking the bond. Heck, in some countries like HK again, you need to get tax clearance from your employer before you leave permanently, if you do. So the question is: do you just bite the bullet or go fight with the corporate giants regardless of who could win.
It's not uncommon anywhere where companies have to invest a large amount in employee training.
It's pretty common if you're doing a professional qualification (accountancy, etc.) with training and exam costs paid for by your employer, that if you quit before a set period you have to pay back your employer for the amount they invested in you.
In countries like India companies have to pay a lot to train new inexperienced graduates and staff turnover is a huge issue far more than in western countries.
Many western companies that hire graduates just write-off training expenses when a recent hire quits which they can afford to do so because it happens relatively rarely, but if it was a frequent occurrence like in India it would be economically unviable to do so.
It even happens in the US. I know someone who's employer paid for her Crossfit certification, but she'd have to pay the pro-rated cost of her training if she quit before the year was up.
Similarly, if you quit your job quickly, you need to give back the signing bonus.
At the first one I automated some testing for them what would free up 3 people they were having to hire for that job. They didn't like it. Thats because they don't have to bear the cost associated with hiring them. It's the client who has to pay. By the person, by the hour and the company gets a (mega) huge cut from it. I'm not sure how such consultancy firms handle this conflict of interest else where but for Indian firms, I know anecdotally, this is very common. So there is no incentive to hire good programmers. Or do good programming because the server costs, etc. again are going to be borne by the client.
And the second one, I was working at another such Indian consultancy firm bit out of Singapore this time. The company was run by the sales force. My manager's manager said in one of his speeches that "as the iPad becomes dual core it will replace servers." I looked at him as my dual core iPad 2 lay in my lap and clapped because that's what you have to do. And I'm pretty sure he didn't mean a P2P future of the web. My manger on the other hand wanted a "function" done that could take in an "iDevice program" and output a BlackBerry app. He wanted it done in 3 hours. My team could have been an isolated incident and I want to believe that but it wasn't so. The only thing my team was doing different than the rest of the organization was the rest of the organization used some form of source control I had never heard of. Probably Microsoft based as that was the decision criteria in all cases. Out team was using none. Files were shared using USB flash drives. There were instances where old employees had left and we didn't have the source of their work - only the binaries. They only hiring a particular ethic group of Indians by the time I left.
Majority of jobs in India are consultancy jobs. They may not be as terrible as my last one but I would think they are half way there. Things may be changing but that's how most of "IT life" is.