If you see software development as a cost center, you need to rethink that entire department. If it is technically a cost center, then you are not in the business of software. That is when you need to seriously think about outsourcing it to someone who thinks of it as a profit center. Those are the folks who would treat their team well. And that would result in great solutions and great software for your company.