In an interview with CNET, Sun CEO Scott McNealy once again goes back to his “software is a feature” attitude, despite his company's apparent interest in making money off software:
” This is why I crack up when I learn my third-grader's learning how to program. I want to go in and tell them, are you teaching him how to program a telephone switch, too? Or work a nuclear power plant? It's just a continuum. We've always done piece parts because people like to buy the piece parts. But now open interfaces, standard building blocks, and providing integratable alternatives to the welded-shut Microsoft hairball, people are getting more and more comfortable buying less mechanics and more assembled fixtures. “
Uh-huh. Well, I guess Scott's kid won't be building those fixtures.
But, seriously, I understand the “vision thing” that McNealy is trying to spin here; it's the software component-driven world we all thought we would be living in by now, that Sun tried to execute (poorly) with Java Workshop 1.0 in 1997 (or whenever that was). Unfortunately for Scott, that's still the world inhabited by George Jetson–and not us.
While the vision McNealy promotes is of information systems consumers not needing to know how to program,the reality is that somebody still has to play around under the hood to put the building blocks and interfaces all together–or even set them up properly. Packaged software, bundled hardware and software, and so forth are certainly available, but they often end up causing as many or more organizational problems for the companies implementing them than they solve. The return on the investment in these pre-formed slabs of software and hardware isn't exactly great, either. (Seen a happy Siebel or SAP customer lately?)
Grid computing is a wonderful thing, to be sure. Application dial-tone, fire-and-forget business apps, buzzword, buzzword, buzzword. There's just one problem–once you've got all this stuff, and you've installed it with default settings, how the hell do you get any differentiation out of your use of it from your competitor who set up the same system? How do you extract additional value from your leased compute cycles, virtualized storage, and packaged business logic? And how do you make your company dynamic once you've tied your strategy to any-color-as-long-as-it's-black product cycles?
I don't want my fourth grader to have to learn how to program a nuclear power plant, Scott. But I want him to learn logic, and programming technique at some point in his school career, so he can navigate the stupid menus to program a VCR. And I want him to be able to find a better way to do things than the losers fine people who build the interfaces and embedded software and operating systems that we're currently enslaved by. Software matters; programming matters, just as you argue IT matters. Making electrons jump on command is an essential part of making things work better, faster and cheaper, and you know it.
Let's look at the automobile analogy. You once said something like, “Nobody goes out and buys software for their right turn signal.” True. But there are two kinds of car owners out there–users and enthusiasts. Enthusiasts do everything they can to tweak the performance of their car, buying aftermarket kits and tinkering under the hood. Look at what happened to GM's J-car series when it got into the hands of these people, and you'll see what I mean–they made cars from the base car provided by GM that were better than anything GM's design team could come up with.
That's why “open interfaces” and “standard building blocks” may become the accepted baseline of IT–but who still buys the base model? There will always be a need, and a desire, for software jockeys to go under the hood to get that little bit more efficiency out of the system to get that much more of a profitability edge out of the IT investment. There will always be businesses that the standard building blocks don't fit. And there will always be another set of holes in those standard building blocks that need patching.