Saturday, September 19, 2020

Most Brutally Honest

 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.

No comments:

Post a Comment