Everything we rely on is in the past. Even the very moment of “now” became the past just as you read this. As the future gets here, it becomes the “now” and — you guessed it — moves into the past. So while we may build services and applications for the future, our work immediately becomes part of the load-bearing struts of the past.
This reality, while simplistic sounding, has important ramifications because it means we have to move between polarities.
I talked about this idea of movement between polarities in my last post regarding the character of projects. Part of what I was arguing for there is that our projects do have a character. And our culture is made up of all the individual aspects of our characters.
Bear with me, I’m trying to unpack ideas roughly as I’m thinking them through.
Okay, so let’s assume our work is cultural first and foremost.
Now let’s say that testing as a discipline is the means by which our project culture sees beyond the limits of its own immediate senses. Without hyperbole or intentional grandiosity, I do believe that the human aspect of testing is the basis, across time, space, and scale, for a wider view. I do believe that testing, ultimately, is a truth-preserving mechanism.
Does this sound like I’m getting way, way out there? Well, I’m trying to look at certain fundamentals here and it’s hard to argue against the idea that time, space and scale are fundamentals, right?
Consciousness and Identity
I do believe there is the notion of a “test consciousness” similar to that which is often referred to as a “historical consciousness.” I sort of, but not really, hinted at this in my post relating history and testing as well as whether there is a logic of test thought, similar to how there may be a logic of historical thought. (Can you tell this has been a theme of mine lately? I’m like a dog with a particularly tasty bone right now.)
Okay, so what is test consciousness? Well, that’s what I mean when I refer to the flexible movement between polarities. One prime example of this is the movement between the expression of thought and the representation of it. A pure example here might be between exploratory testing and executable scripts. Another prime example is the movement between more wide-ranging, strategic knowledge and more particular, tactical experience.
Perhaps most importantly, however, historical consciousness helps to establish human identity. It’s essentially part of what it means to grow up, not just individually, but also societally.
This could be taken to mean how we “grow up” in the context of our projects. We construct identities for ourselves but we also work with others to do the same for our projects and our teams. This shared notion of identity, incidentally, is one reason why I think both agile and waterfall were largely irrelevant to me in day-to-day practice. Neither focused on identity. Rather, they were just a name we wrapped around a set of activities.
Representations and Reality
So consider most of your projects in relation to what I said about how most of everything is in the past. This means that our projects — our history — is necessarily a representation of reality. This is very similar to cartography.
One thing I want to bring to your attention, if you weren’t aware of it already, is the idea of the coastline paradox. It has a certain resonance with cartography and may figure in as I go on here.
Okay, so what does this mean? Well, consider that we have the working software today but we also have the written down tests and requirements that were written earlier. The working software is the reality while the artifacts around it our the representation. We often find ourselves in the position of having to accord equal status to representation, on the one hand, and to reality, on the other.
- We can’t deny representation because that would deprive us of all the information our own eyes and ears can’t immediately sense. Consider that decisions that went into the software (reality) are perhaps encoded in the tests and requirements (representations) but the process by which those were created, and the micro-decisions made, are not in our immediate senses.
- We can’t deny reality because that would detach representation from whatever’s being represented. And, after all, what is there is, in fact, actually there.
There are some important points here. We can’t deny what actually happened. But what happened is in the past. So all we have is what’s been left behind and that includes our memories as well as the memories of others who worked on our projects. These are all representations and we will attempt to fit them to the reality we happen to observe.
Also important is that you’re depicting the reality you, and others, have vicariously experienced. For example, perhaps I wasn’t in certain meetings where decisions were made. Perhaps I wasn’t there when certain tests were written with certain particular data conditions being considered important while others were (seemingly) ignored.
One of the problems we deal with is that with the passage of time, our representations become reality. They may compete with the firsthand memories that people have of the events that led to where they are now. But sometimes those representations don’t so much compete as insinuate themselves into existing memories, subtly altering what had taken place before. In many cases, those representations can come to be the reality, regardless of what actually transpired.
Put another way, knowledge gleaned from our history can submerge participants’ knowledge of what took place. All of our tests and requirements present a very sanitized view of how the reality emerged. Many micro-decisions or points of contention or interesting examples may not have been captured.
Representations and Sources of Truth
The relevance here for projects is that we clearly remember what was done; after all, we have it in front of our faces. Although how well we can reason about this depends on how many sources of truth we have from our past.
The more sources we have, and the more those sources are “natural language” or “narrative”, the more those replace the human aspect of how decisions were made. We have achieved legibility (see my previous post on “project legibility”), but we lose some of the particularity. We thus end up with that uniformity that smoothes over much of the local diversity of contributions from various people. So what we remember about the past can get swallowed up in our representations about the past.
I talked about modern testing and sources of truth prior. So I’ll ask the question in the context of this post: what if we had fewer sources of truth? And what if we had sources of truth that were not in narrative form or in natural language at all cases? Would that not force us to reason more about what these artifacts meant? Would this not force us to move between the polarities?
Construct the Current
What happens on our projects is that we make the past controllable through what amount to constructed memories, aided by the representations — the markers — that we have left behind.
This is an interesting idea if we consider that the collective idea of making the past accessible is sometimes similar to the individual idea of making the past bearable. There is quite a bit that we suppress, consciously or unconsciously, while there is also quite a bit that we choose, deliberately or otherwise, to emphasize. This is another way of making things “legible” that I talked about in the character of projects.
The important corollary here is that to reconstruct the real past is to construct an accessible but deformed past. Yet even with this deformation, we do place our artifacts in some context and thus we can also rescue the world (the context) that surrounded them when they were created.
This is part of what historians do with via the manipulation of time, space, and scale, to recover lost worlds or, in our case, lost contexts. And make no mistake about it: we do lose the context. It’s very important not to confuse the fact that we have not lost the artifacts with the idea that we have not lost the context. In fact, sometimes the very fact that we have artifacts gives us (incorrect) license to assume the context ultimately doesn’t matter.
Just like historians, it’s important that we not confuse the passage of time with the accumulation of intelligence by assuming that we’re smarter now than they were then. We may have more information or better technology or easier methods of communication, but this doesn’t necessarily mean that we’re any more skillful at what we’re doing.
This certainly has relevance to us, right? Just because we now use different — and presumably “better” — tools doesn’t necessarily mean much. Just because we hired a slew of people to fill certain roles doesn’t necessarily mean much. Just because we have more meetings or sit in “squads” doesn’t necessarily mean much. Just because we call ourselves “agile” or “lean” or “scrappy” doesn’t necessarily mean much.
The Manifest “Now”
So now let’s ask what a lot of people don’t: what makes history possible? And thus the representation of it?
Past processes have generated surviving structures — documents, images, memories — that allow us to reconstruct in our minds what happened. This allows us to fit representations to realities. But this requires understanding people: their motivations and desires. And this means that part of what we are representing — and retrieving — are a set of mental processes. These are processes of which even the people involved may not have been fully aware.
Remember that we may suppress or emphasize certain aspects of our projects — and this is sometimes consciously done and other times it is unconsciously done.
From a cross-discipline perspective, this is very like writing biography wherein a person performing this undertaking needs to bridge the gap between actions taken as well as presuppositions of conscious, unconscious, and subconscious aspects to those actions. You also have to allow for the element of randomness. As Stephen Jay Gould has stated, “the essence of history is contingency.”
Polarities and Truth Preservation
So what are the polarities? And how do you move between them? I indicated a few ideas, such as moving between exploratory modes of thought versus scripted. Also the act of discussing features and the act of encoding them as a representation, both as a test representation and a code representation.
More important, however, is the means by which we move between them. This is something that I don’t think is investigated much in the discipline of testing. So I’m going to close this post almost on a cliffhanger of sorts, telling you what it seems we do to move between polarities without going into more detail for right now.
You flexibly move between polarities by practicing …
- … the manipulation of time, space, and scale.
- … the derivation of past processes from surviving structures.
- … the particularization of generalization.
- … the integration of randomness with regularity.
- … the differentiation of causes.
I’m indebted to John Gaddis’ book The Landscape of History for providing me the words to state the above list succinctly.
How often do you hear these discussed as key traits of a specialist tester? By which I mean traits that set testers apart from other disciplines, making them unique contributors to any project? My guess is you don’t hear it very often. And I don’t just mean with that specific wording. I mean how often do you hear of testing being treated as something other than an adjunct or as something more than a technical discipline?
I’m fairly certain there are some people out there reading this who are thinking I’ve finally gone off the rails entirely, slowly writing my way into irrelevance, to be forgotten by the very history I claim to study.
Perhaps that’s so but I will say one more thing, and I fundamentally believe this: thinking about testing as a truth-preserving mechanism and as a means of moving between polarities to determine what “truth” is becomes a very powerful way to conceptualize the activities that we do and also to articulate those activities to others in a way that makes us stand out as a distinct, value-adding discipline.
These are ideas I plan to explore further in future posts.