As I read this piece about a failed software procurement by the US Air Force, one section stood out:
"In the original contract solicitation, the Air Force said that it wanted a system that was “truly ‘off-the-shelf’: unmodified and available to anyone.” But it also wanted a fully integrated system out of the box. What it got instead was three separate software products from Oracle and a collection of tools that a system integrator could use to put them all together "
I've been involved in this type of decision before, both at large and small companies. Many times I'd have liked to buy a single piece of software, but rarely could I find one I wanted or that even met my requirements. Even by sticking with a single vendor, I've often found myself with disparate applications that are somewhat cobbled together and didn't work smoothly as one unit.
That makes me wonder if it's a silly dream to continue to pursue large single systems to handle our needs. Are we better off choosing specialized systems and planning on development efforts to integrate information together? Is the future of software a series of dashboards, web sites, and reports that access a disparate group of databases and services, each built, supported, and upgraded separately?
On one hand I think that's a better way to build large systems, mainly from the standpoint of size, scale, complexity, and likelihood of completion. However I also realize this means that all companies need to account for some level of software development, either in-house or on a contract basis.
Perhaps there is no good solution and some companies will accept disparate systems while others perform their own integration work. In either case, I suspect we will continue to bemoan the state of software for the foreseeable future.