Category Archives: insight - Page 5

Put your lips together and blow

lauren_bacall_and_humphrey_bogart_in_to_have_and_have_not_trailer

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 (Don’t be lazy, click on it)

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 peice of information is missing from Becall’s instruction?

That my friend is tacit knowledge. Simply put, its 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…”

(my skype coaching sessions are free, contact me on skype id charretts with the word coaching in the request)

In search of perfection

I knew Flynn was in trouble the moment he created a program Clu 2 as his doppleganger. You see, the purpose of Clu 2 was to create the perfect system.

Flynn, a programmer failed to understand the struggle between perfection and quality. I’m guessing he didn’t spend a lot of time in the test team!

Of course, none of this makes any sense unless you have watched TRON the Legacy.

Warning!  I’m giving a bit of the plot away below…

In Tron Legacy, Flynn a programmer realises that he can’t spend all of his time in(yes in) his computer, so he creates Clu 2, a program that will create the perfect system for him. Unfortunately, the perfect system starts to wipe out everything that it sees as imperfect and pretty soon our world as we know it is being threatened. I know, its a pretty silly storyline, still the effects were great and it got the thumbs up from the 7 & 9 yr old critics.

What is perfection? Perfection, as I understand it, is  to be without fault or defect. A pretty tall ask for software. And Quality? Well, that is value to some person.¹

Both Quality and Perfection are subjective if you think about it. For example, art critics describe the Mona Lisa smile as the perfect smile. But in my mind, that small measly semi grin is far from perfect.

So, what is the difference between Quality and Perfection? Perhaps quality is more realistic, more humane?  They appear to be related in some way. When  some-one says something is perfect, are they perhaps saying that the quality is perfect?

Maybe perfection is a state in the quality model? A Utopian ideal that perhaps is something to aspire to as opposed to achieve?

At the end of the movie, Fynn realises that perfection(his son) was in front of him all the time (I told you the storyline was dodgy). I guess at that moment in time, blinded by emotion, his son was perfection to him. I suspect though, like any parent with inattentional blindness that moment quickly passes.

So perfection and quality  are dependent on time too. I think Markus Gärtner tweeted about that once.

How do we deal with these concepts in software testing? Here’s how I think about it:

Perfection is a great goal to aspire to, but my expectation is quality.²

I think this is a healthy way to look at it. For one thing, it stops me from asking for unrealistic demands from myself and others.

I do this by expecting good enough testing³.

I guess we all fall into this trap of perfection sometimes. its easy to demand perfection in other or systems yet excuse the imperfect in ourselves. In software testing, we expect perfection from developers yet don’t accept or recognise our own  failures.

“What do you mean its not a bug? Of course it is!”.

Expecting perfection in yourself is another trap and can set you up for some major life disappointments. A more realistic approach I think is to aspire for perfection but try to expect something a bit more realistic?Well, I try anyhow!

We need to combine this reality with a good dose of humility about our own failures and failures in others.

Then we will begin  treating  people with respect, a little more understanding, and perhaps then, our software will be more about the people, less about ourselves.

Maybe.

————————————————————————————

¹ Weinberg: “Quality is value to some person(s)”

² Read Secrets of a Buccaneer Scholar” for more on this.

³“Good Enough testing is the process of developing a sufficient assessment of quality, at a reasonable cost, to enable wise and timely decisions to be made concerning the product..

Battleships Ahoy

I had a great day today.

My youngest son, Alex (7) persuaded me to buy him a new game today. Its not hard. I’m easily persuaded. But the game of choice was interesting. It was Battleships.

Now, I remember this game. I played it (and loved it) when I was little.

Battleships requires a good strategy, not different to a testing strategy in fact.

You have to guess where the  ships/bugs are. Sure there are some strategies that are effective, (I confused my kids by placing all but one of my battleships on the outer perimeter).  You might have some idea of where they might be based on experience, but as one of my kids put it.

You basically have to guess first, and then after that start thinking.

sometimes I perform exploratory  testing like that.  I just have a go!

But that doesn’t mean I perform ET without thought.

Whatt my son was trying to say (and incidentally what lots of testers try to say) is that sometimes we have to suspend observation and inference.

Sometimes, what gets us going is a best guess.

Lets not ignore our best guess, because just  like in  battleships,  even if the first decision …A/9 is a random suggestion, after that you will  need a strategy.

What the hell, the kids loved the game. I loved playing the game.

We all had fun.