Pros
I've been with BS&A Software for roughly 9 years, starting my employment right out of college. Early on I chose to put in lots of hours and effort to gain as much expertise as possible, I did this in order to make the jump from college to being a proficient software engineer professional. Not long after putting in a great deal of effort and obtaining positive results for the company, I quickly learned that BS&A is a very capitalistic company that does not reward based on things like seniority or age, but rather based on actual results... for some people this is maddening, for others this is ideal. Also, with BS&A being a smaller company, I've enjoyed the level of independence you have in development where micro-management is virtually non-existent. I have friends that are in the software industry in much larger companies and I can honestly say I do not envy them as they tell me they are usually working in a very controlled environment where they don't get to make very many decisions and are usually limited to working on very small subsets of a project. At a small company like BS&A, you have an opportunity to really make an impact and make a name for yourself. Some other things that are positives are the 401k matching (50% match with no limit based on salary which is pretty unusual), the bonuses, the family atmosphere, friendly co-workers, free pop/coffee/popcorn.
Cons
Communication is not the greatest, the hands off approach sometimes can lead to problems in the software that could've been caught sooner. New developers don't receive the greatest formal training but that has been improving as time goes on. The location is not the best in Bath, MI, there's really not much around, you have to drive about 10 minutes to get to the closest strip of restaurants or shops.