The tool is not important

One of the not-so-obvious reasons I spend a lot (too much?) time on LinkedIn is because it regularly provides me with inspiration for thinly veiled rants (also know as blog posts). This one is no exception. Here’s the question that caused this specific blog post to happen:

If a functional tester needs to learn automation, which tool (or programming language) would you recommend and why?

I’ll just forget about this ‘functional tester’ and why he or she ‘needs’ to learn automation (there is a gazillion other ways to contribute to quality software). No, my main gripe with this question is one that I’ve been talking about a lot on this blog, on other media as well as in person: it directly zooms in on the ‘how?’, skipping over the far more important questions of ‘why?’ and ‘what?’ to automate.

Note that I’m not blaming the person who asked the question, he probably meant well and really wanted an answer to his question. And yes, he got a lot of answers, most of them pointing him to Selenium and/or Java. No idea why, since there’s absolutely no context provided with regards to the application for which automated tests need to be written, the skill set of the people who are going to be made responsible for the automation, the overall software development process and lastly but probably most importantly, whether or not there is a need for automation at all.

Granted, I’m taking the question out of context here probably, or at least I’m way overthinking it, but the relentless focus on tools is a real problem in the test automation space, and one that needs fixing. I see it in questions like these, but (and that’s a far bigger problem) in job openings and project offers too. People contact me and ask me to help them introduce and set up test automation, but they’ve already made the decision to go with tool X and Y. The reasoning? ‘Well, we’ve got a couple of spare licenses for those tools’, or ‘Benny from accounting saw a demo and thought it was cool’, The stupid is strong in that one.

So, let me say this once more:

The. Tool. Is. Not. Important.

What you want to do with it is, though. And that’s the question that’s still too often forgotten. Funny thing is, other crafts mastered this a long time ago. For instance, would you trust a handyman that does not ask what needs to be done and why you want something done in the first place, but instead says ‘See you tomorrow at eight. I’ll bring my hammer.’? It could be that he’s psychic and knows you need some woodwork done. In that case, let’s hope he brings a ruler, a saw and some nails too. Or you probably won’t hire him because you’ve got a hunch that a hammer might not be all too useful for that paint job you need done. I think. I’m not really into DIY. But I hope you get my point anyway.

So why is it that we’re still directly jumping to conclusions on which tool to use, bring, buy or build when it comes to test automation? Wouldn’t it be far better if we asked why we need automation in the first place, and what exactly it is that needs to be automated, and in what way? I think it would lead to far better and more effective automation, and save the craft and the software development world of a lot of useless automation efforts.

Only after the ‘why?’ and the ‘what?’ has been covered and answered, it’s time to look at the ‘how?’. And that’s when the tool becomes important. Until then, it’s not.

On becoming a test automation craftsman

As an automation engineer, it’s hard not to get carried away by the latest tools, frameworks (I don’t like that word, but hey) and other gizmos when you’re dutifully automating away. New tools that promise to make your test automation even snazzier than it already is are popping up on an almost daily basis. But are you really missing out when you’re not including these into your daily work? I’d like to think that more often than not, you’re not. Most true craftsmen have become what they are because they’ve become exceptionally good at doing one or two things, whereas the ‘jack of all trades, master of none’ types are often quickly forgotten. So, if you want to become a test automation craftsman (or craftswoman, of course), how should you go about doing that?

Instead of frantically trying to keep up with all of the tools that are flying around, I would advise you to:

  1. select a couple of them that will likely do the trick in most situations you encounter,
  2. get really good at using them,
  3. and then provide your client or your boss with the best possible solution using this tool set.

Select your ‘go to’ tool set (and do it wisely)
The first step in becoming a craftsman is to choose a set of tools that you’re sure will go a long way in allowing you to provide maximum value to your clients or your employer. This will over time become ‘your’ tool set, and maybe, given you provide excellent work and aren’t afraid of some personal branding, you’ll become known as the go to guy or girl for questions related to a specific tool or tool set. But even if you don’t want to become a source of knowledge for other people (although I have a hard time imagining why you wouldn’t), being exceptionally skilled in one or two things will likely advance your career faster and in better ways than a shotgun approach will ever do.

As an example, I was asked a couple of months ago by Joe Colantonio (the guy behind the excellent TestTalks podcast) to contribute to his Automation Guild online conference initiative. He recognized me as someone that is knowledgeable on a specific tool (in this case it’s REST Assured) and asked me to do a session on just that specific topic. I’d like to believe he invited me because I’ve written quite a few blog posts on the tool on here in the past (it can’t be my good looks..). Had I just written bland introductory posts on a variety of tools instead of focusing on one or two quality tools, I’m not sure this opportunity would have come by.

On a side note, you should really check out Automation Guild. Not because I’m a speaker there, but because I am really enthusiastic about the concept and because I think it’s a great way for you to further hone your craftsmanship from the comfort of your own home. There are so many great crafts(wo)men on the list!

Note that you should be careful when choosing what goes into your test automation tool belt. It does not make sense to pick a tool just because there’s nobody else on the web that’s specialized in it, for example. Usually there’s a good reason for such a lack of online presence: it’s highly likely that there’s not enough market demand for the tool, and/or the tool just isn’t all that useful. Instead, it would make more sense to pick something that’s reasonably established and well supported.

Select the contents of your tool belt wisely!

Learn everything there is to know about ‘your’ tools
Now that you have selected what goes into your personal test automation tool belt, it’s time to learn the heck out of it. To be considered a craftsman, you should try and learn everything there is to know about your tool(s), both the positive and the negative sides. Or at the very least, you should know exactly where to get the information required to do your work in the best possible way. Showcase what you know, be it at your day job, online, or at conferences, to build a following and get your name out there. Connect with fellow craftsmen to exchange knowledge and further hone your skills.

For example, check if there are any classes, workshops or online courses you can take that are related to your tools of choice. They’re often chock full of goodies, examples and exercises that will help you learn even more than you already think you knew. Plus, this too is a great way of meeting like-minded folks and grow your network. You’ll never know how and when you meet your next client, coworker or employer.

Workshop at Testworks Conf

Provide your stakeholders with the best solution using your tools
Finally, after you have selected and sharpened your tools and your skills, it’s time to put them to good work. Even though I’ve mostly focused on tools in this blog post so far, in the end, it’s not about them, it’s about what you do with the contents of your tool belt. The solutions you build using your tools are what will ultimately provide value to your stakeholders. You wouldn’t pay a carpenter if all he did was give you a couple of pieces of wood and a box of nails, right?

Updating your tool belt
Of course, in the case that the contents of your tool belt no longer fit the job you’re asked or choose to do, then you’re free (and even required) to look for additions to the contents of your test tool tool belt. Acting like everything is a nail when all you’ve got is a hammer is not the approach that will lead to success. Instead, in that case, it’s probably time to look for new additions to your tool set, and possibly also a good moment to throw out some of the stuff that is no longer of use to you. But until that time, I’d stick with what you know best and keep focusing on providing as much value as you can using your tools. Be(come) a craftsman.