Monday, April 18, 2022

Starting in Software Testing

Over the years, several people reached out to me asking for guidance to get into the testing and quality space. What drew me into this area, how to start this as a career, which resources to look into, how to practice, and so on. Today I answered a similar question once more and hence decided to make a blog post out of it - in case my (admittedly quite generic answer) might help more people.

First, credit where credit is due. This post now exists because of those people who had asked. I don't remember all of them, yet at least thank you to AfeezOdunayo, Chemierra and Abraham.

Also, I'm pretty sure there are more comprehensive or helpful answers out there. Here's the one I currently give, adapted to the context of the question asker.

Hi there! Great to hear you'd like to explore the testing and quality space! I relate to the overwhelming amount of (at times contradicting) information out there, it can be difficult to figure out on your own where to even start.

It most probably is not doable to get into software testing the same way I did, as I rather fell into testing by luck and opportunity instead of intentionally planning it as my career. In case you're interested to read about my story, I wrote about it here: How I Fell into Testing. I assume things are quite different these days. What I don't experience differently is that I'm still learning every day and I just love that. I feel in this space I can contribute to building a great product for people, and build that together with great people - as product development is a real team sport. Might be my personal bubble, yet I do feel we can have impact together and help move things to a better place.

Let me be clear that I can only share from my personal experience here and I'm aware I'm speaking from a very privileged position; so please know that any advice I can give you, anything what helped me in my context, might not fit to your situation at all. Feel free to see for yourself though, and I'd be glad if something turns out as valuable.

Coming to your question how to start in software testing. Let me give you a quite common tester answer: it depends! ;-) What's your context? What are you interested in? What do you enjoy? What's a current challenge you'd like to tackle? There's a lot more questions that would help provide you more targeted recommendations. Let me know if you have more specifics for me. For now I'll just go with generic recommendations, hoping they might help you already.

Resources: There's lots of great content out there. In general I can recommend having a look at the following to get started.

Practicing: Getting hands-on experience and trying things out is invaluable, and deliberate practice can make a real difference.

  • You might want to help out open source projects and practice there - probably the most real practice you can find. (Side note: I am sharing this as advice I heard from others, it's not part of my own journey so I cannot speak from experience here.)
  • There are lots of projects meant for practicing. A great list is this: Resources for Software Testers (You need to sign in to view it yet it should be visible with a free account.)
  • Consider joining forces and pairing up with people, or learning in a group. This sped up my learning so much I can't even emphasize this enough. For resources on working well with other people, see my page on collaboration.

In case you'd like to know anything in specifics, just let me know and I hope I can help or connect you with people who can.

Hope this helps! All the best for your journey.

Sunday, April 10, 2022

Asking for Help

How is it that asking for help can be both so easy and the hardest thing to do? In my case, if I'm feeling calm and relaxed, I can ask about anybody to help me out. If they agree and do help, awesome! If they don't, well, it's a pity yet I'm calm, so it's not the worst thing in the world either. After all, things are under control anyway.

That situation changes completely when I'm feeling overwhelmed, fires are burning everywhere and I feel the weight on my shoulders (it might not actually be on my shoulders, yet perception matters). In this situation I happen to switch to one of two kinds of modes. Usually, it's my extreme "get things done on my own" mode, which let's me see only one way: pushing through until everything's done! And as I know how to do it, I just do it right away on my own to get things out of the way as quickly as I can. After all, I want to get back to a sustainable pace and things being under control as soon as possible. In this situation I don't feel I have time to enable others to do the same and help me out, I just keep going. On the other hand, I might be going on extreme mode for a while - then everything is getting slower and slower, while I still try to push through. I have less and less energy, so dealing with people is also not high on my list in this situation either. Don't get me wrong, I love people! Yet I'm very introvert and people interactions mostly drain me, unless we also do something together that gives me energy again (like getting valuable things done effectively - this is a real booster for me; hence effective pairing or ensembling does not drain me as much and also gives me back a lot).

Either mode - you don't want to get me there. It might help on the short run, and yes things are getting done - yet I'll do no good to anyone on the long run when I'm in this mode! It's been a while since I realized this and it was a tough pill to swallow. Wait, it's not me saving the world? No, and it never should be, and no, I'm not capable of that either, and yes, it's arrogant to think for a moment I could. And after all, I'm not alone, this is a team sport. Plus, I'm not doing my best work in this mode anyway.  I do my best work when I'm calm. Constraints can help, yes, yet I shouldn't get anxious or overwhelmed or drowning in too many feelings - this is usually throwing me off balance.

Getting back to asking for help: when I didn't catch a situation early enough to stay calm and enable others, and it got too far - then it's getting very difficult for me to ask for help. Especially, what help to ask for anyway? There usually are lots of people trying to help or who offer their support, yet what if they are not in the situation yet that they can actually provide help? Then I'd have to enable them first. Yet do I have the energy? Also, what if other people who would be closest to be able to help do not even see that I'm drowning?

What helped me in these situations are the following things. I'm sharing them here mainly as a reminder to myself. Feel free to go ahead, try them and see if they also help you as well.

  1. Do the right thing and ask for help. No, you're not alone, and there is a team to help out. No one should be left alone anyway, and if that's really the case in your team, then there are bigger issues to solve.
  2. If you can't directly ask for help for any reason, confide in trusted people and have them act as sounding board. They probably will tell you that you're not alone and yes, you really should ask for help! Some might ask you what you are afraid could go wrong if you ask for help. Think about this carefully.
  3. Okay, tomorrow you'll ask for help! Yet it's so easy to chicken out when tomorrow actually comes. What can help is to have someone to keep you accountable on what you committed to do, which is asking for help. In my case it really helps me to make this public (I learned that during my personal challenges). Might be scary, yet it's less scary than actually asking for help. Oh, and then everyone knows, so I'd better really do it tomorrow! Tricking my brain like this usually works extremely well.
  4. Point out and explain the challenge you perceive and how it impacts the team, how others can help you in concrete ways and why, and what part you will do yourself to get out of this situation. Just lay it out as it is. It's not about finger-pointing or blaming in any way how you ended up here, yet here you are. If it's too much work for one person, make the work visible. If it's lack of knowledge, make it clear. Whatever it is, let's get out of this together.
  5. Last but not least, for any situation where you ended up being the bottleneck and hence better ask for help: the only way to break out of a bottleneck and knowledge silo situation like this is indeed to stop and enable others. Yes, it will cost energy - and it's very well spent (I learned this the hard way last year). So do just that, enable others. Don't go on your own anymore. Pair and ensemble, document. Have others take over, trust them - accept different approaches and outcomes, they need to learn their way as well (and no, your way is not always right). It does not have to reach your quality bar either, by the way. You can still debrief and catch the most obvious issues - yet oftentimes, good enough is just that, good enough. Oh yes, and if it's not clear yet: Don't become a bottleneck in the first place. Yet if you really have to (sometimes there's just no other feasible way), don't continue this way and instead destruct it again as quickly as possible. It's about the resilience of the whole team. And testing should never be the bottleneck anyway, yet that deserves a whole other blog post.
Now that you (I do speak to myself here) know what to do, do it. What's the worst thing that can happen after all? Also, only if you do ask indeed, you'll know what actually happened (not what you imagined would happen).

Let me tell you what happened for me when I got into this situation again last week. In my mind, there were several crucial tasks to do that all ended up being on my desk, among them also lots of testing activities. Nothing that I could let fall down, I already cut what I could. In addition, everything needed to happen during the same weeks. I was a complete bottleneck and knowledge silo for the team. And I had planned off time from the next month on - and hence one task on my list was to get more people on the team enabled to help out with testing and quality in various aspects.

On Monday, I had conversations about this perceived situation with two peers. I shared I knew what I had to do and that I needed their backing to have the whole team help out. Both gave me the advice to ask for help indeed. They asked me the questions I needed to hear - what was it I was afraid of? Hurting my relationships with my teammates that I already invested in quite a lot? That things got done with less quality? That I needed to let go? I reflected on what they were saying and yes, I needed to fix myself here. So I tweeted about this to hold myself accountable and get me to really ask for help the next day.
Tuesday came, I summoned up my courage and wrote a message in our team channel, making things as explicit as possible (I asked for help quite a few times the last weeks, yet it seems the message didn't get through to them - I learned that sometimes I need to be a lot more explicit than I think I already am.) I chose the text format here as writing helps my thinking, and sharing on the fly in a call is very hard to  do for me. Second, I wanted it persisted so we could go back to this moment in time, have an artifact to refer to. Third, my team currently works mostly in an asynchronous way still, so I hoped this would fit them. In my message, I pointed out that I needed their help, the challenge I perceived (part of it was too much work in progress, hence people starting to block each other and trying to mitigate this by starting more new work before getting the old one done), what needs to be done when, how they can contribute to solve this challenge and what I commit to do to be part of the solution as well. Then I waited while I continued my work.

The good news: I didn't have to wait for long! The team responded amazingly well and I'm considering myself fortunate - and still they couldn't have responded that well if I never gave them the chance to do so in the first place.
  • One teammate instantly agreed to pair test with me on their story, clearly seeing it was too much for me.
  • One teammate took action right away and took over testing for two other stories, I didn't even need to bother further.
  • One teammate shared they're struggling as well with their task, yet I can ask any time and we can do things together.
  • One teammate had a chat with me and shared they got inspired by my message and took action to take over testing where they could.
You can't imagine how relieved I was! Also, it went really well. Yet I know from experience that these kinds of helpful bursts can happen and still, soon enough things go back to the previous normal again. I was curious to see how long it holds this time.
Wednesday came, and I paired again with the same teammate - just as the first session, it was amazing and we discovered lots of valuable information while also sharing knowledge. Now they know a lot more how to test these kinds of changes as well and what to look for.
Thursday came, and more good stuff happened! I asked the previously struggling teammate to pair on a specific story - and we did! I know this didn't come easy to them so I'm even more grateful. Again, really valuable insights in short time on both sides. I also had asked generally in the team who can pair with me on another story - and one teammate quickly volunteered, a person I didn't expect to do so! This was in itself such a nice thing that it made my day.
Friday - another pairing session with yet another person, hence enabling the team further, and it was a success just as well. Again, I'm aware this might collapse again, as it's hard and takes time to change behavior and mindset; there will be setbacks. Yet four really positive days in a row make me very hopeful. I am very happy I did ask in the end, and very grateful for the amazing response of my team. If we continue on this journey together, I do think there's a bright future ahead of us.

Overall, our work to do as a team already became more manageable in short time. I could feel the relief in my bones! I'm already a lot calmer. Which makes it easier to ask for help again. And if asking for help is difficult once more, remember you are not alone.