What is it like to be a...
Submitted by Antony Marcano on Sun, 23/03/2008 - 12:27.
acceptance testing | metaphors | perspectives | test driven development
A while back, a colleague - Tim Smith - pointed me at Thomas Nagel's collection of philosophical essays in the book "Mortal Questions".
I was captivated by Nagel's seminal essay "What is it like to be a bat?"
Nagel’s essay discusses perception and poses a strong argument that there is no such thing as objectivity. I.e. we may distil a bat’s system of vision into the concept of Sonar but we can’t possibly know how the bat experiences it because we have only our perception of visible-light, our separate perception of audible sounds and the metaphor of a submarine's sonar to compare it to.
He illustrates how this applies (perhaps to a lesser extent) between one person and the next. One person's subjective interpretation can't be fully comprehended by another.
Despite this, many attempt to reduce the world around us into discrete components and concepts and assert that it is objective and therefore 'correct'.
Nagel goes on to explain that when we reduce the subjective into the apparently objective, we are merely characterising something far more detailed... He asserts that, at best, reductionism is simply providing direction for one person to comprehend the subjective (and more detailed) vision of another.
I liken it to the digital rendering of an analogue image. With each pass, we can digitise to ever increasing depths of detail until the resolution and colour depth is so high that the human eye can no longer perceive the difference between the digital and the analogue. That doesn't mean there isn't a difference - just that the difference is harder to perceive.
In a software development team using ATDD we are using reductionism to grow our own understanding of the customers' vision. Acceptance Tests express the detail to a resolution that our ability to comprehend can cope with. Feedback, that we capture as more acceptance tests, helps us add to the 'resolution' of our understanding - through adding more 'pixels' (or tests in the case of ATDD). With each pass (or iteration) we decrease the perceptible difference between what we build and what the customer wants (or needs).
Development teams are, in many ways, both the scanner and the printer. The tests represent the pixels we've scanned - and the printer our reproduction of that image. In ATDD, of course, there is the additional self-checking mechanism of our automated tests re-scanning our reproduction to make sure it matches our original scan... Surely we should at least make sure the reproduction matches the scan - right?
I think what I'm trying to get across here is that test-first acceptance tests shouldn't be treated as a contract - an absolute definition of what is 'correct'. Instead, they are a 'scan' of our customer's vision or needs (or, dare I say requirements). With each iteration, we (and the customer) understand more and more detail at a pace that we can all cope with... slowly narrowing the gap between the customer's perception and our own understanding of it.
Indeed - as the customer sees each iterative reproduction, their vision also evolves and alters... at which point the scanning-a-fixed-image metaphor breaks down... but that, my friends, is a story for another day.
I was captivated by Nagel's seminal essay "What is it like to be a bat?"
Nagel’s essay discusses perception and poses a strong argument that there is no such thing as objectivity. I.e. we may distil a bat’s system of vision into the concept of Sonar but we can’t possibly know how the bat experiences it because we have only our perception of visible-light, our separate perception of audible sounds and the metaphor of a submarine's sonar to compare it to.
He illustrates how this applies (perhaps to a lesser extent) between one person and the next. One person's subjective interpretation can't be fully comprehended by another.
Despite this, many attempt to reduce the world around us into discrete components and concepts and assert that it is objective and therefore 'correct'.
Nagel goes on to explain that when we reduce the subjective into the apparently objective, we are merely characterising something far more detailed... He asserts that, at best, reductionism is simply providing direction for one person to comprehend the subjective (and more detailed) vision of another.
I liken it to the digital rendering of an analogue image. With each pass, we can digitise to ever increasing depths of detail until the resolution and colour depth is so high that the human eye can no longer perceive the difference between the digital and the analogue. That doesn't mean there isn't a difference - just that the difference is harder to perceive.
In a software development team using ATDD we are using reductionism to grow our own understanding of the customers' vision. Acceptance Tests express the detail to a resolution that our ability to comprehend can cope with. Feedback, that we capture as more acceptance tests, helps us add to the 'resolution' of our understanding - through adding more 'pixels' (or tests in the case of ATDD). With each pass (or iteration) we decrease the perceptible difference between what we build and what the customer wants (or needs).
Development teams are, in many ways, both the scanner and the printer. The tests represent the pixels we've scanned - and the printer our reproduction of that image. In ATDD, of course, there is the additional self-checking mechanism of our automated tests re-scanning our reproduction to make sure it matches our original scan... Surely we should at least make sure the reproduction matches the scan - right?
I think what I'm trying to get across here is that test-first acceptance tests shouldn't be treated as a contract - an absolute definition of what is 'correct'. Instead, they are a 'scan' of our customer's vision or needs (or, dare I say requirements). With each iteration, we (and the customer) understand more and more detail at a pace that we can all cope with... slowly narrowing the gap between the customer's perception and our own understanding of it.
Indeed - as the customer sees each iterative reproduction, their vision also evolves and alters... at which point the scanning-a-fixed-image metaphor breaks down... but that, my friends, is a story for another day.
