There is an excessive amount of middle management layers, which can often result in poor top-to-bottom communication and poor bottom-to-top visibility. Cisco is also not very good at career advancement, specifically if you are an ambitious go-getter, as promotions and raises tend to have more to do with seniority and less to do with performance. They also have an internal policy that you can not get promoted when you switch positions. While I believe the intent was so that people do not jump from job to job simply for a pay increase, what happens in practice is top performers who move to a new opportunity for a new challenge, have to make that move laterally even when it is a job with more responsibility. However, if you stay in the same role for years, you will eventually get promoted just because of seniority. As a result, many top performers make a few lateral moves and then leave the company in order to get a promotion.