Pros
Pay was good, I was treated fairly most of the time.
Cons
There is a constant struggle between program managers and functional managers. The project managers want to get things done as quickly and as cheaply as possible (due to "competitive" budgeting of their program) and often encourage team members to ignore the development processes set by functional managers (which were put in place to avoid defects in the product being developed) to meet deadlines. As a result, the typical engineer is left in an uncomfortable position -- do I ignore the process set by my functional manager (who conducts my performance review), or ignore the project manager (who weighs heavily on my performance review). I imagine this is true with all defense contractors, but this is my biggest complaint. I often worked hours of unpaid overtime (which you're not allowed to do) to make both sides happy.