Pros
The team I was on (below middle management) was good. Good people (mostly), good teamwork, great communication within the team.
Cons
Everyone from middle management up seems to think agile development is synonymous with not knowing where you're ever going. Big features we're announced, not discussed. Vaporware was sold and then ordered. Correction for big things like state reporting was always handled as a fire, not as a plan. Implementations were constantly being hijacked by heroic programming, often in languages outside the original implementation, which, when combined with the lack of technical documentation, means the entire stack is housed in tribal knowledge. Upper management feels the need to screw over the best people, and would rather passive aggressively nudge people out with politics than actually address any interpersonal problems.