1. Lots of bureaucracy and mismanagement that often leads to program failure :
>>Program management scared of reporting "bad news" to upper management and hide it until the program runs out of money - especially if they're the ones who caused trouble.
>>Lack of diversity in program management section: management experienced in one or two discipline(s) only (the one(s) they've been working for their whole life...), thus they really lack full understanding of how the WHOLE SYSTEM works (sorry to say, but even interns and junior engineers can see it...).
>>For fast-paced programs, too many unnecessary meetings and documentation requirement exist.
>>For fast-paced programs, company is NOT willing to pay as much as they need and usually start TOO late.
>>>Upper management has very unrealistic expectation - thinks engineering problems are very easy to solve (as if it can be done with a click of a button when there were not enough software for the engineers to use!! They also were not willing to pay for development of such software...).
2. LOTS of unethical behaviors not caught and not punished, because it was done one-on-one/privately and not left on paper.
> These are real-time examples:
>>Example 1, lots of managers look behind your back secretly when they pass by your desk/cubicle. For some of these managers, even less than a minute-long talk is not allowed. When they catch their employees talking for few seconds, they use that as an excuse to give you more work and less staff support for your team. This is especially apparent for tight-budget programs.
>>Example 2, some managers make junior engineers to do certain thing in certain method with very short period of time and they announce it to whole program members (without the junior engineer's consent). If it turns out that the methodology is wrong, they blame on the junior engineer for doing it wrong AND out of time. The manager then lies to his functional manager (who is also the junior engineer's functional manager) when he talks with the functional manager in his room. The junior engineer could not blame him, because the manager only directed him/her verbally, not through email (usually takes too long to explain through email anyway).
>>Example 3, a fellow junior engineer stole another junior, but more senior engineer's effort/work (to make himself look better to the manager) and always criticize more senior engineer in front of his/her manager (again, to make himself look better compared to more senior engineer).
>>Example 4, a manager tells junior engineer during one-on-one end-of-year performance review that he/she has to work more "green time" in order to get highest score on performance review. The junior engineer is already overwhelmed (physically and mentally) with working overtime for his/her HIGHLY under-staffed section of program. Also, this is supposed to be illegal and the whole program contract is supposed to be terminated by the government if the government finds out about this.
>>>FYI: The highest score yields only 3.0% to 3.5% increase in salary, which barely meets inflation. The score is only given to very few people among 100's of employees.
3. VERY HARD to get one level promoted - your level of expertise, your contribution, and length of stay does not matter.
>>Company always find a reason to NOT increase junior engineer's salary, making the junior engineers to leave.
>>Average salary increase rate is 2% - 2.5% per year for engineers - they can get at least 10% increase when they move to another company!!!!!
>>>Even after hearing about these, the managers still don't understand why more experienced, but junior level, engineers (level 2 to 4) leave...