1. Poor quality of work: You never get to do what you like. You may be trained for 3 months on one stream (J2EE for instance), but will be expected to perform on another ( for instance .NET). This happens half the time.
Around 20% of the time, you will be asked to do nonsense, like generate a report, make a document or something like that which has very little to do with your work. The client is always billed for the effort, and the value added is NIL. In projects such as AT&T, half the people are known to sit idle most of the time.
Business Analysts are paid 5 times as much as engineers, but often sit and work with them and do the SAME thing that they do, even coding. The client is royally billed.
2 Bureaucracy: You are expected to kiss a##. No, really. The vibe you get when you go to talk to a senior manager is the same as what you would get if you went to get your drivers licence renewed (If you are from india you will understand). First, you must beg for permission to talk to them. When you DO get your chance, speak to them like you used to speak to your junior school principal or be damned!
3. Appraisals are meaningless: The feedback is literally fed from the back. Most of the time, it makes no sense, and asking for a clarification only makes things worse. People have been branded with having attidude problems because they asked for clarifications.
4. Promotions / Role Change: The appraisals dont matter much for your role change. There is an annual comparitive ranking survey seperate from your appraisal that decides everything. This happens behind closed doors so you have no clue what was spoken about you and you have no say in it. You are not allowed to ask for clarifications, let alone challenge the ratings.
5. False Promises and Frequent change of policies: Policies pertaining to promotions, career advancement, compensation etc change as frequently as the weather without any warning. Often unannounced!
Rumor has it that a batch of junior engineers were denied the promotions they had been promised at the time of hiring. After a hunderd engineers submitted their resignations within a week, the management woke up to the fact that they could not train so many people in such a short a span of time and hurriedly approved their promotions.