Abstract :
When we grow a software-intensive system, we start with something that is deeply technical, something that is constrained by the laws of physics and the realities of information theory. We then shape it into something that is as invisible as it can be. This is, curiously, the polar opposite of what theoretical physicists do: they observe the fierce complexity of the cosmos, labor to tease apart the threads by which the cosmos is cunningly woven, then try to explain the warp and woof as well as the very nature of the strings themselves in as visible and as simple a language as possible. In the case of software-intensive systems, we start with some very simple concepts - specifically, bits and the nature of information. We then apply various human artifacts - namely, our hard ware and our software languages - to make these bits and information manifest, then we bundle them up in these massive, dripping hairballs of scattered and tangled complexity, drop them into the world, and labor mightily to make them disappear in the interstitial spaces, hidden from view. The most interesting technology is technology that doesn´t appear to be there at all.