Federal government consulting firms hire warm bodies at the lowest price possible. They are the people who employ the college students from Java shops (because a degree is a must, of course) who barely learn Java and then grow up to never touch another programming language in their life. Knowing anything from MS or Oracle is double plus good for your resume. You're totally replaceable to them and treated accordingly. Anyone competent or specialized is generally hired as a subcontractor to the main contractor and not by the government itself.
Government IT employees are nigh-unfireable and they know it. They're about 50% people who've transferred in from other Government positions because they know it's easy or they're former contractors who join the government so they have a stable job. The government managers who vet your deliverables and the upper managers who make contract decisions, well, they're just the previous technically incompetent people who've stuck around long enough to get promoted up.
As the individual contractor, contracts are usually 1-3 years so you're constantly always up for being laid off or moved to a different contract. Your company is notoriously stingy, but that's mostly because they're not paying you for competitive skills, they're paying you because butts-in-seats means they get their lucrative contract rate that's at least 4x more than they're paying you. Since only behemoths of companies can even afford to try to land federal contracts, your employer has a large amount of corporate bureaucracy you have to deal with and that sucks... then you're sent to a government facility to work, where you get to deal with government bureaucracy on top of your internal crap too. As a contractor, between both organizations you'll get to take hours upon hours of totally useless 'computer safety, ethics and public responsibility trainings' which are mostly written so 4 year olds can understand them.
The government technology you work with is generally 5-10 years behind the curve if they even pretend to maintain something. As late as 2010 I was working on a J2EE app trying to migrate it to Java 5. It was stored in Visual Source Safe 6, and their development shop was totally crippled by what was essentially "God objects" and file locking. Too many developers, too many chokepoints in code. I've spent more than 1 day of my life walking around a building asking if people really needed a certain file locked. Oh, and many government employees worked 9-40 compressed schedules and are out on Mondays or Fridays, so you'd better not need to write to a file except on Tues-Thursdays, even if it is critical to meeting a deliverable deadline.
While holding a technical discussion about current tasking with a coworker in a "hallway meeting" our boss's boss and the gov-manager-who-signed-the-contract walked by. I was later reprimanded for chit chatting too much instead of working.
Another issue, due to some contract specifics and my life situation I was able to decline healthcare coverage from my employer and I received that in salary compensation instead (had coverage through my wife). I was up for a raise/promotion due to 'time served' but that title meant they needed me on a different project/contract, so the healthcare compensation the government was paying my employer changed and trickle down effect meant I didn't get that anymore. I got a $10k/year 'raise' but lost my [substantial] healthcare compensation. I lost money per paycheck by getting a promotion. When I showed my boss he was like "oh, sorry about that but we can't do anything about it", I turned in my two weeks notice on the spot, thus concluding my life as a government contractor.
We had a government employee who was responsible for building our mess of a Java project (it was done by hand). It was error prone due to some self-referential build requirements, and the deployment of projects had to be done in a specific order. Generally a deploy took a couple tries.
While I was there I skunkworks-implemented Jenkins CI (nee Hudson at the time) to deflect constantly getting blamed for broken builds and down time when they occurred. The side effect of CI was that I had automated away this government employee's entire job and reason for being paid. One day that employee was out but we still needed to deploy, so in my naive excitement was like I've got it guys, watch this, pointed the deploy target at our live acceptance testing server, clicked the build button and ta-da, gov. employee wasn't needed and nothing was screwed up. Even better, it was completely deployed in a few minutes instead of several hours.
The average government employee is beyond useless, and sadly the few who are good get a bad reputation and also a huge workload dumped on them by the majority.
One of the engagements I get called to once a week involves dealing with some gov employees. It had the odd property of continuing when the shutdown hit, so its the contractors and no gov people. Productivity on the project is completely unaffected. Half of the workforce gone, no change in productivity. There are certainly less meetings, so that's nice.
Reading your comment, I felt like I was reading my own thoughts written down by someone far more eloquent than me. Thank you. To anyone reading this, evilduck has a perfect description of why I constantly tell my company "no" when they try to put me on this shit.
Please do not let this discourage you. The stories are, sadly, quite accurate depending on which company you work for (there are better situations than bodyshops) but we can't afford to give up.
Dive in and help change things. This is a monumental challenge that requires more people that know a better way and are willing to act.
I agree that some suck less than others but being a government contractor will always suck more than working in private industry (even as a contractor).
Just to not be a totally cynical asshole, I have heard NOAA is actually pretty modernized and efficient and everyone I've talked to seemed to be happy working there.
I'd also add that while the place I was at had its share of crap, the government for the most part loved our work because their previous contracting company had came in, wrote up a ton of requirements and specifications, sat around for two years and delivered nothing functional (and still got paid).
Yeah, it may suck more sometimes than supporting private industry, but the mission is critically important. The United States needs to get government working more effectively and this stuff has to be fixed. We need more dedicated, smart, technology-focused people to embrace the suck and fix it. Fixing it will change lives, and the way our government serves citizens for generations. Seems like a worthwhile endeavor to me, and at its lowest point at least a way to learn how NOT to do things haha.
Me too, I just can not figure out what the pronoun refers to. I am not sure why my request for clarification was down voted. I appreciated the comment and wanted to make sure I understood everything the OP was saying.
All of them. The companies have people that are ostensibly part of the same system. These are the guys I have seen recommend a Silverlight app... in 2013.
What are you referring to with "it"? The folks at your company who do federal IT work? Government IT employees? Federal IT consulting?