This is a great answer all around. I would strongly second the point about how someday soon we will all be developers. Business users are already by necessity specialists in information management. The irony is that too often they are forbidden to use precisely the information management tools that would allow them to do their jobs efficiently. If you want to see productivity jump, train selected business users to use a basic scripting language. There is a whole class of business requirements involving the need to extract and filter data which is invisible to IT. These needs are ubiquitous and continuous — you cannot separate them into distinct projects. They quite frequently are also short-term — for example, a need to efficiently track a two week project. Central IT will never be able to address these types of projects — it does not have the resources to be everywhere at once and the cost of translating the requirements from business terms to IT terms for each of the multitude of tasks is not viable. The only “developers” who will ever be in a position to address these needs are the business users themselves. As a business user, I consider coding to be as basic a job skill as writing. If we cling to the notion that all programming is the preserve of a privileged group of people, as opposed to a basic, necessary tool to do our jobs, we will continue to see mounting costs and an inability to meet agency goals in an efficient manner.