Monday, December 15, 2014

Pedantic

I do like that word, it sounds exactly like its definition.


pe·dan·tic
pəˈdan(t)ik/
adjective
of or like a pedant.
synonyms:
over scrupulous, scrupulous, precise, exact, perfectionist, punctilious,meticulous, fussy, fastidious, finicky;



I have freely admitted to being somewhat anal, slightly OCD and maybe just a little bit neurotic. All of these 'qualities' are required for my profession - well, perhaps not required, but are definitely assets. Perhaps the world of Quality Assurance is the only place where such otherwise debilitating afflictions are actually valued. But there is a very fine line between being what we QA engineers prefer to call 'detail oriented' and the over the edge version 'pedantic'.

One of the very important qualities a Quality Assurance Engineer needs to have is the ability to be able to call a halt and realize when paying too much attention to detail is actually wasting time and not serving quality. Because, after all, quality, at least in software development, which is the field I am talking about, is getting software to market on time and at the highest possible quality. The object of the exercise is always improving the customer experience. Therefore splitting hairs and wasting time on minor points which do not make a bit of difference to the customer experience is something we have to be able to recognize and let go. Not easy for anyone who is detail oriented, OCD, anal or neurotic, and impossible for those who are pedantic.

So, when considering applicants for a position testing software, how do you establish that they are within that percentage of people who are definitely suffering from neurosis but that does not spill into the pedantic percentile.

I believe there are a number of criteria you can consider.

1. Attitude towards developers, and ourselves as QA. They are not Gods, they are one of us, we are not superior, we are one of them. So, a question  'how would you deal with this scenario' and the scenario being some breakdown in communication between QA and Development,  should establish the candidates inner feelings. Here the developer hero worshipper will be exposed and we should get some insight into how the candidate interacts with development.

It is important that we are peers, all working towards the same end, quality software, quality customer experience, minimum time to deployment. Maximum quality.

2. Simple example of test code that may not be optimal, but is efficient and gets the job done in the least amount of time and effort. Review this code. Here is where the pedantic soul will come to light. They will come up with the most convoluted methods to 'improve' the code. Possibly making it difficult to implement, difficult to maintain and even more difficult to follow, plus taking too much time, something most QA engineers never have enough of.

One of the big differences between developers and test engineers is the fact that while test engineers need to be able to write code to test the software, their code doesn't necessarily have to be highly efficient so long as it achieves the end result and it has to make debugging test failures fast and easy. Developers on the other hand, need to maximize efficiency as well as achieving the correct functionality.

Customers do not have to interact nor depend on test code, just benefit from the results. Developers code is what the customer is ultimately going to skid to the finishing post on, or fall off the mountain as a result of.

A good QA Engineer will attempt to maintain a fine balance between being OCD and overly pedantic, and will always be detail oriented.