Monday, 27 May 2013

The Wall Is Still There

There were 3 blog posts I read last week that seemed to have a common theme but the contents were widely different.

First post I came across was Testers and Developers please get along. I wondered why such a title was still being used in 2013, haven't we got past all this ages ago? The author ( architect for Smart Bear ) had gone along to a testing conference and found there were still jokes about "stupid developers" and throwing things over the wall.
He ended his article with some suggestions - pair-test programming, sit together, do stuff together.

Remind me again when the Agile manifesto was written and when the first edition of Extreme Programming came out?

On the subject of walls, Alan Page wrote a post Tear Down The Wall and the wall between testers and developers and although things are changing there is still a wall at MS - smaller than it used to be but still there
He has a vision for the future of s/w development

"What software teams need in the future is team members who can perform the activities of programming, testing, and analysis – together"

The third blog post I read was in reaction to Alans post - Test Activity and Testing Roles
It had 2 quotes that I found sad and depressing - but could relate to as that is how it is in a lot of companies.

That is so far from my reality that I actually find it a little threatening.

I’d love to see a system that functions like this, but I rather doubt I’ll get to see one soon.

I could give a trite response and tell him to move and get out there as there are companies like that - but it's not as easy or as simple as that.
Several years ago I was in the same position - I'd read the books, was reading the blogs and mailing lists, I knew there was a better way of making s/w than the place I was working at. Trying to change things was incredibly hard and frustrating. Comfortably Numb was becoming my daily theme song.
I gave up trying there and left

Just sad to read that for many things are the same as they were for me all those years ago.

Friday, 24 May 2013

The Challenge

This week I am celebrating my One Year In Michigan anniversary so time for some introspection and reflection.

I can come up with a list of things I've achieved - managed to move over the Atlantic and get settled in, pass my driving test, been driving on the other side of the road without crashing( no jinx touch wood), I dont need to use the GPS all the time, attended many GR Tester Meetups and helped arrange the first ever Michigan Tester Meetup.

And, as you might have noticed from my recent blog posts, I passed my soccer ref exam and became a qualfied ref.

This has been my first full season and apart from lack of fitness leading to knackered calves I've been enjoying it. So far I've only done U8 to U10 though in the next couple of weeks I have a couple of U11 games and then an U12. The match assignors are being great and are building me up slowly, letting me gain experience at the lower levels before moving me up.

Do I want to move up though? The U8 to U10 age is pretty easy - only 6 players on the pitch per team so not hard to keep an eye on, they dont kick the ball too far and though they can run around all day it's not super fast sprints that I cant keep up with ( when my legs aren't knackered) And apart from the occasional incident the coaches and parents have been reasonable and accept that their kids are just learning the game. No dissent at all from the kids. Haven't had to show a yellow or red card or even do a telling off yet.

So I could stay at this level. The kids at that age still need refs. The new refs start off at that age as assistant refs and need to be mentored.

But when I have been reffing, quite often at nearby pitches I can see older age groups playing. Full size pitches. 11-a-side teams. Really fast play. Lots of skills and contact.
And I want to try that out, see if I can cope at that level, see if I have the skills to be a higher level ref.

So what has that got to with me and testing?

One of the reasons I moved to Michigan was to work for Atomic Object - a company that claimed to be producing high quality s/w.

I'd been used to working at the lower leagues of s/w development - bug counts in the 100s, people with next to no understanding of testing, spaghetti legacy code developments, clueless CEOs, zombie testers, metric madness managers....

If you lowered your expectations then it was possible to survive in those environments, even to thrive as you could look like the hero saving the project when you found the 300 bugs before the customers did.
But it chipped away at your soul and I'd read about devs doing TDD, places with CI in place, test-infected cultures, working products shipping every 2 weeks...

Did I want to stay on the U8 pitch keeping control of a small mass of little players running around the pitch? Or did I want to challenge myself and see how I could deal with a proper game?

So I made the move to Michigan and it's been tough. Sure, I know all the theory, putting it all into practice isn't so simple. There have been projects that I haven't been involved in that somehow seem to have shipped and worked and customers are delighted with. I've been trying to ramp up and re-learn my technical skills - last time I used source control it was Source Safe not Git, real Ruby code looks a lot more different than the 'hello world' code I'd been practising with. Mobile apps with all the extra things that need to be considered when testing them. Then there's all the words and concepts I'd never heard of before - lambdas, closures, all the funky Javascript libraries and all the things the designers did to lay out their pages. and to interact with the customers. Prototyping, story boards, innovation games...

It's been - and is - a hard challenge.

But I've been reading a lot of referee blogs and forums recently. Their first games are tough. They cant keep up with play, they find it hard to distinguish between physical play and foul play, they have massive nerves when showing their first red card and are often critical of themselves after a game and analyse every mistake they make.
They carry on though and improve and learn and become a valuable part of the game.

Time for me to take some lessons from the pitch and use them off it.

Wednesday, 15 May 2013

5 Questions With Simon Morley

Regular readers will now be tired of my Lessons Learned From Reffing Posts so back to my 5 Questions Series and Simon Morley - a Yorkshireman now living and working in Sweden and author of The Testers Headache

1) What's your background and how did a Yorky end up in Sweden?

I started out wanting to be a diplomat - which was probably a really bad career choice as I was one of the least diplomatic people around - at that time! 

So I tried applied mathematics(!), doing a stint in underwater defense research. The fall of the Berlin wall saw the end of that career (reduction in defense research - the cold-war dividend and all that). But, the very intelligent people I worked with at the time said some of the next big technological challenges were in telecommunications. And so I "drifted" into telecoms and started out as a trainee tester at a Swedish company - it was the guys interviewing me that spotted that I could be a tester - so I guess I owe a lot to them (actually my boss was a mathematician, having studied the same course at the same college…)

Ending up in Sweden? Well there's more space, the wildlife is wilder (literally), the nature is cool AND it loves me (at least there are all sorts of things biting me for my blood), the winter sports are more wintry, and... oh yeah, my better-half is Swedish - so I'd been coming here for a number of years before deciding to settle down here. 

2) Is there any difference between the test culture in England and Sweden?

There are many different levels to that question! I've worked in several different countries, and sometimes the testing culture is a function of the country culture, sometimes the company, sometimes the project structure, but usually a mix of all three.

Whilst in England I worked for a Japanese company - which had Japanese high expectations, had imported an American results-orientation and were encasing that in a British work attitude -> and we were combining work from English, French and Portuguese teams -> there were mismatches on so many different levels. The testers and test teams were caught between a cultural rock and an organisational hard place. 
That was very educational for me and I started noticing differences between company, country and organizational cultures more and more - and distinguishing them from "testers" - testers were part of the system, but not THE system. 

In Sweden there is much more a feeling of egalité - equality where anyone can talk to anyone - the hierarchy is not there in the same way (I think a BBC article recently described it as Jante's Law, but I'm not completely convinced about that.) Most things are more open, on the table and up for discussion. 
This is great for feedback and challenging of ideas. Ironically there can be a reticence in Swedes - but not always, and that's not a problem if you understand it. But once people know each other the idea that everyone is more-or-less equal means ideas can flood out - and be challenged. It means the results can be clever and well-thought-through.

3) Your blog is called The Testers Headache - what's giving you a headache at the moment and have you tried aspirin?


The blog name comes from a deal of frustration that I had seen in testers over the years (and myself) - part of this was about being powerless in organizations - sometimes gatekeepers, sometimes scapegoats, sometimes put into impossible situations. So I wanted to start writing to help distill my thoughts and even get different views on that from anyone that might want to comment/discuss.

It's an attempt to isolate the tester in an organizational or cultural problem - and look at both aspects. With my science background, I tend to take a systems view of situations and from a number of angles - sometimes tangential! This helps me learn! Whenever I meet new testers (or ones I haven't met before) I usually ask what they have been writing and where I can read it - and if they haven't started a blog, well now is a good time - you'll have at least one reader!

Some time ago I did a monthly blog post called the "Carnival of Testers" - this was both an attempt to point out interesting reads and, occasionally, lift someone up and say, "here's a new writer/blogger… go and read what they say and give feedback" - I still read a lot of blogs, but don't have the time to compile a list anymore  - although I make an effort now and then - I did 2 compilations last year -> (1) to promote "Let's Test" (a wonderful test conference), and (2) to jot down some thoughts about Ola Hyltén (a wonderful person that also knew about testing)

So, the blog (which in itself is partly its own aspirin), is an attempt to re-frame testing as an intellectual activity - at least for testers that want respect, and for organizations that want good testing and good work. It's partly an attempt to illustrate the complexity with good testing and how powerful (and not powerless) it can be - and using that it can contribute massively to good software development… 

4) What advice would you give to a new tester - or someone thinking of becoming a tester?

I meet new/newish testers now and then and I usually want to know why they want to test, what is it that drives them. If they think that testing is difficult to do well, want to study it and get better at it, then I try to find how they want to improve. Anyone wanting to improve usually has a drive or a reason or a main interest. Sometimes it's about tapping into them - doesn't mean I can help, but I can help them understand where they are in the bigger picture. 

That sounds "fluffy" but it boils down to: "Do you want to understand what you're doing?" -> "Do you want to get better at, for example, observation?" -> "Ok, tell me where you use observation - the good, the bad and the ugly….." And then explore observation - pitfalls and good examples. 
Sometimes, people think they can't do something or have never done something, but sometimes they just don't know how to recognize it, and then it's about giving a helping hand. If, and only if, they want help…

I recently held a peer conference where I work and people were stopping me and saying they wanted to come but didn't have any experience to talk about. On 2 occasions after chatting with them for 5 minutes I "noticed" something that they could talk about - and that would be a good report. So, sometimes it's really just helping people "notice" things.

So, advice I would give to a new tester - pair up, chat with or reach out to an "experienced tester" - maybe online or in person - if they're any good they'll usually be glad to help (maybe you have to arrange a time first.) Have a discussion - and maybe challenge the experienced tester to find something that you can (1) improve on, or, (2) learn - something that you didn't know about before. Then ask the experienced tester to give you a challenge - either with something you've learnt/improved

For someone thinking about testing or software development I'd say: 
Creating software is both a creative and subjective art. Matching the software to what someone might want is really difficult on so many levels - (1) The customer might not know what they really want; this creates many problems trying to understand that… (2) They might not have any pre-conceived ideas how to know that what they get is what they want; this makes understanding if what is being developed comes near to what is wanted more tricky (3) You may work in an environment (team, project, company) that doesn't understand these limitations; which makes doing the work more difficult

So, if working with trying to figure out what a customer might/might not want (when there's probably no crystal clear answer), figuring out how a development team turns those wishes into software (when there might be implementation discrepancies due to misunderstanding, mistakes, omissions, etc; and all of these might not be knowable or observable), figuring out how to create experiments (which may well be imperfect) to gather information (which may be incomplete or incorrect) about a system (software + environment + human emotions and foibles) that may be imperfectly described and subject to change and then talk about all of those issues and findings in a coherent way… - if all of this sounds challenging and something that you can make a real contribution to, then take up the challenge of doing good, nay excellent, testing.

Note, to do good testing you will need to understand the human element (to some extent) in this system, understand how to observe systems (with people and other artifacts), understand how to distinguish rhetoric from substantive evidence, design experiments, understand the limitations of what you know about the system and what you can know and then communicate about that in a way that's understandable to someone that probably has not studied this whole system in as much detail as you. 

You'll be a cross between an investigative journalist, scientist, part-sociologist and part-psychologist.
You can make a contribution because this system of interaction is not "off-the-shelf" and so the techniques, lessons and ways in which to approach such systems are not predictable - you can help by adding to the corpus of knowledge that makes working in such systems better. This might be finding traps and good experiences to avoid them or it might be finding new techniques with certain types of systems.

5) What books are you reading at the moment and why?

Oh, quite a lot - I usually have quite a few on the go. The current top of the stack:

"How to be an explorer of the world" (Smith) - a great book to get you to look at the world around in a new way. It's a really good book for practicing observation and note taking!

"Intuition Pumps and Other Tools for Thinking" (Dennet) - Just started this - I've been intrigued by Daniel Dennet since seeing a TED talk some time ago and then seeing some recent interviews - he has an "evolutionary" bent to thinking - something I wondered about wrt testing some time ago and think I might investigate more.

"NASA Space Shuttle Program Tacit Knowledge Capture Project: Oral Histories from Twenty Program Officials and Managers, Challenger and Columbia Accident Insights and Lessons Learned" - I'm intrigued by the program to make tacit knowledge explicit in NASA - it's connected to a recent post I made about peer conferencing -> that the dialogue and discussion of any topic /can/ get to the core issues and links in to other work (by Bo Göranzon) about dialogue seminars to uncover hidden knowledge.

"Experiential Learning" (Weinberg) - I've experienced this type of learning in several forms (I now recognize them in retrospect after reading about the techniques) and understand how powerful this learning type is and want to get better at it.

"Psychology of Intelligence Analysis" (Heuer) - I started reading this about a year ago and returned to it recently. This was a textbook in the CIA for how they gather and analyze masses of information, trying to understand their own biases that may occur and so how to make better decisions - actually this is very similar to testers gathering masses of different information and trying to work with that. The CIA have been years ahead in terms of applying cognitive studies and applying to their work. They recognized that most of their techniques are heuristic in nature. I want to use a sister book of this (a trade craft primer) and do a mapping to software testing -> that's an ongoing pet project.

"Protocol Analysis - Verbal Reports as Data" (Simon, Ericsson) - I discovered this recently (actually referenced from another document on intelligence analysis (Intelligence Analysis: Behavioral and Social Scientific Foundations)) - really interesting - it backs up how difficult it is to get to the "truth" - their thesis has ideas on the power of verbal information. Still working through it - but interesting so far.

Monday, 13 May 2013

Should a referee have played the game?

"Where's the free-kick, our girls are getting hurt out there"

"You have a whistle in your hand, use it"

Ah, the great life of a ref getting advice from parents and coaches.

Blue player advancing to goal, takes a shot but as she does so an Orange player blocks the shot. Blue players foot bounces back and she ends up on the floor crying. Cue the shouts from parents and coach.
Perfectly fine play as far as I was concerned and the ball shooting out sideways and not forwards showed it was a block and no foul.
I would have been proud to have made that tackle.

Now that I've taken up the whistle and stopped being an active player, has my past playing experience been helpful? Or does having a 'players mindset' bias my decisions? Should all referees be made to play?
( should all parents and coaches?)

How has it helped?

Good positioning on the field - I know where the ball is likely to go and what the plays will be so I can be there and ready to make a decision.

Dirty tricks - not so much a problem at the young ages but soon they start to pick up some of the little tricks of a shirt grab or a tread on an opponents toes. If you've been on the receiving end of some of these ( or done some yourself cough cough) then you know what to watch out for.

Judgement - was it a foul or a great tackle? Just because little Jenny is on the floor and crying doesn't mean it was a foul as in the incident at the start of this post.

Is it essential?

No - with practice and experience the above skills can be picked up.

There are also a whole other bunch of skills that you need - communication with the coaches, parents and players, interaction with your two assistant referees

What does the Internet say? A quick search found this:

 "It is ironic that, often, referees are described as ‘failed footballers’ "

 Doesn't this sound somewhat familiar?

Monday, 6 May 2013

Sustainable Whistling

In my last post I promised not to do any 'refereeing is like testing' analogies - but I didn't say that I wouldn't do any 'lessons learned from reffing' posts....

The first weekend of the youth soccer season in Grand Rapids was a gentle start with 2 games as Assistant Ref aka Lineo. This weekend I had 6 games lined up - one Friday evening, 3 Saturday and 2 on Sunday. Age ranges from U8 to U10, six players on a team - how hard could it be?

Hard. Damned Hard.

Physically tough with lots of changes of direction and taking care not to step on little munchkins - and by U10 they're starting to kick the ball far so play can go from end to end much more quickly than U8

Mentally it was very demanding as well. At U8 they all run round in a big bunch so peering at a tangle of legs trying to work out which one touched the ball last is hard. Making a split second decision when a ball hits a hand - was it deliberate or not? Making the decision to blow for a free-kick or let play carry on.

And making these decisions with a touchline full of parents watching and a coach on the other sideline muttering under his breath about every decision you make.

Oh, and you also have 2 linesmen to help you with the game but they are usually young teens in their first season of being an official so you have to keep an eye on them, try and mentor them and protect them from parents and coaches.

The last 10 minutes of the last game was a real struggle - my left calf was giving out and I feeling tired watching the players and making sure I made the right call.

So when the final game was over I limped off to my car and found myself sitting in the passenger seat. Thats when I know I'm really really tired as I've only had 1 year of driving in the US so when I'm exhausted my natural instinct is to get into the 'wrong' side of the car.

Which was a great reminder to me of the importance of working at a sustainable pace

Thursday, 2 May 2013

The Centre of Attention

The snow has finally gone from Michigan and the youth soccer season has started - which means it's time for me to flap the cobwebs out of my flags and blow the dust out of my whistle and get out there and ref some games.

Worry not, dear reader, this is not going to be a "refereeing a footy game is like testing..." analogy post.

One of the books I've been reading is Quiet: The Power of Introverts" as I am a quiet person.
I'm also shy - and like many people I confused the two, being shy and being an introvert are not the same thing, the book has helped with my understanding of the differences and myself.

So as a shy and introverted person why do I want to make myself the centre of attention by standing in the middle of a soccer pitch, trying to control 12 kids running around with parents and coaches ready to criticize every decision I make?
( Oh, yeh, I also have 2 linesmen every game to meet and talk to, introduce myself to the coaches and team manager )

Why not stay at home with a good book?

The answer is for the same reasons I attend Tester Gatherings and Meetups. Once a month I go off to the GR Testers Meetup and there's usually at least one new face there. A couple of months ago I was standing in front of 40 Michigan testers doing a lightning talk. Why not stay at home and carry on working my way through my copy of Tacit and Explicit Knowledge and do my connecting with people by sending out some tweets ?

The Quiet book has an explanation with the story of Professor Brian Little, a winner of the 3M Teaching Fellowship whose classes at Harvard were oversubscribed and often had him breaking into song and twirling about onstage like a cross between Robin Williams and Albert Einstein.
Doesn't sound like the behaviour of an introvert?

But he was very much so, living out in remote Canadian woods with just his wife. The books tells of how he had to give two lectures at a Royal Military College with lunch inbetween. Lunch though was his recharging time so he invented an excuse that he was interested in ship design and wanted to spend his lunchtime looking at boats on the nearby river. This worked but then the location moved to a place not near water - so he went off and hid in the bathroom during lunchtime so he could get his much needed quiet time.

Why put himself through this though? The Professor came up with a theory he called Free Trait Theory - where we can and do act out of character in the service of "core personal projects". Introverts are capable of acting like extroverts for the sake of work they consider important.

I've played footy ( soccer ) most of my life, coached my daughters soccer team and she is still playing. I made friends through it and have many good memories out of it. The legs though are getting too old to get me through 90 minutes so moving onto being an official seemed a good way to give something back to the game and help the new generation discover The Beautiful Game. Plus moving to a new country it might give me the opportunity to meet people and make new friends.

Same with testing - moving to testing from programming got my enthusiasm going again, made me new friends which ultimately led to new opportunities. Arranging and going to tester meetups and encouraging new testers to connect and talk is my way of giving something back.

And doing both of these (reffing and tester events) also helps with my confidence and gives me practice in overcoming my shyness.

The Quiet book is highly recommended, another post from that coming up soon.