'Unbreakable'? Software? Harr!
The joke that shouldn't be a joke
As sometimes happens, I got an email from a reader after writing a piece for Reg Developer. This time, the piece in question was Testing assumptions and the big stack and, as perhaps you will see, the email brought a guffaw, and then a thought.
"I enjoyed your article 'Testing assumptions and the big stack'," wrote my correspondent Oscar Leeper (thanks, Oscar, the cheque is in the post). "But there was one question on my mind to which I found no answer. Is there any word on whether 'Fusion' will also be 'Unbreakable'?"
I spent several minutes cleaning up the coffee I had sprayed over the keyboard after reading that. I mean, "software" and "unbreakable" appearing in the same book, let alone the same sentence, is stretching credulity to its farthest limits. As the story about the Quality Assurance survey Compuware conducted shows, the idea of even trying to make software "unbreakable" is close to anathema to many companies.
Now, before Oracle’s lawyers start sharpening their pencils in anticipation, I cast not one hint of a brickbat in its direction. But let’s face it, the reputation for quality, reliability and fitness for purpose that software in general has acquired over the years still leaves much to be desired. "Unbreakable" applications remain a dream goal for mystics or the slightly deranged.
But maybe we have put up with the alternative for too long. Maybe it is time that users should expect software to be, while not "unbreakable" (that’s arguably impossible to achieve), at least pretty damned reliable and robust - in much the same way that I assume that, when I go to bed, the walls of my house will still be there in the morning.
I do have an argument with the assumption underpinning Oracle’s view of SOA and Fusion-related reliability. The fact that components have been pre-tested does not, ipso facto, mean that a composite application built from them will itself be reliable. But to be fair, as time goes by and the inter-dependencies and interoperability quirks of components get charted more comprehensively, I can see the possibility that Fusion could get at least a bit closer to the unbreakable dream. Indeed, so could every application.
As we move towards a service-based, composite-application constructed environment, the users will also move towards the presumption that the services they call up will work - and not just some of the time.
Surely, that is a more important objective for developers than coming up with yet more richness in tick-box functionality. ®