Geometry is about getting from one place to another. It’s about looking at where we are and where we want to be. Or, perhaps, it can look at where we are now and help us backtrack to where we came from. However you use it, geometry takes place over a certain region of space and time. Space and time — whether looked at in the context of cosmology or just on our projects — is all about dimensions. So let’s talk about this a bit.
If you have any interest in understanding the size, shape, curvature, and structure of a space (whether physical or the space of ideas), geometry is your friend. So do our projects have a geometry that can be applied to them? I think they do if we’re willing to exercise our mental muscles a bit. Let’s continue to be cross-discipline associative here and see where this takes us.
The Limits of Dimensions
Lisa Randall, in her book Warped Passages, asks us to recognize that “common sense” and limitations have convinced us, since infancy, of three dimensions:
People have been wrestling with this concept for a long time. For example, Aristotle, around 350 BCE, in On the Heavens said:
“A magnitude if divisible one way is a line, if two ways a surface, and if three a body. Beyond these there is no other magnitude, because the three dimensions are all that there are.”
By 150 CE, we were still largely singing that same tune when Ptolemy tried to prove that four dimensions are impossible, insisting that you can’t draw four mutually perpendicular lines. A fourth perpendicular, he contended, would be “entirely without measure and without definition.”
Notice these guys seem to be referring to a fourth spatial dimension. What they did not consider is the temporal dimension: time. That may seem odd given how embedded we are within time but, then again, that probably explains why we barely thought about time as a dimension for a very long time. Eventually it became known that we live in a four-dimensional space + time. The point here is that thinking about dimensionality matters. And not just in cosmological terms. As Lisa says in her book:
We wouldn’t understand why Inuit and Chinese people share physical features, either, if we failed to include the dimension of time that lets us recognize their common ancestry.
Likewise, in a comment I made to someone related to my physics and testing post:
Say we have a major billing component. I can write tests about that billing component but billing, as a concept, is not just spatial in nature; it’s temporal. So any tests I write are, by definition, a static representation of the temporal duration that is the reality of how billing works. The tests are correct insofar as they allow me to accurately test aspects of billing. But there is a wider aspect that they don’t capture. When I reach that wider aspect, I need to refine the tests.
Here billing has a spatial concept, but the temporal concept is an equally important dimension to consider.
So you can broaden the notion of “dimension” and consider what that means. A truism in physical sciences is that geometrical constructs are often necessary to accommodate any additional dimensionality. I believe that is true in cultural sciences as well and I would argue that our projects, wherein we apply testing as a discipline, certainly fit into the mandate of “cultural sciences.”
The Broadening of Dimensions
Okay, so looking at other dimensions — particularly in abstract ways — can tell us a lot. Going back to Lisa’s book, she asks us to do the following:
“Consider all the dimensions that enter into your calculations when you make an important decision, like buying a house. You might consider the size, the schools nearby, the proximity to places of interest, the architecture, the noise level — and the list goes on. You need to optimize in a multidimensional context, enumerating all your desires and needs.”
We’re then asked to consider someone named Ike who is twenty-one, drives fast cars, and loses money at Wonderland, which is a town near Boston with a dog-racing track. These quantities can be plotted out:
Obviously we could come up with more quantities but that would require drawing them in a space with that many dimensional axes. A key point here is that we can talk about a dimension as the number of quantities that we believe are worth investigating. When I word it that way, does it start to make you think about the dimensions of your project? Or the dimensions that testing can act within on a project?
Okay, But Where’s the Geometry?
Well, jumping back to cosmology for a bit, when you study the universe, you soon realize that our senses tell us we live in a four-dimensional space and time. We have three directions of space and one of time. But when you get beyond those immediate senses, some theories tell us that there are in fact “extra” dimensions, anywhere from five to eleven to perhaps even twenty-three. That’s a whole lot of dimensions that seem to have little, if any, impact at all.
And that’s a problem, right? So far as we know, we don’t see or feel these extra dimensions. So doesn’t that render them a bit meaningless? If you read Shing-Tung Yau’s book The Shape of Inner Space, you learn that far from being meaningless or purely abstract,
“the geometry of [a given] theory’s extra dimensions may largely determine the kind of universe we live in, dictating the properties of all the physical forces and particles we see in nature, and even those we don’t see.”
I believe that there is a certain corollary to that in our projects as well. The kinds of projects we are involved in are shaped by forces; by abstract dimensions that influence how activities take place to greater and lesser degrees. I’ve said before that I believe testing is a truth-preserving mechanism and now I’m saying that part of that is understanding these various dimensions. To explain that, let’s dig a little deeper into these ideas.
Projections
The notion of projection within geometry is where you create a lower-dimensional representation of something that is inherently higher-dimensional. You can’t help but be familiar with the concept since you, like all human beings, cast a shadow. Your shadow is a two-dimensional representation of your three-dimensional body. The challenge with projections, however, is that there is always something lost. Consider:
Yet this is what happens in our projects all the time. We turn “testing” — as an action, and an experience — into artifacts. Those artifacts — like test cases, test scenarios — are simply a projection of a higher-dimensional activity, which is testing. Our requirements, when stated and written down, are simply representations of ideas that people have about how a business domain functions and adds value. In fact, the very software that gets written and checked is a representation as well.
And something is always lost. Always. Part of what testers do, I believe, is make that clear. But since most everything is in the past, it means that testers also figure out ways to recover representations and reframe existing representations so that people have the best chance possible of understanding the higher-dimensional objects (ideas being turned into software).
These different projections are polarities. Consider:
Let’s say the software idea we have that provides value to people is the cube. That cube makes projections on our projects as we begin to encode that idea as source code and manual checks and automated checks and so on. The projection can be a square but it can also be other shapes, gradations of the square if you will. And sometimes the orientation of the cube can be such that the shape is different depending on which “side” you are looking at it from.
So, again, let’s keep in mind what I’m talking about here. Projections will lose information from the object they are representing. But we can include information that helps us retain some of what gets lost.
So now let’s talk a little about project pressure but in the context of dimensions. I believe that one thing testers do, besides help recover the representations — or, at the very least, figure out better rather than worse ways to recover some information — is that testers are able to understand that there are unseen dimensions tugging and pulling at our projects. Further, they can “inflate” those dimensions to a certain extent.
Dimensional Pressure
Going back to the physical sciences for a moment, geometry tells us that dimensions will, ultimately, conform to a certain size and shape given various pressures, both internal and external.
In geometry, lines are normally just length, having no breadth whatsoever. But we’re going to allow for the possibility that this line, when looked at “closely enough,” actually has some thickness. When seen in this light, our line is not really a line at all but rather an extremely slender cylinder. So our line actually has some thickness and that thickness harbors an extra dimension.
Now, if we slice our that cylinder at each point, the cross-section of that cut will be a tiny circle, which is a one-dimensional curve. The circle thus represents the extra dimension that is “attached” in a sense, to every single point in our higher-dimensional project.
Here’s a slightly scaled example of the same thing:
And this happens at every point in our space. So imagine our project as a grid. Here’s what each point in our grid looks like:
A dimension with that characteristic — being curled up in a tiny circle — is technically referred to as being compact. I don’t want to go down that path because it has a very specific meaning in the sciences but there is one way in which the physical sciences correlates with the cultural sciences: these dimensions, and their size, are what cause pressures. Why? Because these dimensions are a way for things to move on our projects. The danger is that these dimensions are so small that we are not aware of their effects.
So the nature of this other dimension is what complicates things because it helps dictate what happens in our project space. It provides a means for certain forces to be operative in our space but without necessarily being visible as the means by which those forces manifest. And that’s with a fairly simple dimension tacked on. If you get a little more complicated you might have something like this:
Now that dimension provides even more room for forces to operate but, again, it’s compact: so while we may “notice” that something is going on, we still can’t quite tell what. We just know that we keep being late. Or we keep not having the right conversations about requirements. Or we keep having lots of automation but still encountering bugs that we miss.
Inflating the Dimensions
Okay, so let’s step back again and consider that we can picture our full project dimensional space as a single line that extends endless in both directions. A line, by definition, has no thickness. But if we were to look at that line with an appropriate method of magnification, we might discover that the line has some thickness
after all — that it is, in fact, harboring an extra dimension:
So if testing can act to “inflate” the dimension a bit — even if only for a time — we can find and help deal with the forces that are operative on our projects. When I say “forces” here, take that to be anything you want, but usually these come down to constraints, either imposed on us or, more often, imposed by ourselves. This could be time, it could be resources, it could be lack of understanding, it could be lack of skills, etc.
Quick jump back to physical sciences here. According to some theories, if you were to take a detailed look at our four-dimensional spacetime, you would see that it’s actually harboring six extra dimensions. These six dimensions are curled up in an intricate though minuscule geometric space. (These are known as a Calabi-Yau manifold, if you’re curious.). This would mean at each point in space, you would see not a circle, like I showed before, but something like these:
So going back to testing and projects, that means our inflation would reveal this underlying complexity:
Just knowing that we have a more complex dimension to navigate can be important in and of itself. Yet how do we “navigate” a dimension?
Metrics
No, not those metrics. Not bug counts. Not lines of code. Not even feature coverage or requirements coverage. Here I mean a “metric” as a way of determining distance.
As an example, suppose you have a bunch of points that are spread out in some arrangement but one where you have absolutely no way of determining the distance between them. This kind of “space” would not have a geometry. It’s just an assortment of points that happen to occupy a particular region.
But once you put in some kind of measurement function, which in the physical sciences is called a metric, you now have a way to figure out the distance between any two points. In that context, your space now gets a new property: it becomes navigable. That space now has a well-defined geometry.
But more than that, for complicated reasons I won’t go into here, the metric for a space gives you all the information you need to figure out the shape of that space. When you have this new measurement ability at hand, you can now determine the flatness of your space to great precision. You can also determine the deviation from flatness or, rather, the curvature of that space.
Why does this matter? Because an over-reliance on these metrics has, I believe, been part and parcel of our industry for a long time. Agile, waterfall, and just about any methodologies or processes exist to put just such a metric in place for our projects. The practitioners of these things may not claim that’s what they do but, make no mistake, that is exactly what they do.
These are how we try to impose “legibility” on our projects (as I talked about in the character of projects).
What I believe this focus did, however, was actually reinforce the compactification of dimensions on our projects. This is a wider topic I want to explore in more detail but, right now, I lack the vocabulary, not to mention clarity of thought, to do so. So let me close off with a perceived consequence of metric-based thinking and how that’s not quite the case.
The Geometrization of Testing?
As you can no doubt tell if you’ve made it this far into the post, I think this notion of geometry is an interesting abstraction to consider in terms of our projects. Now, that being said, the idea of “geometrization” in the physical sciences is the idea that the physics we observe emerges directly from geometry. Do I believe that for cultural sciences as well? I absolutely do if we broaden our notion of what we mean by geometry and not stick to literal meanings of a “metric.” Keep in mind the wording I used to open this post about the fundamental role of geometry.
The scope of geometry is broad. For example, in the physical sciences, and speaking to Einstein’s theory of general relativity, geometry has shown us that at various places in the universe, there must be strange places known as singularities — thought to lie, for instance, in the center of black holes — where densities approach infinity and known physics breaks down. Well, I believe those same kind of singularities exist in our projects, as I talked about in the project singularity.
Conceptually, a dimension started out being defined mostly as a “degree of freedom,” meaning an independent way of moving in space. Eventually a dimension came to be defined as the number of coordinates you need to determine the location of a given point in a given space. Even later, a dimension came to be seen as a way to provide “space” to unify forces. This was a growth of understanding of not just what a dimension is but the means by which dimensionality has demonstrable and empirical impacts.
I believe that our industry has been on a very similar quest of defining what a “dimension” means for our projects.
But how does this relate to testing in particular? Well, consider that the notion of dimensionality sits at the intersection of math and physics. Testing also sits at intersections, such as between business and development. These are shifting polarities that it is quite important for testers to be able to move between. It’s the ability to flexibly move between these polarities — between dimensions, if you will — that is critical.
Okay, but why testers? But don’t developers do this? Don’t some business analysts do this? What about all this makes testing unique, as a discipline as well as in terms of how its practitioners work?
I believe that one way to explain this is that testers work to “inflate” certain “compact” dimensions within our projects. Specifically, we “inflate” those dimensions that have demonstrable impact on our projects but are not always obvious in terms of how they work. For example, the encoding of knowledge that becomes a discoverable resource. Another example would be the harnessing of communication and collaboration without the subsequent “need” to write down everything. Another example would be removing the confusion between action (“testing”; “elaboration”) and artifact (“test case”; “requirement”).
My Investigation Continues
My last couple of posts have been broad themed and I can understand if people question their relevance at all. Yet I believe in my heart, and with every bit of passion I have for my discipline, that there is something to these ideas. I fear I’m not the right messenger and so I’m working to refine my thoughts and my means of being able to articulate them.
With that said, I’ll close this post as such: I fully believe that if we can couple the above ideas about project dimensionality with the idea of making conceptual maps (see my testing and cartography post), I believe we start to get into what makes testing a fundamentally human discipline. I think if you then add in the ability to shift between polarities via flexible and nuanced thinking, you start to get into what makes testers, as specialized practitioners of the testing discipline, unique and value adding in an industry that is primarily focused on technology.