Showing posts with label RST. Show all posts
Showing posts with label RST. Show all posts

14 May 2013

Key testing skill: Thoughts into words

Background
During SWET 4, one thing that really struck me was how amazing the other participants were at quickly and accurately turn their thoughts into words. It was probably the most striking difference I noticed between myself and these experienced testers. Since then I've kept thinking about this skill and how to improve it. This is my thoughts so far...

Why
One of the early slides in the RST material starts with: "Testing is in your head" which I think sums up why this skill is so crucial. You need it if you want anyone to understand anything about your testing. Some examples; you need it to get:

  • Programmers to understand your bugs
  • Stakeholders to understand why these bugs are important
  • Your employer to know why (s)he needs you
  • Your colleagues to know what you're doing and how it's going
  • Anyone to understand your problems
  • Stuff on paper (strategy, results, methodologies etc.)
  • You to understand for yourself what you are doing/have done
Notice the list doesn't mainly consists of stuff only some test thinking expert needs to master, it's stuff every tester needs to master!

How can you improve this skill?
Since this skill is fundamental to testing you will practice it to some degree by just doing ordinary work but the ideas I've listed below are ways I've found more efficient either as ways to practice the skill or to get feedback on how well you're doing.

Answer the fundamental questions
For many questions the answer is far less useful than the process of getting to an answer. Some examples in testing:
  • What does it mean to test something?
  • Why do we need testers?
  • Can't programmers test themselves?
  • What's the tester's role?
  • What is a bug?
  • Do testers need education? Why? Why not?
  • Can we find all bugs? How? Why not?
  • How do you know when you're done testing?
  • How can we measure efficiency of testing?
  • How do we know what's important?
  • Why do we run extreme tests?
  • Can we on beforehand figure out what to test? How? Why not?
  • If we know the status of a product shouldn't we decide whether or not to ship?
Can you answer them? Is your answer a quote from some famous tester like "a bug is something that bugs somebody who matters"? How do you know who matters? How do you know what these people think? Is it enough if one out of a million of these are bugged? Two? Five? A hundred? If we expect someone to matter later who we expect will be bugged about this, is it a bug? If people who matter don't know about something, e.g. a missing link, but would love it, and be bugged if it was later removed, is the fact that it's missing a bug?

The questions I asked above is exactly the kind of questions I want to you ask and try to answer. It's a kind of mental gymnastics that will not only help you improve your ability to put thoughts into words but it will also help you learn a lot more about testing (which will be a common theme for the rest of this blog post).

Blog
I brought up the importance of blogging way back in my 2012 refelction posts, there you can find a bunch of motivational links and tips on why to blog.

Anyway, I get two things out of blogging relevant to the topic:
  1. Feedback on how well I present/explain my thoughts (if people read and react)
  2. An efficient way of practicing the act of putting thoughts into words
The second point depends on that I write about my own thoughts and not just reference what other people say.

Talk about test
Talk to colleagues, speak with people on Twitter, go to conferences/meetups, present. All these things force you to practice the art of putting thoughts into words, some of them also force you to do it rapidly to keep the conversations going which adds another dimension (which, for instance, blogging doesn't).

Explain what you do to non-testers
Have you ever tried explaining what you do and why it's important/interesting to someone like, say your mom? Or boss? Or best bud? Or some programmer you know? Or maybe you from before you became a tester ("hey myself, you're going to become a software tester and you'll love it, let me explain to you why!")? Try it, it's a lot harder (at least for me) than you might think. Also it really forces you to look deep into your thoughts to find out what things really mean to someone not familiar with testing (sometimes it helps you figure out what stuff really means in a more general/other context than testing).

Ask for feedback
It's important to practice but it's also important to know if your efforts are paying off. "Am I really better at explaining what I do know?". You can ask pretty much anyone how they interpreted you explanations and/or how easy they though your explanation was to understand. Here are a few quick, general example:
  • Was my last bug report clear to you? Did you miss something?
  • Was my last debrief useful? What could I've done to improve it?
  • Did you understand my explanation or what part was hard to understand?
  • Is it clear to you why I think we need to use an exploratory approach?
Question stuff
If you walk around and accept not understanding what others try to communicate to you I believe there's a great risk you do the same about your own explanations/thoughts. Try to get out of this by questioning anything you don't believe in and ask for another explanation whenever you don't understand something. I've found this to really help me question my own believes, assumption and opinions.

Good question to ask yourself after any explanation:
Would my dumbest colleague understand this and why not?

As a recommended reading on this I really love this blog post from Tommy MacWilliam.

Mentor someone
I've just done this briefly but I find it a great way to force myself to explain in detail what I'm doing and why. It also provides me with a great possibility to get feedback, both verbally and as I monitor my pupil's improvements.

Rapid Software Testing
The Rapid Software Testing course is a lot about trying to get you to think like a top notch tester. One of the key aspects practiced during this course is explaining what you do (putting thoughts into words) and build the courage to do so. I highly recommend the class for many reasons, this is definitely one!

Summary
Putting thoughts into words is key when doing any form of testing (planning, executing, bug reporting, following up etc.). Ways I've discovered that works well for me to practice this skill is:
  • Question the answers, why is this answer true? Is it really true in this context? When is it not true? Why?
  • Try to come up with your own answers and refine them using questions
  • Blog, or write about testing in some other way
  • Talk testing whenever possible
  • Ask for feedback
  • Don't accept not understanding neither your own nor others explanations
  • Become a mentor to force yourself to communicate your thoughts
  • Rapid Software Testing is a great course to help you improve this skill

23 January 2013

The year I became a passionate tester, part V

November 1st
Worth a special mention. The day was crazy for several reasons but three highlights:
  1. Securitas Direct asked for a second interview
  2. Invited to SWET 4
  3. My note taking post was retweeted by Michael Bolton (may sound silly but it was huge to me at that point)

RST (Rapid Software Testing)
RST started great, I was on top of my game, asking relevant questions, thinking, observing, reacting... all until the first break. I don't know exactly why but I lost track after that (had a great time anyway but was not happy with my own contribution to that).

When apologizing to James he responded:

I was going to say you should talk more.
First thing tomorrow you'll see something you haven't seen.
...
Well, don't worry about... or worry if you want, because I'm going to have you do the Mysterious Sphere problem.

I immediately scanned google, RST blog posts and other resources but found nothing.

A good ten hours of sleep made the trick and day 2 I was on top of my game again! Just before lunch James turned to me and said something like:

After the break we'll see Erik here, test the Mysterious Sphere, the only exercise that has made anyone cry during my class.

It was amazing! I still go "Ohhhh! That's why... I should have... what if... now I get it!" when I think about it. I'm forever grateful I got the chance despite my bad start!

Day 3 wrapped up an amazing experience! I left RST with my precious blue pouch (RST graduates will understand), new contacts, a raised confidence in myself as a tester and 21 pages of sketches, ideas and epiphanies. Thanks James Bach, Tobbe Ryber, Robert, Niklas, Per, Tiago, Layer10 and all the others that made this experience possible/invaluable! If you haven't participated yet I suggest you check out David Greenlees post on how he got to RST and schedule a meeting with your your boss!

Get the most out of RST:

  • Get there well rested (important!), the course will demand a lot of you.
  • Look up the word heuristic to make sure you understand it.
  • Show you want to be challenged (be active), it'll make the course even better.
  • Check out the RST slides before, I think that helped me stay focused on the discussions.
  • Don't care to print the slides and bring them to the course though, as slides will be skipped, order changed and the exercise slides are hidden anyway.
  • Faking will only lead to problems.
  • Read up on the Socratic Method (a low pressure example, expect more "pressure" in class)
  • Make sure you know how to get to the facility, have travel tickets in place etc.
  • Ask questions!
  • Drop the idea of finding the ultimate answer to the questions asked (important!). Most questions will not have one! Accepting that will help you both learn and contribute more.
  • Don't worry, things will just happen and you'll do great!
Thanks to Johan Jonasson, Joel Fridfjäll, Joel Rydén, David Månsson for contributing to the list together with James Bach, Michael Bolton and Paul Holland.

SWET 4: Intro
Please read Johan Jonasson's great post on SWET 4 for details on the event. Maria Kedemo has also shared some thoughts, especially check out the "what happens now" section, great reading!

After receiving my invitation I called Johan Jonasson:
- Am I really qualified for this?
- Go there and find out!

It was amazing! The presentations were interesting, the following discussions even more so, the lightning talks were cool and the people inspiring, I had the time of my life!

A funny thing: Maria Kedemo was presenting "Model based exploratory interviewing" or, in other words, her interviewing model when recruiting testers for Securitas Direct.

On the topic of switching roles: SWET started 2 days after RST ended, felt a bit weired to go from being James "unknown student" at RST to become his "peer" at SWET. Weired as in a good, interesting way I should add.

Want a quick reason why I think Securitas Direct and Sectra are two great companies for testers by the way? Both companies' test managers were among the 15 invited to SWET 4 (Johan Åtting couldn't come though and sent Joakim Thorsten instead).

I need a separate post to describe this crazy experience in any detail but one advice: If you ever get the chance, take it! I was really intimidated by the concept and merits of the other testers but as I arrived I quickly understood why great testers love peer conferences, you (can) learn so much! Going was definitely one of the best decisions this year!

One final advice: Prepare your lightning talks, I changed topic ten mins before walking up, the result was messy.

Special thanks to Torbjörn Ryber, Henrik Emilsson and Rikard Edgren for arranging this amazing event as well as giving me the chance, and thanks to Martin Jansson, James Bach, Sigurdur Birgisson, Sandra Camilovic, Anna Elmsjö, Johan Jonasson, Maria Kedemo, Oscar Cosmo, Saam Koroorian, Simon Morley, Joakim Thorsten... and myself... for helping them make it amazing!

New job
After interesting discussions, cool exercises and talks to potential future colleagues it was time to make a decision. In the end it came down to details; both Securitas Direct and Sectra have amazing testers, culture, test managers and products. Finally I decided to go for Securitas Direct choosing, what I interpreted, as the bigger challenge over Sectra's more helpful environment (all but one tester at Securitas Direct work in Malmö, not Linköping where I work).

Anyway, I think Joel Ryden (brilliant guy, test consultat at Securitas Direct and former employee at Sectra) summarized my situation quite well: "Whatever you choose it'll be a great choice". I'm thrilled to start my new job at the end of next week, something I'll talk more about in a later post!

Jiro dreams of sushi
This documentary is great enough to mention here. Watch it!

Kids
Finally... kids can smell when you really need sleep (like the day before RST and SWET). But at least that gives you a lot of time to hug them before you leave. Jokes aside, coming back from SWET 4 having my two boys rush into my arms was by far the best of all the cool things in November. Be passionate about testing but remember what's most important!

My boys pairing up to test/hack/crash a tablet.

Summary
November was crazy, feels like I've just mentions half the cool things that happened! Anyway, three key take aways:
  • Don't worry about if you're good enough or not, just get out there and learn until you are!
  • RST is a mind-blowing course that I recommend to every tester!
  • Practice putting thoughts into words (blog, reflect, join debates...), it's a critical skill to anyone, not just testers!

Starting level: Prepared
Finishing level: Self-recharging bomb of inspiration

09 January 2013

The year I became a passionate tester, part III

This is the continuation of my 2012 reflections series, reading part I and part II first is recommended.

The great adventure you will not hear about
My greatest adventure this year is the journey from a heavyweight to lightweight test process in my team at Ericsson. However, that story just doesn't play well with the month to month format so I'll save that to some rainy day in a distant future. However here is the 10 second version and I'll also provide you a few lessons learned at the end of this post:
  1. I tried to introduce exploratory testing
  2. I screwed up badly
  3. I finally started reflecting on my work
  4. I started to turn things around
  5. I became we
  6. We kicked ass, testing was more fun than ever
  7. People (at least some) started to take note
  8. We kicked ass, testing was better than ever
  9. We started preaching about what we thought was amazing
  10. Job finished, result was, we believe, a heck of a lot better than traditionally (talking quality of test, motivation and how much we learned).
July and August - Making promises
Mostly vacation, a lot happened but only one thing suited for this post.

After having my RST (Rapid Software Testing) course request put on hold over and over since May, with no good explanation to why (came later), I promised myself two things if the request was denied:
  1. Make myself available to job opportunities
  2. At least look into the possibility of paying the course myself.
September - The final no
Early in September I told my fiancée I wanted to attend RST, with or without support from my employer. She simply answered "if that's what you really want, I trust your judgement" (I love my fiancée even more sometimes).

When I finally got a no from my job I simply requested vacation and registered myself for the course and it actually felt exactly that easy. I felt ecstatic for so many reasons:
  • I had signed up for RST, the course I wanted to attend so badly!
  • James Bach was the person inspiring me to start this journey, having him as instructor meant tons to me!
  • I had proven to myself that I was really committed to becoming a great tester!
The countdown had begun...

Insights so far
Not too much of interest in July, August and September, instead, let's look at 3 useful insights from the adventures at work.

Schedule time for reflection
Continuous reflection is key to keep you on track but I noticed the more I drifted off course the less I naturally spared time to reflect. One change that rendered great results for me was scheduling time for reflection. In my case I dedicated 1 hour per week where I dropped everything and just focused on what I was doing, issues, what my current direction/goal was and making models...

Visualize what you're doing
One of the turning points, going from chaos to success, was when I created my first visual model of what I was doing. The model was simply a timeline (for the feature/deliveries) where I started to add all the activities I was doing (without details). From that model a new one occurred; a model describing how I wanted to work. That model could easily fit on a paper and became our central tool when describing our work, discussing improvements and when reflecting in general. The model also helped me explain what I was doing better. In retrospect I think making a similar model based on how we use to work would have made the model even more powerful.
Also, the moment we could visualize our status, coverage and plan (spreadsheet with some fancy additions, can't talk about content though), our credability went through the roof.

Challenge your own ideas
One exercise I've found useful is simply to defend things I believe in against a ferocious attacker (either played by myself or, even better, a colleague). I've found it useful not only to evaluate ideas but also to improve my understanding of them, practice arguing and put thoughts into words.
Example:
- We should stop enforcing testers to document test scripts it's way to expensive.
- But what happens to traceability?
- We never use scripts when we check back on previous work, a well written title is enough. 
- But we save money each time we reuse a test case!
- That's a great idea but in reality we rarely reuse test cases since it's quicker to write new ones and also the product still changes too rapidly to make tests valid even a month later.
- But it's a great way for new testers to learn how to test!
...

Starting level: Inspired
Finishing level: Committed


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?

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

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

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

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

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

10 October 2012

Why I've signed up for RST instead of buying a kick ass sofa and new computer

I tried to get this course paid by my employer but due to budget cuts and the fact another testing course was ordered to the company it was rejected. Instead I paid for it myself. So what drives me to this:

Most expensive things bought so far
  1. My current apartment
  2. My current car
  3. Previous car
  4. Previous car
  5. RST
  6. Stroller/baby buggy
  7. TV
  8. Sofa
  9. My fiancee's computer
  10. Bed
So why RST?
  • Because the testers I admire and know in real life praise it
  • Because the testers I admire and study recommend it
  • Because James Bach has been the single most important person in my transformation from "well it's a job" to "I love this, give me more"
  • Because it's the most respected course in the branch of testing I believe in
  • Because I don't get a chance to be challenged very often at work and that's a fundamental part in how James teach
  • Because I've studied the work of both James Bach, Michael Bolton and Cem Kaner with great interest
  • Because I long term believe this will help me form a career I will really enjoy
  • Because I'm in the middle of making my current work fun (not only for me) and I believe this course can teach me valuable tools for that
  • Because I've never found a negative review
  • Because I believe in skill and experience rather than assumptions
  • Because it's a chance to meet other highly motivated testers
  • Because I believe this will make me a more professional tester
  • ... but most of all...
I've always been fascinated by people who turn what they do into an art, like a waiter who makes you wanna come back even if the food is crappy or the girl who cleans our stairwell who cares more about the building than all of us living here combined. The passion these people radiate and the level of satisfaction they seem to enjoy has always inspired me. That's what I'm aiming for, I don't intend to become better than everybody else, I just want to become the best I can be and inspire others to do the same... and that's something I believe RST can help me with.

... 25 days left.