Pros
Small companies are great for forming legitimate friendships. The people here , even management are reasonable people outside of the work environment that care about doing the best job that they can. I was also allowed to explore other disciplines while I was there (usually as a fill in for lack of resources) but I was able to get a lot of beginner experience in things I may have wanted to do at the time with people who were sometimes willing to help.
Cons
No matter what the circumstances seem to be, all teams seem to be in survival mode at all times. There is no reward or incentive to spend your own personal time trying to solve issues because they'll probably never be addressed due to lack of resources. Unless somehow you can do it all yourself AND the work that needs to be done on a regular basis, it's impossible. No action seems to be taken again problematic and abusive producers and clients who were allowed to walk all over the development team and talk down to them until it was far too late. On top of that, the responsibility of keeping morale up in the company was allocated to uncompensated volunteers who were also given little to no resources and expected to be successful anyway all while using as little time during actual working hours to do any of the planning, setup or execution. Why make them responsible for holding the rug up while upper management sweeps the bad stuff under it?