Growing your own

So, I’m sitting here in my office on a beautiful  Australian spring day. The sun is shining brightly, the air is slightly fresh sending wafts of scent from the spring flowers. Its a good time to be alive and its a good time to be thinking of growth and change.

Potatoes in Spring

True to form, I trotted down to the local garden center and bought back a truck load of seeds and ideas on what I can do in the garden. I feel good this year, the potatoes are growing well, and I’ve managed to grow snow peas for the first time. Having invested a good amount of time in the garden, I feel content enough to sit in my office and allow myself to explore ideas on software testing and training.

And I’ve come up with the crazy idea, wonderful idea. For some time I’ve wanted to invest in online training in software testing. Its a model that I think will suit me well. I live far far away from the rest of the world and as much I as enjoy meeting new testers from around the globe, continuous travel is not for me.

To date, I’ve struggled with the concept of online learning. When I learn, I like to get my hands gritty, experience the stuff I’m wrestling with. With my online coaching, I make sure I include a task of some sort but thats one on one. Is it possible to offer online experiential learning to many people?

And then I read about these guys at Venture Lab. The courses are highly experiential & require collaboration to succeed. I sniffed a model that I could possibly work with.

But I’m taking it one step further. I want to make the students the designers of the course. Its the students who will work out what needs to be learned and how that will be achieved, and how they will know they achieved it. There will be some external structure, perhaps in the form of exercises, some philosophies to abide by, but basically, its the students who will dictate the content & the pace. In fact a lot of these ideas are from the coaching model James Bach & I have worked on holding onto the concept that learning requires real desire from the student, and to do that the student needs to dictate the learning (with the teacher offering space and direction to learn).

I see this courses as being a permission giver. We’re so drilled to think of learning as something we have to sign up for, like its impossible for us to learn outside a course. In this way, I’m helping overcome that little hurdle and get into some real meaty learning.

I’m very excited about these ideas and what will come of them. I’m not sure where they will lead and I guess that’s half the fun! If you want to join me on the crazy, wacky journey, feel free to contact me on Skype at charretts, or else add a comment below.

I’ll be adding information on this model as it progresses.

That coverage problem

Thanks mostly to the BBST classes the AST run, I’ve come to understand and appreciate the impossibility of complete testing and the challenges surrounding ‘complete test coverage’.

I find 100% testing coverage a pretty meaningless phrase. Imagine trying the calculate the amount of water in a swimming pool by multiplying the length and width of the pool. Ha! we’d snort and sniff at the stupidity of the idea. But when test managers, project managers and testers ask for “complete test coverage” that is in essence what they are asking testers to do.

In fact, getting to grips on complete testing is even harder than the pool problem, because at least with a pool, once you know the width, length and depth, the volume can be calculated.

In testing though,the number of models we use to design our tests is limited only by our imagination. To try and measure test coverage is a bit like trying to cover a black hole with a tea towel and say you’ve measured it.

Trying to test like this in a short space of time is really stressful and it seems the agile solution is to automate regression tests. But really, is this the best solution we can come up with?

It seems to me this desire to cover as much functionality as possible ends up in this Wac-A-mole game with testers frantically hitting features as fast as possible in order to be able to say its done.

Well, I’m trying a thought experiment at the company I’m consulting at. I’m challenging everyone to drop the idea of coverage and instead focus on some meaningful and valuable testing.

I’m doing this because it seems to me, we testers are far too hung up on this coverage problem and we bias our testing to try and solve it. Yes, this may mean that we fail to test all the functionality – quelle horreur! But get this, when do we *ever* test all functionality?

Dropping the desire to “test everything” is very liberating. We no longer have to fret about trying to test all the functionality in a week (we do weekly releases with multiple hot fix releases). Instead, it’s freed our minds up to reflect and ponder on what is the most beneficial testing to perform given we only have a few days to test. It’s also freed up our toolsmith, allowing them to spend time solving some testing problems through testabilty instead of frantically creating regression tests.

I’m fully expecting some bugs will get released to production, but you know? that’s nothing new! We’re finding bugs in production all the time, they’re called customer support issues.

Time will tell if this approach proves to be beneficial or not. It’s a little scary, dropping the regression test safety net, but when safety nets start obstructing your work its time to question its validity.

In pursuit of coaching excellence

When you coach a tester you’re working in an environment that dynamically changes as both the student and coach work through a coaching task.  If you look at the diagram below you can see all the different attributes that might change throughout a coaching session.

Coaching Space Bach & Charrett

Also, throughout the coaching session, the student and coach have a mental model of the coach and themselves. They constantly re-evaluate these models as the coaching session progresses.

The coaching I do (and James Bach does) requires that the coach has a testing syllabus that they use to help the student. This is different to life coaching which is non domain specific. Also, our coaching is lot more directive. The relationship between the coach and student is more coach->student than the traditional peer-to-peer relationship you find in life coaching. I see our coaching more like sports coaching, where a coach outside of a game, runs you through drills and challenging exercises to help you improve, often without realising your in need of improvement.

Personally, I’ve experienced good and not so good sports coaches. In my school days I was a bit of a field hockey superstar (I joined the grade A hockey team two years ahead of time, making me the youngest player). My coach however was incredibly overbearing, shouting and yelling at us and telling us how hopeless we were. I’m not sure if we were hopeless or not, but I know we failed to win many games and left the season completely demoralised to the point I gave up hockey for four years. I was persuaded to pick up hockey again and this time we had a different coach. She was quiet, never said too much and let me play my free style. One day she came up to me and be a quietly suggested I move back 10 metres to be able to better angle my shots ( I was in a midfield position). Very quickly I realised the power of such a move, I was in a better position to be able to control the game. I was 16 when that happened and I’ve never forgotten the power of that one statement.

For me that’s what coaching is about and its the type of coach I aspire to be. Its directive but the direction is about the skill and how the student is performing that skill. Where its non directional is that I challenge the student to think for themselves. It’s paradox at play but one that works.

Its also powerful because it’s watchful, ready to tap into what a student is doing at an appropriate time, using pressure and energy as tools to make direction powerful to the student (just like my second sports coach did). The aim is to help the student feel empowered to achieve more.

But the energy is not only in one way. The coach is getting energised by the coaching session too. I’m constantly evaluating my coaching and testing ability. I become a better coach by doing this. My aim is to become the best coach I can be.

I can only do this by coaching lots of testers, evaluating the transcripts and also working with colleagues who inspire and want to become better coaches too. I’ve been doing that this week with James Bach. We’ve been working on our book on coaching, identifying ways in which we coach, syndromes that both student and coaches encounter (we need to do more of this) and also finding ways to better evaluate coaching transcripts.

I think an aspiration of excellence in any field is such a worthy goal. I was watching Ron Ben Israel who is a master baker of sugar dessert flowers. You can see his passion the how is pursuit of excellence has led him to create masterpieces in sugar. Who would have thought that you could become excellent in such a small field?

Excellence I think is different to perfection. Perfection to me sounds more absolute, perhaps a little unrealistic. Excellence however, is within my grasp but also always one step ahead of me. I can be excellent at one point in time, but I can always strive to be more excellent. I think this is a worthy pursuit and a good use of my time and energy.

What are you in pursuit of?

(if you want a coaching session on software testing, please contact me on Skype. My id is charretts, please include the word “coaching request”. I offer free skype coaching to testers as long as you’re willing to allow your transcripts to be used in my research and perhaps in the upcoming book. This means the transcripts may be published, though I do conceal the second name and any potentially sensitive data).

Training Testers

I’m having a complete blast at the moment adding the finishing touches to my upcoming workshops in Dublin,Belfast and London.

The Dublin and Belfast Exploratory Workshops sold out in a couple of days but there are still some seats on the coaching testers workshop in London. This is shaping up to be a great workshop – its jam packed with exercises and I’m very excited to be able to share with other testers the approaches that James Bach & I have honed over the past years.

Then its off to the inaugural Lets Test Conference in Stockholm where I’ll be giving a talk on coaching testers.

The Lets-Test conference is shaping up to be a huge event and personally I’m thrilled to be making part of history by speaking there.

Hope to catch up with you at one of these events!

The Buzz On Testing

We’re witnessing a revolution my dear comrades. The tide is turning on drone testing  The word is out. Skill Matters!

Classes such as Rapid Software Testing (developed by James Bach and Michael Bolton), Just in Time (Rob Sabourin) and Elizabeth Hendrikson Exploratory Testing classes are becoming more popular.  They say “Test is Dead” but I say “Bad Test is Dead”.  Hurrah!

Slowly the realisation that tester’s need skills as such as bug recognition, critical thinking, the art of questioning, influencing and developing strategies to help them effectively test software.

I have a theory that the majority of tester training has been focused on process and documentation because its easy to teach that way. Instead of having to working on skill you simply point to a structure and say “follow that”.

Its much more challenging to develop a tester’s skill.

Skilled people earn respect and rightly so. We admire a skilled musician – even if the music doesn’t appeal to us. Developing skill is hard work. It’s the accumulation of understanding, practice and application. This takes time and effort.

As someone who has worked in the industry for twenty years, I know how hard it can be to allocate time for training. We’re deadline orientated and rightly, a Test Manager’s goal is to complete ‘good enough’ testing with the time and resources available.

Coaching is the antidote to this. It allows the tester breathing space to reflect and work on their skill.

The coaching I perform focuses on developing skill through understanding & practice. It takes into account the testers skill base, context, aspirations and the challenges a tester is facing in their current work.

As opposed to arbitrary training, coaching complements a working environment, and often the problems worked on are those that exist at work.

In conjunction with James Bach, I’ve developed systematic approach to coaching a tester’s skill. This approach is a result of coaching hundreds of students, evaluating transcripts and refining the coaching model.

It’s this model that I will be teaching in my workshops on coaching testers. I’ll be holding a workshop in London on the 4th May, and one in Sydney on the 29th May (with James Bach).

Come and join me!

What drives your learning?

What drives people to take up my offer of free Skype coaching?

Most testers when asked give on of the following reasons:

1) they want to pass an exam
2) They are having difficulty at work and need to get over some particular obstacle
3) They want to test themselves
4) They want a particular question answered
5) They want to know more about a topic
6) They want to learn how to coach other testers
7) They want to become a better tester – topic irrelevant

Many come to coaching with a mixture of frustration in their work or because they feel disillusioned.

It we seems that for many,  testers need drivers and general discontent to push them into learning something more. Few testers come forward wanting to simply learn.

It’s not all that surprising. I myself have just completed a gruelling year of full time work. It’s hard to allow yourself time to reflect and pause when you hop from one crisis to another and when you do, its more likely to be related to the challenges your working on at the time.

But I really admire the the testers that come wanting to learn more. Willing to take a punt at contacting someone they’ve never met and ask them to be coached. I salute you!

What drives these people? Is knowledge some kind of drug to these people? Do they simply want to know more? Do they want to be the best at what they can do?

I think its important to understand this question as people who want to learn for the pure joy of learning have a major advantage over others. They continue to learn and grow despite the daily challenges around them. Its not the challenge or goal that drives them to learn, its the learning that drives them to challenge themselves.

Common external drivers are completing a project, passing an exam, getting a job promotion and getting external approval from others. But what happens when the inevitable happens and the goal is completed or the challenge disappears? What happens to your thirst of learning? Does it die away?

Does that tell you anything?

Removing external oracles (those things you judge yourself by) casts your thirst for knowledge in a very different light, but its not a bad light, its an honest one and it belongs to you.

I believe we have to own our own learning. Drivers to learning can often be short lived. Have a goal to become a test manager, only to discover you’ve plateaued?  I suspect your learning may be driven by goals.

Imagine a world where you can tap into this love of learning as some testers do. Imagine learning for the pure enjoyment of discovering something new. Feel the satisfaction of overcoming a hurdle you have set yourself.

These testers they have taken responsibility for their learning. They see it as a way to develop and grow themselves. Their oracles to learning are inner satisfaction and self respect. They shine with the confidence of owning their own learning.

So do yourself a favour, spend a little time identifying what’s driving your learning and ask yourself “how is that working for me?”

Post Note:

If you want an example of a tester that learns for the love of learning, read Pete Whalen’s post on Rising from the Ashes.

 

 

Coaching Space

When James Bach gave his keynote on “Cool new things” at CAST 2011, I suspected that our work on coaching might come up. What I wasn’t expecting was a break down of my work and the recognition of the work I had done. So thank you James.

I’ve been asked for a copy of the handout that I shared in my talk and James showed in the keynote

 

I’ll post a more in depth analysis when I get back from CAST.

 

 

How to write about software testing

Based on the number of requests I’ve had to write articles recently, there seems to be a big demand for testers who can write  well about software testing.  I’ve been asked by a few different companies to write articles on their behalf. Sometimes I’ve been asked to write posts for someones’s blog. I’ve only done that once with Quck Testing Tips which was a lot of fun. But generally, I find it hard enough to be inspired on my blog, let alone writing for some-one elses!

I thought putting down what helps me, might help a few testers out there. Writing well is a great skill for a tester to have. Think of all those persuasive bug reports you will be able to write.  Its also a great way to consolidate and  refine your thinking. (A great read on this topic is chapter is Maria Hammeren’s chapter entitled “writing as a method of reflection”  in the book Dialogue Skill and Tacit Knowledge.)

1) Write from the heart.

Personally, I’m only motivated to write when I have something I feel passionate about. Thats a good thing because you can create a bond with the audience. But it can be unhelpful too if other people are relying on you to write something.

Perhaps passionate is the wrong word, but  writing posts that resonate with you reach out in some way to your audience. Perhaps its the choice of words you use, I’m not sure, but your readers will pick up on your sincerity.

2) Be yourself

That is, don’t try and be the expert unless you have personal knowledge about what you are writing. In practical terms, avoid trying to sound more experienced than you are. Be honest about your experiences.If you do write on a topic (say automation) in a authorititive manner, you had better be able to back it up with fact and substance.

An excellent example of someone who does this  well is Michael Bolton. I believe in what he writes because he cites references and backs up his statement with examples and facts.

Nuff said.

3) Give yourself Permission

I have James Bach to thank for pointing this one out in a tweet*. Its so true.
Give yourself permission to write your thoughts. They do count and they are of value. Trust me on this one. A great example of some-one who does this is Lanette Creamer. I admire they way she is so forthright with her ideas.

*tweet info with nod to Michael Bolton for supplying it

[quote style=”boxed”]As a teacher this is key: Permission givers http://bit.ly/9qnyOt (thanks @jerryweinberg, for the link, and the permission)[/quote]

4) Proof Read

I tend to write posts 2 or 3 times before I let them loose on the world. Seriously. This is how I work.

a) Write down sentiment anyhow, anyway. Don’t worry about what it looks like
b) At this point I  feel free to explore, sometimes I stray from my originally intended topic to the point where I have a compeltely new article.
c) Read the post (try reading it aloud), and rewrite it, move paragraphs around to get a better flow. Cut out paragraphs that prevent a nice flow through the post
d) Take a break, do something different
e) Come back re-read the post, edit it. check for spelling then send it

A trap you can fall into though is over proofing. If you feel really strongly about something, and you leave it to the next day, you may chicken out and decide not the send it. Sometimes posting in the heat of the moment is a good idea. (Hey I never said writing was clear cut!)

5) Give credit

If you get an idea based on a book you read, share that. If something inspires you, share the link.

6) Be Original

No-one wants to hear trite stuff that parrotts what others say. Believe me. Make your content your own. If you are talking about a hot topic, try and put your own personal spin on it. What are your thoughts on it? Don’t parrott a thought leader, their stuff is far better than yours anyhow.

7) Be Precise

Often its a struggle to come up with a precise word that reflects exactly what you want to say. But please, don’t be lazy about it. The english language is diverse and there’s bound to be a word that aptly describes what you want. Use a thesaurus if you have to, or do what I do and wait until the right word comes to you. Your readers will appreciate it.

8 ) Why do you write?

Here is Bernard-Henry Levy on his view on writing. Great stuff. In particular what drives him to write is interesting:

[quote style=”boxed”]I am not writing to be loved. There is as much pleasure to being hated as being loved. I write in order to convince. In order to win. In order to change, even just a little, the world. I recently launched an appeal on Twitter supporting those attacking the official websites of the Tunisian regime. An intellectual calling for hacking doesn’t happen very frequently, and there is a stir. I am happy that it succeeded. I care about being heard.[/quote]

Whats your driver? Is it your ego, is it SEO ratings or is it something else? I started writing to get ratings for my website, but now I write for the pure joy of writing, because I get a kick out of crafting a beautiful piece of work.

9) Practise

The only way you are going to get any good at writing is by practicing.  How are you going to practice, well thats up to you, but writing a blog is a good start. Don’t aim for perfection, just get out there and write something. I will never forget my first blog post. It was the equivalent of hello world! (I wish I still had it, I would link it here)

Well, thats it. Nearly

There is one more thing.

If you are serious about writing skype me on charretts. I offer free coaching and I’m willing to include writing in that scope, as long as its to do with testing.

[By the way, when I’m talking about writing, its mostly in the context  of articles, blogs etc.]