26 November 2012

Jiro dreams of sushi

When I first read Daniel Pink's blog post: The best 82-minute movie on mastery I’ve ever seen I knew I had to see the documentary Jiro dreams of sushi and that I would love it. Now I've finally done that and, despite having sky high expectations, it blew me away!

What is it about?
It's 82 minutes of watching the 85 year-old restaurant owner and sushi master Jiro, and his crew, express their passion for sushi. That's it! How can that blow my mind you might ask and if you know me really well you could add: You don't even like sushi!

What is it really about?
Let's zoom out. This is a documentary about passion, the actual craft is pretty much irrelevant apart from how the people in the documentary treat it (if you love sushi you would probably get another dimension that I don't really get though). Jiro and his crew shows this by just expressing their genuine passion and devotion. They talk about how they reason and what they prioritize, about harmony and challenges, about their inner drives and journeys. That's what it's really about.

Why should you watch it
What made this documentary amazing was how well it transferred the core feelings of passion on to me as a viewer. I love the feeling of having something just turn on an emotional switch inside of me and that's exactly what Jiro and his crew did. When I came back to work the day after seeing the documentary I felt even more engaged when i usually do, it was like the inner spark was just ever so slightly stronger that day (which made me slightly overexcited at times .) I'm definitely planning to see it a second time soon just to see if I can get the same feeling again... and again... and again (hmm, is it just me or am I starting to sound like a drug addict?).

This wasn't really... useful
Well apart from a film tips this wasn't really useful. However, a blog post about finding passion, based on this documentary, is on it's way. A link to it will be placed here when I'm done.

14 November 2012

RST: Was it worth it?

First of all, this is my opinion about what I experienced, about the instructor, the content and the events. Feel free to comment but bear that in mind.

I took the Rapid Software Testing course so...
Was it worth it?

What did I get?

Most of the teaching material (excluding mainly/only exercises) is available for free but it turned out the actual written information was just a small part of every slide's value. During class I got to hear the idea behind each slide, engage in arguments about its content, I got a chance to ask questions in the middle of other's arguments, I got to hear how other people interpret the information and I was sometimes challenged to react to the slides when I accepted things that were not clear. All this combined added a lot of content value, value not available to download.

In case you know very little about the course's contents let's just say it covers most aspects of testing to some extent, especially those that are rarely covered elsewhere like quick tests, time pressure and how to actually figure out what to test. I have no idea how we managed to cover all the ground we did in just three days, that's a mystery.

There are only three people allowed to teach the RST course, all three are highly respected tester within the Context Driven Testing community. In this case the teacher was James Bach, the same person who once inspired me to start my quest of becoming a great software tester (read more in About me). James is inspiration with two legs and a beard! During class people spoke up who (I suspect) normally don't, people volunteered to "fail" in public who (I very much suspect) normally don't and people seemed eager to test who (I unfortunately suspect) normally don't. Inspiration was everywhere and he manage to make it that way!

Using the Socratic method, he made me think for myself and the different ideas that emerged doing that generated interesting discussions where I had to argue and explain why I came to certain conclusions. This was an amazing way of practicing critical thinking and forming valid arguments, it also made information "stick" a lot better. Kinda like being guided to answers rather than put there and the journey in itself was a big part of the learning experience.

Finally James raised my general confidence as a tester. Sure any new knowledge makes you slightly more confident doing related stuff but that's far from all in this case.
To begin with, after the course I not only know new stuff to try, I understand why and when to try them. I can argue for strengths and weaknesses and, using the same principles, I feel more confident bringing up and arguing for my own ideas.
Second, there is no perfect answer to any exercise and therefore you will partly "fail" every time. But James was really good at helping me observe that everyone failed/succeeded to some degree and that it's important to learn from the result no matter the outcome. He also, in a very clear way, explained both what I did really well and how I could improve. All and all, when I ended up in a pressured situation at work last week I could act a lot more calm and systematical when I usually do, that was a huge confidence boost for me and I trace that back to the class!

Meeting great testers
I got to meet some really inspiring people with tons of wisdom to share. Some did arguing really well, others questions, some had completely amazing ideas and some just acted in ways I would never had done myself. Just being put together with all these, generally highly motivated testers and great thinkers, was inspiration and learning on its own. At the end of the course many of us shared contact information and the facilitator offered to spread this (Layer10, the facilitator, did a great job in general I should add). I'm looking forward to hear more from many of them.

Challenging yourself
RST made me challenge myself. Like I said before, there was a certain atmosphere in the class. That atmosphere and the many challenges put out by James sped up my learning a lot. The extreme example for me was testing the Mysterious Sphere (which by the way was my highlight during the course) where I was in the spot light for quite some time under somewhat high pressure doing something I had never done before. That was an amazing opportunity which I'm very grateful for. The experience, apart from raising my confidence in pressured situations, taught me tons of things about myself like how I act under pressure (military service did I quite fine job as well but reminders are great), what I could improve in my approach to similar problems and strengths I have.

I did expect to learn a lot from the exercises in class but I didn't expect the usefulness of them after class. I've tried a couple on my closest colleague and many of the ones I did in class still makes me think and realize things. One example would be the IP address problem I described in my SWET 4 lightning talk. That still keeps me thinking (and I'm sure it would have even without the added ideas from James) and ideas pops up that I might present here at some other time. Also, when I try out some of the exercises on others I learn things I didn't realize when doing them myself, for instance how much of a difference the choice of words can play when explaining something. Finally the exercises have acted as helpful reminders of things I learned in class. For example the, by now well mentioned, IP address exercise reminds me of visualizing problems and that humans aren't good at randomizing so I probably need help when randomization is desired.

I have tons of small notes ending with several exclamation marks. Each of these notes represent some kind of  great reminder or epiphany. Just the written words on their own probably won't communicate much but here is a short list of samples just to give you a picture of what I mean:
  • Fear prevents intelligens!
  • Just because you say the same thing you don't necessarily mean the same thing
  • You don't always need the information not available, use your brain! (assembler example)
  • Doing tons of work you shouldn't do is the opposite of being responsible (assember example)
  • The trick is often to see what's not there (flower exercise)
  • Figure out what a product doesn't do, otherwise you never know when you're done
  • Bugs are not in the spec!
Oh, by the way, that list only covered about two thirds of the reminders/epiphanies written on the first 2 pages... out of 21.

Opening doors
I want to work using my skills, creativity and passion. The only "branch" in testing where I feel this is true is in Context Driven Testing. RST is the "de facto" course for context driven testers and my impression is it's a great way to open the doors I'm interested in (just like certificates are the way to open many of the doors I try to avoid). At the moment I'm in contact with two companies who have adopted many of these values and even though their interest in me is not only due to RST I imagine it strengthens my position.

By the way, just to be clear, Ericsson, where I work now, is not a bad company for a tester (see for instance Guided by fun) but I'm looking for a new challenge and it's nice to have the merits required to choose a bit.

Any special benefits of paying it yourself?
I didn't get any "special treatment" during class because I did what I did but I think it helped proving to James that I was ready to be put on the spot. For example, even when I had a bit of a slow start I still got the chance to do one of the tougher exercises (which I am, once again, forever grateful for).

I also got invited to SWET 4. I've no idea about the exact reasons for that but I think my action at least helped convince the organizers that I was suited for such a challenge/experience.

Finally, and this, despite the things already mentioned, is the most important thing to me: It proved to myself that I was ready to make a sacrifice to reach my goal and thus it proved to myself that I care a lot about my goal of becoming an outstanding software tester.

So, was it worth it?

I don't expect this course to ever "pay itself" through salary raise that can be traced back to me attending. Also, the time spent was time I would otherwise had spent with my family, something very important to me.

So, it was not worth it?

Not so fast! This course improved me as a tester in ways I didn't think possible. Sure it was time away from my family but it was weeks and months of learning, packaged in a three day course. Learning I would otherwise had to do in my spare time anyway.

RST has taught me valuable skills (apart from looking good in my resume) useful when I apply for jobs I want, jobs where parts of what I do in my spare time can be part of my job (like RST, SWET 4 and GUI testing). Also, no matter the circumstances, I'm now more comfortable and skilled in changing my current work to become more like the job I dream of. For instance I know how to argue for and against ways to test, plan test and report test.

Finally, I want be so good at what I do that it turns into an art. I think that's exactly what James and other great testers have done and I want to do it to. This course really propelled me in that direction.

So was it worth it?

Yes, Yes and Yes! This was an amazing experience and if someone offered to pay this for me I would say: "Save your money till Michael or Paul gets here".

If you get this course offered by your job, answer yes.
If you hear it's available in you region, read this and act accordingly.
If your company won't sponsor you, read my first RST post and decide if that's how you feel as well. If you ever want help motivating this for your boss, feel free to contact me (Twitter: @brickuz).

12 November 2012

Lightning talk - SWET4

Last week included both RST and SWET 4. I have so much I want to share about these amazing experiences, not to mention all the inspiration, ideas and epiphanies related to the events. However, to start off I would like to just share a written, more complete, version of my lightning talk (SWET 4). After presenting it, people feedbacked I left out important information (extra credit to Henrik Emilsson for pointing this out in a great way). Hopefully this version solves any confusion.

The talk
During RST with James Bach I was staring at a long list of IP addresses. All of them shared some kind of pattern making a validation check fail but I just couldn't figure out what the pattern was. Here you can see a 3 row example of how the list was constructed (imagine dots between the numbers and you see IP addresses). Notice that the numbers in the example has nothing to do with the actual exercise, I just made them up right now:

203 176 15 117
74 101 255 103
65 18 247 0

At some point I started thinking about visualization and since I didn't have any better idea I just went crazy with the graphs in Excel. Most of these didn't provide any valuable information but two stood out:

With respect for the class I won't go into details but both the "boxes" in the first one and the "zig zag" in the second reveal useful clues to the mystery.

When looking at the graphs generated by Excel I also had an idea about a graph I didn't know how to plot. The idea was a box there each side represented one of the four numbers making up an IP address (0-255). By drawing a line from side to side a geometric four sided shape would appear in the box representing an unique IP address:
Example: The blue line would represent
an IP address similar to
starting at the top and ending to the left

Since this was during RST I asked James if he knew how to plot this. He said he probably could but we didn't speak more about it.

Some days later I met James again when attending SWET 4. He immediately showed me an exciting idea. The box apparently didn't reveal any useful information as a graph. However, if you instead drew your own shapes and used the IP addresses these shapes represented (same basic principle), it became an interesting way to generate test data and visualize data coverage at the same time. Brilliant idea!

There is a lot of things you can learn from this, the power of visualization being one. But I want to highlight three underlaying decisions I find crucial:
  1. When stuck, just do something
    Even if the graphs would have provided nothing, so would more staring. Just doing something can sometimes kick your brain into gear and give you new ideas (like the box graph for instance) so even when the initial act is fruitless it might get you forward.
  2. Don't overthink cheap tests
    I could have analyzed what kind of graphs to plot but plotting one cost just 2 clicks so why care? If it's really cheap, just do it!
  3. Share your ideas
    If I had decided not to ask James, the great idea with using the box as a test data generator would never had occurred. When something seems useful but you can't figure out when or how to do it, share it, cause others might!
In addition to James Bach, who played a key role in this, and already mentioned Henrik Emilsson, I would like to thank all the other SWET 4 participants for inspiration:
Torbjörn Ryber, Rikard Edgren, Martin Jansson, Sigurdur Birgisson, Sandra Camilovic, Anna Elmsjö, Johan Jonasson, Maria Kedemo, Oscar Cosmo, Saam Koroorian, Simon Morley and Joakim Thorsten. I had a blast!