Avantages
You can find very interesting work if you have a clearance and find a good program to work. Flex time is exceptional... people can usually define their work schedule as they see fit, and managers generally don't have a problem even with oddball schedules. You can come in at 6 AM one day, and 11 AM the next, and most won't blink an eye as long as you let people who depend on your work know a day or two in advance. Pay is competitive, although don't count on ever seeing a bonus unless you're in senior program management. Tuition reimbursement is excellent, although PhD programs are generally not covered.
Inconvénients
Career advancement is difficult. In-line promotions (getting promoted while working the same program/contract) is rarely accomplished. Most of the time, one has to move to a different program/contract to be able to negotiate a promotion. Additionally, because of the nature of government contracting, one can find themself without work very quickly if the program funding gets cut or delayed. You will likely be able to stay employed for awhile, but if too many programs get cut and too many people don't have work, you risk getting laid off. Sometimes you have to stick around on a stable, but less interesting program/contract in order to get through tougher times. Only one health plan to choose from, although that seems to be happening at other companies these days as well.