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.

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).