Complete I.T. Centralization is Bad
It seems that a common practice of businesses today is to isolate the I.T. staff from the business units. This works fine for operations that don't require knowledge of the business like supporting email and networking, but is terribly deficient beyond that limited scope. There are a limited number of cookie cutter operations that can be run with off the shelf software. At the point where the business becomes distinguished from others, its software must be customized or custom built to accommodate requirements specific to that business. It's at this point where centralized I.T. fails.
My view is primarily from my personal experience. I graduated from a mechanical engineering program and went into the engineering field. Enthusiasm for programming and ample opportunity to apply it led me into full time programming. My understanding of the business allowed me to identify areas with a high (efficiency gain) / (programming time) ratio and target those. Also, because I had a good working relationship with the other employees, I was able to get good feedback and make adjustments promptly.
Many of the rules and procedures of the business were complex and took time and experience to understand. One thing I've noticed about the centralized I.T. employees is that they typically like to stay in their I.T. bubble. For projects requiring specific business knowledge, they want someone else to figure out that stuff and just give them a specification.
I think it really boils down to something simple. For software to help run a business, it must know how the business runs. The better the business practices are understood and written into the software, the more helpful that software can be. So how can a person with little or no understanding of a business create useful software for it?
A good solution to the problem would be to take a programmer from the group and assign her to a business unit. She should become familiar with what each person does and how each job serves the business objectives. This knowledge would help her to identify areas where she can make improvements and enable her to give better advice and contribute more in general.