Wednesday 19 May 2010

Test Certifications - Don't Believe The Hype

Beware of the monster...

When it comes to the hype surrounding test certifications there seems to be more hype from those against it than there is from those for it. In fact if one was to believe the hype surrounding certifications from many a tester on the Internet you would be forgiven for believing that certifications represents a mythical four-headed fire-breathing monster.


A Distinction...
Personally I would say I am neither for ISQTB/ISEB certifications or for that matter against test certifications, and here is where my distinction lays, a distinction that seems absent from those who would call for the death penalty for those who support testing certifications. Did you spot the distinction, were you able to read between the lines?

To remove any ambiguity from those still left pondering, the point of distinction here is one involving the separation of test certifications from the absolute association that many have with the concept, where their only relationship with it seems to bind it exclusively to the different level ISEB/ISQTB certifications on offer.


So yeah, there are issues with them, but…
I would agree with sentiments on existing certifications regarding those seemingly focused around the completion of a multiple choice exams are no indication of knowledge or experience and that companies that take ANY certifications as blindly providing the skills or mentality required to be a tester lack an understanding of what the existing systems provide.

I disagree however with the virtual picket lines, pitchforks and torches and so forth though that seem to be directed towards those who have taken such certifications or find virtue in them as if it somehow tarnishes the skill level or other experiences / knowledge of the person.

I would contend that structure and formality provide guidelines that can prove beneficial for those developing their skills in the testing field, particularly in a field that seems to lack much formal structure or clear pathways for development within it. I found myself that even just from picking up the syllabus for more advanced level certifications and being exposed to some ideas, ideas that I had not encountered prior to that point that without even needing sit an exam I experienced benefits from it.

In addition to this even for experienced testers it is beneficial to have a frame of reference from which to compare your own practices to and care of upper level certifications they gain the opportunity to compare the expected knowledge / skillsets of a more senior tester with that of their own to gain a better sense of how they sit in relation to their fellow testers.


A difference of opinion...
It surprises me that because a certification may preach a different methodology / practice than something one may be used to that seems adequate for some to cite it a harmful force bent on destruction of the skilled tester.

So whilst existing certifications are with issue, the issue seems to focus much more around perception on what these certifications represent, differences of opinions on methodologies taught and what not than around what can a certification actually provide a tester.

I believe if people were not so tripped up by these perceptions that certifications could represent in bringing some value to the testing community and that whilst no certifications will ever be a one-stop solution they can still represent another part of a testers education, knowledge base and experiences.

It is after all the cumulation of a persons experiences that define who we are and what we believe rather than any individual / single event, but each event still represents a piece of the bigger puzzle.

Thursday 13 May 2010

The Importance of Being Independent

Think for yourself, question authority...

It is popular, has become common and is considered highly of for a tester to become an active participant within testing communities, to join testing groups and even to eventually become a speaker on testing practices. As heretical as the notion may seem but I believe this to be a poor idea to utilise when one desires the development and progression of the tester and represents potential risks when developing ones skill set as it can blind-sight someone to other perspectives or other ideas.

Whilst there are benefits to be found from participating in testing communities and user groups the potential influences within such groups represent a destructive force for a tester who is still developing their skill set. Why? Because they lack the experience, the perspective and the background to objectively assess whether an idea has value or is appropriate for their own practices / their own roles.

A naive or newer tester is more inclined to embrace an idea off the cuff and more likely to follow such an idea without the appropriate level of critical thinking that should be applied before taking on a new idea.

This represents a potential risk.

Foundations:
Much like various other crafts testing skills often come from having solid foundations from which we draw upon and that help to facilitate making educated decisions within our roles. These foundations are built upon some of the following things:
  1. Intimacy:
    Having a genuine interest in the technologies a tester is working with and putting in the time to become intimately familiar with such technology. A tester cannot approach an application or content from the same way a developer has, based upon a mindset of how a product should work rather than how it can work.

    The tester does not merely follow the documented guidelines for what was intended but looks for what is possible. This is not possible unless one can think of as many variations of possible of attempting the same process, a perspective that can be developed from spending a real amount of time with a technology as a user.

    One of the side affects of this is when a tester then encounters a similar technology it requires far less time and effort to become familiar with it and they can apply similar lessons learnt when working with alternatives.

  2. Trial and Error:
    The process of trial and error is a never ending one for a tester. As we are only human it would only be an illusion to ever consider we will always get something right, never miss things or ever know all there is to know on a subject. But it is the collection of these experiences where mistakes made become valuable opportunities in developing and advancing a testers skill set. Much like the subject of having intimacy (with the technology) these skills are ones developed from having direct hands on experience with such things.

    For a junior tester these opportunities are present on the job where in the company of more senior testers they are able to learn from their own mistakes (as they make these mistakes themselves on the job itself) and the outcome of any potential significant impact is minimised due to such supervision. Importantly these decisions made are within the contexts of a real-life product due to ship, with the implications of the choices made being of greater significance compared to that of a theoretical exercise where mistakes only cost time spent and will not affect users experiences with the product.

    One could contend that more recent developments in testing communities (via the increasingly popular Weekend Tester group) are a valuable means of assisting a tester developing this aspect of their skill set but I would suggest that the collective learning experiences of a group is never quite as significant and does not have the same level of influence as the personal decision of an individual tester and having to learn from the implications of their decisions and actions. This is not to suggest weekend testing groups hold no value (as they do form an additional means of learning), but I would hesitate to see it as a replacement for the learning process of the individual in the development of their skill set.

  3. Self Development:
    Anyone can attend a testing course, visit a testers user group or even cite rhetoric in an on-line testers forum but none of these things are likely to have the same level of influence that personal development can bring. Some aspects of self development come from the two areas mentioned above but another important aspect comes from taking the time to research topics related to testing yourself, read studies and perspectives and learn about developments related to the work you do.

    The benefit of taking the time to read as many relevant and interesting items as one has the time or ability to do provides the tester with a variety of perspectives, this helps to avoid just regurgitation of the status-quo as even though typically a significant proportion of articles only exist to reinforce existing mind sets/views it is the exceptions that help to offer new ideas, these new ideas are what allow a tester to gain a broader perspective and have a better idea for what may be possible.

    As a tester one of the most important skills which helps to define ones skill set is their ability to discover, learn and utilise relevant tools. Once again this is a direct hands on experience, some of this will be gained through roles taken where an opportunity is afforded to work with some of these technologies, others tools though can be learnt through the research performed that frequently enough highlights particular tools that a tester can pick up from which they can then see for themselves what value it can provide for them.

    In addition to these things there is self development a tester can achieve by observing and learning from other testers they work with, picking up new ideas and methods they can attempt themselves. One could easily cite this particular example as one of the virtues of a community or user group and this would be correct but the value gained from studying our co-workers in a real life situation is likely to be more beneficial than where people are just exercising a theoretical exercise.
The Independent Thinker:
One of the key skills of a tester is their ability to think critically and their ability to do so independently, free of any influence that might detract from their impartiality.

Developing this skill does not come from becoming actively ingrained within a group or community and such activities are likely to have people follow others rules rather than find their own way. Further to that point a tester within such a group stands an increasing chance of fostering more of a 'me too' attitude within it in addition to being affected by social influences (including peer pressure and the influence of more popular/well known individuals within the group over others).

The development of an individual and their mind set requires an appropriate environment in which they can develop perspectives and ideas based around their own experiences thus allowing people to develop, refine/mature and further develop their own ideas of what works and what doesn't. This process includes being involved with and utilising existing methodologies and practices used within work places and observing the results.

Whilst companies often have existing practices in place and methodologies they take preference to this does not mean that a tester should not still continue to evaluate these practices, observing the application of that methodology in relation to the particular project(s) they are working on. After all, experience will almost always show there is never really a one size fits all approach that is ever truly effective or appropriate.

The independent thinker is the one most likely to take an idea and spin it side ways and offer a perspective that a different tester who simply followed would be less likely to think of and helps to really put the exploration in exploratory testing. They are also more likely to be able to take a situation when they do have the benefit of experience behind them to know in which situations to apply the rules, to throw them out the door or embrace some ideas and discard others.

So user groups and testing communities are useless then?
No, not at all. The collective nature of a group can allow people to further ideas, but the keyword here is further.

The exchange of ideas within groups, presentations and practical exercises are all additional avenues for a tester to explore in refining their skill. They also represent an opportunity for like minded people to come together in a space, virtual or real, and share a common space that relates to a topic of importance to them.

A group or community also provides a space where people gain the opportunity to see and hear on subjects or from people outside the space of which they might normally operate within and potentially gain value from this experience.

This however does not make a group an effective unit though. Where it consists of a collective of those yet to develop a proper foundation and appropriate level of critical thinking it would detract from the potential value a group could achieve compared to testers who have already acquired their skill but seek additional avenues in which to see where they can take it. If their desire is not just to develop but to evolve ideas then this is something a community or group can only be likely to achieve when it is built upon a collective of those who have solid foundations to draw upon.

What's it all mean?
It is through a combination of the areas mentioned above that a tester can build solid foundations upon from which to develop their skill without ever having had the need to join a testing community or users group.

The benefits of the independent thinker helps to create a professional tester better equipped to serve the community as a whole by adopting a less textbook and a more individual approach that can translate to assisting with the ability to demonstrate the value of testing within the development environment and help to improve the perception of the testers role and the differences they can make.