Pros
There are lots of people that I enjoy working with. There are opportunities to influence the work that you get to do. The company culture is more fun than most business environments.
Cons
Not for someone who wants a consistent schedule. It isn't uncommon for a project to be delayed until the last minute, at which point it involves staying nights and weekends to be finished on time. There is very poor communication, don't expect to receive any feedback except in extreme situations. The management likes to pretend everything is great despite faltering employee morale. There aren't many opportunities for advancement for people unless they go out of their way to do extra work in their free time, doing your job well isn't enough.