Tuesday, 25 June 2013

Tacit and Explicit Knowledge and Exploratory Testing

"We can know more that we can tell". - Michael Polanyi(1966)

Having finally read the excellent book Tacit and Explicit Knowledge by Harry Collins which I personally found to make a significant impact on my thinking of how we learn and record information (knowledge). The book is not an easy book to read and it took me a few times of re-reading some sections to work out what the author may have meant.

I will start by saying that this article is based upon my own interpretation of the book and the links I make between what the author writes and what I connect with regarding testing are entirely my own and could be flawed.

So what do we mean when we say tacit and explicit knowledge means?

Harry Collins in his book describes in great detail what he means by these terms and I could not find a clear definition that would be useful for this article. So I used some of the research references I had used when reading the book. One of the better ones I came across was the following website

Explicit Knowledge: Knowledge that is codified and conveyed to others through dialog, demonstration, or media such as books, drawings, and documents.

Tacit Knowledge: Deeply personal experience, aptitudes, perceptions, insights, and know-how that are implied or indicated but not actually expressed — it resides in individuals & teams.

The site also has a great diagram showing visually the difference in the amount of knowledge we have in each type with explicit being quite small part of our total knowledge and tacit being the majority.

According to Buckman of Buckman Labs,, 90% of the knowledge in any organization is embedded and synthesized in peoples’ heads. Unleashing this knowledge- which is tacit in nature-presents a big challenge. (Wah, 1999b;)

We will revisit this later

Another article I found which tried to define the terms was the following:

Explicit knowledge is formal and systematic. It can be easily communicated and shared. Typically, it has been documented. Articulated knowledge, expressed and recorded as words, numbers, codes, mathematical and scientific formulae, and musical notations. Explicit knowledge is easy to communicate, store, and distribute and is the knowledge found in books, on the web, and other visual and oral means.

Tacit knowledge on the other hand, is not so easily expressed. It is highly personal, hard to formalize and difficult to communicate to others. It may also be impossible to capture. The challenge is to identify which elements of tacit knowledge can be captured and made explicit—while accepting that some tacit knowledge just cannot be captured. For tacit knowledge that cannot be captured, the goal is to connect the possessors of tacit knowledge with the seekers of that knowledge

Tacit Knowledge is highly personal and hard to formalize, making it difficult to communicate or share with others.

Explicit Knowledge is codified knowledge that can be transmitted in formal, systematic language.

With this in mind I started to look at how it applied to testing, immediately I started to see a relationship between exploratory and scripted testing. My research found that ‘The test eye people’ have talked about this here. I highly recommend reading this since it goes much deeper into the kinds of tacit knowledge and how that relates to testing than I do in this article.

My thoughts then turned to how it relates to our everyday testing job and I found that the information we know and can write down works well for scripted testing. This is what explicit knowledge implies, if we can document it (codify) it then we can script it. However testing is about testing the information we do not know or cannot explain (the hidden stuff) to do this we have to use tacit knowledge (skills, experience, thinking) we need to experience it to be able to work it out. This is what is meant by tacit knowledge – learn it by doing it rather than reading.

Harry Collins stated that all explicit knowledge comes from tacit and I agree with this. Once we have done some exploratory testing and documented the tacit knowledge becomes explicit. However this accounts for a very small portion of the whole wealth of our tacit knowledge and as we do exploratory testing we uncover more areas that will require our tacit knowledge skills to be used.

One interesting point that is that tacit knowledge can become explicit as we communicate and socialise more. As our society evolves and our ability to put into words our thinking and thoughts, more of our tacit knowledge becomes explicit. This appears to have happen over the lifetime of existence on the planet. We started with primitive sketches and marks which involved into handwriting. We appear to be going back to using sketching as a tool to make knowledge explicit . Are we going back to our historic past to help turn tacit into explicit? As history appears to show as we become better at documenting and writing down our thoughts and thinking, our ability to turn more of our tacit knowledge into explicit knowledge becomes easier.

If most of our knowledge is tacit (90%) then it would make sense to ensure that software development processes were aligned to where the majority of our knowledge lies. This would indicate that the majority of our testing effort should be spent on using the exploratory testing approach to increase our explicit knowledge. Currently within the industry we seem to be spending a lot of our testing time utilising our explicit knowledge by means of requirements coverage, test automation checks, scripting without realising that we are only using 10% of our total knowledge capacity. In any business utilising 10% of any resource would be seen as commercial suicide, yet this practise is being carried out across the majority of the software testing profession and supported by many testing organisations in the way they ‘certify’ their testers. People need to be made more aware of the way in which human beings store and use their knowledge. It is not by documentation but by doing, immersing, taking part, practising, experimenting. It is time we started to recognise that testing is a tacit activity and requires testers to think both creativity and critically.

This is an exciting time within software development and one in which testers with their ability and skill in turning tacit into explicit knowledge already have a lead and the way we utilise this expertise and ability will determine the success of the project or the organisation we are working within.