The Association for Software Testing is crowd-sourcing a book, Navigating the World as a Context-Driven Tester, which aims to provide responses to common questions and statements about testing from a context-driven perspective.
It's being edited by Lee Hawkins who is posing questions on Twitter, LinkedIn, Mastodon, Slack, and the AST mailing list and then collating the replies, focusing on practice over theory.
I've decided to contribute by answering briefly, and without a lot of editing or crafting, by imagining that I'm speaking to someone in software development who's acting in good faith, cares about their work and mine, but doesn't have much visibility of what testing can be.
Perhaps you'd like to join me?
--00--
"Pair and ensemble testing look like a waste of time and resources to me. What do you think?"
You're right! Sometimes.
But also not pairing or ensembling is a waste of time and resources. Sometimes.
These approaches to collaboration or not are tools and, like any tool, they have benefits and costs, learning curves, contexts where they make more sense, practitioners who hate, enjoy or flourish with them, and numerous other factors that trade off against each other.
You agree of course, but you still want to know whether I think pairing and ensembling are wasteful?
A good question to ask when testing a claim like this is wasteful ... compared to what? For example, if you're strictly about the fastest route to solve the problem in front of the team right now, then perhaps it is reasonable to put the person who is most expert in the problem area on it. That's efficient in terms of time and resources, right?
Well, yes and no. Assuming the solution is found by a direct route, and we're using a short-term lens, and discounting any opportunity costs, we might be able to claim that.
But try taking a different perspective, using a longer-sighted lens,
considering the team's work in the round, taking into account knowledge distribution and the bus factor, and the desire of team members to learn and grow in order to maintain their
motivation. Is it still the most efficient?
Of course, you might say that others can "just read the PR" to get their learning and growing. Asynchronous FTW!
Again, that will be true sometimes. But what knowing an answer doesn't teach is how to find that answer, what alternative answers there might be, under what conditions they might be preferable, what tooling can be used to diagnose the problem, what tooling can be used to help derive the solution, and so on.
Here's a practical example. I am running a weekly pairing experiment with my team and this is from the Confluence page I set up for it:
The Idea
- Commit for four weeks with a regular time slot and agree not to cancel
- Ideally testing-related but I’ll pair on anything
- I’ll start from cold but I’m happy to do some homework before a session
The Motivation
There are multiple reasons I’m trying this, including
- normalise pairing by working together on something when we aren't stuck
- get to know my colleagues better
- spread some knowledge/approach/ideas on testing
- learn something on any topic
- ...
It's lasted almost 12 months so far and I have a queue of teammates stretching for several months into the future, some for their second or third turn. I consider that an indication of the value they see in it.
This kind of pairing invests a small amount over a long period of time to share knowledge, establish empathy, and make later pairing more natural and (sure, why not?) efficient. I try to facilitate this by reserving a couple of minutes at the end of each session to debrief on the work and how we did the work.
For what it's worth I work alone, in pairs, and in groups. I am comfortable in all of them, although I have a personal preference for smaller rather than larger groups in general. I choose the way I'll work based on all kinds of factors, including urgency, availability, opportunity to learn, opportunity to teach, and so on.
You asked what I think and I've given you a bunch of thoughts, but if I was trying to answer concisely I might reach for this question:
Do you care about the destination or what might be encountered along the way?
Today, that is. And which factors are
important in the choice? For who? Why?
Image: Jamie Street on Unsplash
Comments
Post a Comment