Pros
1. Some people are allowed flexible schedules or to work from home on occasion. 2. Many co-workers are good people, even if they are not people you want to work with or for. 3. If you are close to marginal at your job and you work in the right area you won't be fired or laid off. That is a pro for you but not necessarily anyone who relies on you.
Cons
1. Huge disconnect between management and people in the trenches. Despite efforts to communicate issues on the ground, management largely ignores red flags and acts surprised when crap hits the fan down the road. 2. Career advancement is stifled by tenured employees, small teams, lack of hiring and reliance on offshore contractors. 3. Management pretends to care about employee feedback through surveys and meetings but their words and actions in response show disregard. 4. Management relies on little advice to implement process changes they once scorned only to fully embrace them without effort to create buy-in or work with their subordinates for a smooth transition. 5. Management is largely unaware of different ways to run a development department or the huge disconnect prevents adaptation. 6. Management promotes skill advancement through words but not actions. 7. The company is struggling financially and leadership has not outlined a clear path forward. 8. No salary increase when promoted.