The other night I happened to happened to have dinner with an old friend, Jeff Voas. He was telling me about a new problem he was working on in which he hypothesizes there are only seven dimensions that describe all computing problem implementations.
While these dimensions are truly independent, and thus orthogonal to one another, it helps to visualize them in the following manner: you have software that runs on hardware which exists inside some environment, these three things are subject to threats; in addition there are non-functional requirements (such as performance and reliability), and everything is operated within a set of defined policies. All of these things are in respect to time.
Jeff challenged me to come up with any problem that didn’t fit within this model. I could not.
Jeff also pointed out another interesting attribute of his model. That time and threat space could not be locked down. Everything else could be set into stone, frozen forever.
The implications of this, are fairly straight forward, and that is even if you don’t change anything, new threats can be discovered, resulting in your having to change at least one of the other dimension points to compensate. If one could quantify a baseline as a function of these seven attributes, it would become possible to measure changes as a whole. Even better, risk and change impacts can be better assessed and communicated.
What interested me, however, was the reason two of these dimensions could not be locked down, while the others could. I shared my thoughts with Jeff, who after hearing them, sadly pointed out it was a little too late to get this new insight into the IEEE paper.
Put aside the model we were working with and consider for just a moment the real physical world of three dimensional space that we live in. Those dimensions are up/down, left/right, in/out to keep things simple.
Clever sorts will blurt out “you forgot time, time is the fourth dimension.” They’d be wrong, because they’re jumping ahead of themselves. Time is not space, but is merely an aspect of where something is in space. Should one actually write it out as a tuple, yes, you get (X, Y, Z, time), and mathematically you can work such problems as having four variables, all independent, thus mathematically orthogonal, and treat them as if they were all dimensions. But, and this is key, I’m not using that definition for dimension. I mean it in the purer sense of the word, meaning that it is possible to move forwards and backwards along any dimensional axis.
Here’s the key: time is not a dimension, but a vector. It only goes in one direction.
Now, here’s a little puzzle for the brainiacs in the group. What other attribute of our physical real universe is also a vector and not a bidirectional dimension?
The answer happens to be entropy; the universe is slowly falling into a state of disorder, and there’s nothing we can do about it. Any amount of effort to reinstill order in one place just speeds up entropy somewhere else, even if it’s just consumption of energy or heat loss.
Turning back to Jeff’s model, I proposed that he actually only had five dimensions and two vectors. The reason time and threat space could not be locked was because they were vectors. He pondered and bought into that notion.
Then comes the zinger. If we only know of two vectors in the real world, and the model attempts to quantify real world problems, and there are two vectors in the model, then is it possible that the threat space is entropy?
There are few moments in life where you actually get to see the gears turn and smoke come out of the ears of a bright Ph.D., and I watched Jeff retreat into his own mind for a minute or so and then reemerge – he concluded with me that it was, and that it was a shame the IEEE article had already been submitted.