I've spoken to a number of developers who work in DC, and they pretty much tell the same story: huge tech companies/consulting firms who want to lock in a long-term contract use unnecessarily complex technologies and solutions (I'm looking at you, Java EE) that create big legacy codebases which are very difficult to switch away from, ensuring that the contractor has a job forever. Furthermore, once they've got the government agency 'by the balls' (AKA, the contractor has built a complex, poorly documented monster which only it can understand), it can charge a ridiculous amount of money for maintenance and new feature development.