22 July 2017

An example failure

There is a problem I see when people write features. We all know, examples are powerful. They can make an explanation come to life in the mind of a reader. But, I too often see features written with the examples, but no explanations. Let us assume you are teaching someone how powers work in mathematics.

You would first explain what a power is:

Given a number
When I calculate a power of this number
Then it is multiplied by itself the power number of times to get the answer

Then you would insert examples:

Given the number <number>
When I calculate it to the power <power>
Then <number> is multiplied by itself the <power> number of times to get <answer>
| number | power | answer |
| 2           | 2         | 4           |
| 3           | 5         | 243       |

More often than not, the explanation behind the examples is missing:

Given the number <number>
When I calculate it to the power <power>
Then I get the answer <answer>
| number | power | answer |
| 2           | 2         | 4           |
| 3           | 5         | 243       |

The latter scenario does not explain the relation between the values in the examples, so how is someone supposed to write something that will work for values other than those given? You can't. Yes, in the earlier example you have to know what multiplication is, but that is a concept that would be explained elsewhere (no teacher would try to teach powers before teaching multiplication).

Remember, examples are concrete representations of a concept, but they are not the explanation of a conept in and of themselves.

At least I didn't admit this publicy where anyone could see it

It started on the testers.io slack. Heather Reid was saying how great it is that she is talking to her developers asking "So what do you want to see from testing?" and getting well thought out and useful answers. I wondered what I'd have said had I been asked, which led to this:
and then this:
The original version of the post was going to be me working through just that, but I had an epiphany whilst writing it and I know full well why I can't articulate it. It is because I don't wish to admit to the stupid (and I use the dictionary meaning here, i.e. lacking in intelligence or common sense) reason as to why I don't want anything from a tester.

It is simply, I'm big-headed and think I don't need the help of a tester because I was/am one.

Not only is this incredibly insulting to my friends and colleagues (to whom I apologise unreservedly), it is demonstrably false (even in the short time I've been developing, our testers has saved me from putting out bugs).

How could I possibly think that?

I believe it is because I don't like not being able to do things. Because I don't like to admit I can't do all the things I used to, I stubbornly try and do all the things I used to. And so, because I used to be a tester, I therefore don't need a tester.

So Angie, the barrier?

I'm a fool.