Maaike Brinkhof tweeted this last week:
Give me your most brutally honest definition of software testing.
As it happens, I have
a definition of software testing that works for me, and it is (honestly) my honest answer:
Testing is the pursuit of relevant incongruity.But Maaike asked for the most brutally honest definition. How might that change what I'd say?
Well, what is brutal honesty? As I interpret the term, it describes a
statement of perceived truth given with no regards for the feelings of anyone
who might hear it.
That gives me a route in: can I find someone
with a perspective that might offend us testing snowflakes, someone who is
relevant to us, and someone whose view I can characterise with extreme
candour?
I thought about this for about, um, one second and chose
THE BUSINESS.
A perspective that might offend? Check. In the
main, businesses run for the benefit of the business and, particularly as they
get larger, can lose touch with their staff as individuals, become insensitive
to employees' feelings about their work and why they do it, and blind to the
craft that any given person learned and takes a pride in applying on a daily
basis.
Relevant to us? Check. One of the key yardsticks for
the work we choose to schedule should be the extent to which it would
contribute to business value.
A perspective amenable to candour? Check. To the business, software testing is one of multiple potential risk
mitigation activities, to be traded against one another and against the
current business need in the current market against the current
competition.
From this point of view, software testing is nothing special, and can be
simply described as, and my answer to Maaike's question:
Expendable insurance.
That is, a premium paid by the business which it is thought may not be
necessary but which will pay out (by reducing losses) when the product does
not meet business needs. It's expendable because it is viewed as a resource
which can be cancelled, or the supplier changed, or the terms of engagement
altered as the business requires.
Reflecting on this, I
don't find myself offended. Yes, I find myself looking somewhat cynical and
feeling perhaps sad about the way capitalism operates. But, realistically,
this view of testing is not so different from my own in some respects.
I
regard the testing my team provides as an optional service to the projects we
work on. It's up to the project stakeholders (with my help, for sure) to
decide what of their budget they want to invest in testing as opposed to peer
review, or beta releases to the customers, or bringing in extra domain
expertise, or other risk mitigation strategies. A key part of our development
process is agreeing with the major stakeholders how they would like to spread
the risk mitigation software testing can bring across the projects we're
working on.
Naturally, my approach doesn't leave me with the bitter
taste of cynicism or sadness in my mouth. But why?
First, I have found a way to frame my work so that I don't feel frustrated by business considerations; doing a good job means exercising my skills in an effective, appropriate way given the project constraints.
Second, and perhaps more important, I typically operate at a granularity where I can still care about the people and the individual outcomes involved and I find that's important to me.
Third, and related, I try to lead with empathy and this, I think, is what turns brutal honesty into radical candour and means that I can take the business perspective not as an insult but as a challenge to explain what testing could bring, to who, when, and when testing might not be appropriate.
Maaike
shared her own definition later on:
Slapping people in the face with a dose of reality. Ad Infinitum
I love that it's also both candid and brutal.
Image: https://flic.kr/p/ed2sWW
Comments
Post a Comment