There are a couple of browser tabs I’ve had open for at least a week now and they’ve been making me think and I think they’re related but I still don’t have a synthesis. The first is Bill de hÓra’s Matchstick Men, which says a bunch of smart things about WS-* and REST, but that’s not what resonates, it’s this: Critically the upkeep and maintenance of legacy systems has come to dominate business software spending. Most large enterprise IT divisions now have the equivalent of a pensions fund crisis, except that all the money is being spent on old systems instead of old people. The second is Nicholas Carr’s Citi whacks IT, from begins: In yet another sign of the vast amount of waste inherent in big-company IT operations....
Clearly these two pieces are related, and I may not have a synthesis but I do have take-aways. First, Citi’s scope to slash is limited if, as Bill suggests, most of their spending is based on “supported living” for legacy apps. Sure, they can stack apps on fewer boxes via virtualization, but it’s not the boxes that cost the big bucks, these days.
Second, Citi’s stated strategy of “standardizing how the company develops, deploys and runs applications” seems to me like a recipe for stagnation and bureaucracy. Such a strategy would have led to fight-back in the Eighties against the PC and in the Nineties against the Web; any decent business strategy has to leave enough wiggle room for the discovery of its successor.
But the real take-away is this, and it’s something that worries me more and more. I’m convinced that, increasingly, the proportion of enterprise software development based on dynamic languages and AMP technologies and Rails and rapid-iteration continuous-beta “Web 2.0” thinking will increase for the foreseeable future. But that doesn’t mean that Java or .NET or even COBOL are going away, and the brutal truth is that we don’t really don’t have anything like industry consensus on the best practices for integrating Rails and PHP and Java EE and .NET/SQLServer and Cobol/IMS and Ada and all the other weird old shit that’s out there doing boring vital business functions.
Me, I think the best bet is something REST-flavored, but we’re kinda short of tooling and best practices and experience. I think this problem is urgent.