When I first heard about Tacit Knowledge, I had a vague idea what it was. The word “tacit” sounded a bit like “tactile” so I guessed it was knowledge that you could touch.
I was a bit off the mark.
Normally, I try to avoid starting my posts with definitions, it reminds me of those dreary debates we had at school where everyone started their discourse by using the dictionary definition.
I’m making an exception in this case as I think its important that we all understand what tacit knowledge is, so here is the wikipedia definition. Tacit knowledge is knowledge you gain by doing.
This morning my son had a bit of a crisis going to school. As some of you know, we’ve moved country and continent. For my kids, this means new school, new friends, new environment. It can be a tough challenge for an eight year old.
Suffice to say, he needed a bit of cheering up, so I suggested he look on the bright side of life. Cue Monty Python Bright Side of Life
Well, it sort of worked especially when I tried to teach him how to whistle.
Have you ever tried to teach someone to whistle?
Lauren Bacall had a go, in the movie “To have and to have not”
But you know what? As Alex found out, if you do put your lips together and blow it doesn’t mean you can whistle!
Actually being able to whistle is pretty hard.(I’m sure many of you have memories of trying to whistle in vain!)
But why is it so hard? The basic facts were explained and it seems quite simple. What vital piece of information is missing from Becall’s instruction?
That my friend is tacit knowledge. Simply put, it's the knowledge you can only learn by doing.
And so to software testing.
The reason why software testing is so hard to teach is because it requires the student to learn by doing.
To learn software testing you must….software test!
Yes, you can read and learn the peripheral stuff around testing. For example you can learn what a IEEE829 test process is. You can learn how to write a test plan, how to create a test script, but that is not testing.
Testing is the doing bit. The bit where you have to think, judge and act on a testing dilemma. Thats why some companies when interviewing for testers will ask you to test something. They know, intuitively, that testing is about doing, not writing.
My Skype coaching sessions on software testing are based around this principle. You won’t find me “sharing my experience” in the sessions because that’s not how you learn about testing. Instead, you get a challenge, puzzle or dilemma that I work through with you.
To really understand testing, you must do testing but also you must be aware of what you are doing while testing. Why? Because awareness brings about discovery. You discover assumptions you make in testing. You discover conflicting ideas and you discover your bias in testing. From that awareness comes learning and improvement.
I think thats pretty damn cool.
Now all together…
“Always look on the bright side of life…”