I’d like to learn how to write automated tests!
I was excited to read this in the self reflection form of one of the QA people in my team.
Yes! I know how to do this! I went through the beginnings of software development myself (albeit some time ago), I’ve gained all the knowledge you will ever need to do this. I can help!
First, you will need to learn the basics of programming. I know a basic programming course to take! You will learn all about variables, assignments,
for-loops, functions. Then, we can move on to learning about HTML, the DOM and CSS selectors. Then...
I had the plan all mapped out in my head.
In our next one-on-one meeting, I enthusiastically mentioned I had seen her intent to learn test automation.
“Indeed!” she said enthusiastically, “and here’s how I’m going to approach it.”
What she laid out was a completely different plan.
She happened to know that many other QAs were also interested in learning how to write automated tests, so she would turn this into a community-based learning exercise. Every Friday, they’d block out part of the day and learn together, supported by the more experienced test automation engineers. Together, they’d set up their development and testing environment, and then walk through the existing tests and explain how they worked.
I was shocked. This plan was so different than what I was about to offer as advice. Taking this approach… made complete sense. It used the idea of learning in a group, which is not how I learned programming myself at all. The whole concept never even crossed my mind.
This was a humbling experience. What would have happened if she would have been slightly less proactive? I would have pushed my advice earlier, and likely she’d be learning the fundamentals of programming in Pascal right now. Everybody knows that’s how to properly learn programming. That’s how I learned.
As we get older, we accumulate knowledge, experience and — what we’d like to believe — wisdom.
We are good people. We want to make the world a better place. We naturally feel the best way to do so is to share what we’ve learned with the people around us.
One of our go-to techniques to share knowledge and experience is giving advice.
Giving advice feels great, especially when it is specifically requested.
“Oh wow, you came to me for advice. You must feel I have something valuable to say. Let’s not waste a minute! Here’s what I think you should do.”
Or perhaps, somebody didn’t ask us explicitly for advice, but the situation they describe looks so familiar we just cannot help ourselves.
“I’ve seen this a million times before, let me tell you exactly what to do!”
It’s natural. It’s human.
And it should be our last resort.
Let’s step back and look at the bigger picture, especially as leaders in a coaching role.
Ultimately, what are we trying to achieve?
Yeah sure, we’re here to help people achieve the company’s, team’s and people’s individual goals, etc. etc. However, there are an infinite number of roads that lead there. Some are shortcuts that offer instant gratification, some take longer, yet yield better results and teach us more.
Giving advice is a shortcut.
There is a time and place for shortcuts. Sometimes you’re on a tight deadline. Sometimes you’ve wandered long enough, and it’s time to get to the destination. In such cases: give advice and cut the trip short.
However, if there’s space for an extended journey, consider doing so. It will likely be the better path for two reasons:
- The problem may be solved in unexpected and potentially better ways (like my learning automated testing example).
- People (including yourself) will learn and grow more by taking the detour.
No more advice.
Let me be highly ironic and give you advice on what to do instead of giving advice. I’m sure you would have figured this out on your own at some point, but, frankly, it’s been long enough. It's time for a shortcut.
In No More Action we talk about an interesting art. An art that has many applications, including one in this context.
It’s the art of doing jack shit.
In the story I started this essay with, I unintentionally did. I planned to do something, but I was late. Close call.
To precap my instructions (though not advice) in No More Action: you see a problem emerge; it’s a problem you’ve seen many times before; you know exactly what to do.
But, you do nothing.
There are a few ways in which this could play out:
- The problem goes unnoticed. Nobody knows it is there, and nobody is doing anything about it. This is eating at you. However, it is possible that it turns out that your problem is not a real problem, or worth addressing. So, not taking action is perfectly fine. Nevertheless, if you’re really sure it requires some sort of response... fine, point it out. “Hey all, have you noticed the problem?” “Wuh? Wha?” they’ll say, and look towards the problem. Then, you go back to your rest state of doing nothing.
- People notice the problem and they come up with a solution. It may not have been your solution, but that’s alright. You may ask some “clarifying questions” to weed out the obviously terrible ideas (no judgment), but altogether they identify the problem and solve it by themselves. Great.
- People notice the problem, and have no idea what to do. Freakout! That is unfortunate. However, they come to you for advice, so that feels good. Alright, let us proceed to the next stage.
“Boss person, we got a problem!”
“Indeed, you do!”
“What do we do now?”
You shrug. “I don’t know, what are our options?”
We are in clean coaching mode now. All we will attempt at this stage is to trigger some thinking and discussion. Note that we’ve asked for options rather than the solution.
“We could do A, B, or C!”
“Anything else we could do?”
“I guess we could also do D.”
“Any pros and cons of each?”
More thinking and discussion.
“B and C don’t make any practical sense. The advantages of A are A0 - A5. However, the disadvantages are A6 - A10. The advantages of D are D0 - D7, and we can only see D8 - D10 as disadvantages.”
“Alright, so what are you going to do?”
There are two options at this point in our choose-your-own-adventure game:
- “We’re going to try X!” They decided and got there on their own. Great.
- “We don’t know, what do you think we should do?” Crap. Let’s move on to the next stage.
One last shot
We are now getting dangerously close to actually having to offer advice. However, we can give it one last shot by augmenting the team’s analysis with our own experience.
“I agree with your analysis of B and C, they don’t make sense. Your points regarding A make perfect sense, although I wouldn’t put much weight on A7, I’ve found that in practice that doesn’t really matter much. Regarding D, the key observation here is D2 and D3, I’d put a lot of weight on those. So, what do you want to do?”
Did they decide? Yay! Still not? Alright, you leave me no choice.
Here’s what I would do
It’s advice time. However, we can still be careful in framing our advice, acknowledging our biases.
“I would take this route, but I don’t like taking risks, therefore I always tend to pick the safe option.”
And then, after we offered our advice, all that remains is to hope for the dream scenario:
They give us a well-meaning smile.
They thank us.
And then take their own path.