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