TLDR; Start emulating people, use your job to learn, keep training, identify other people’s strategies, experiment to see what works for you, make your own tools, harness your uniqueness.
Lessons Learned from Arnold Schwarzenegger Applied to Software Testing
Everyone that is successful in their discipline and is prepared to tell their story, we can probably learn lessons from. Particularly if they are someone who’s really driven toward certain goals.
With Arnold Schwarzenegger, you’ve got the benefit that he has had multiple careers or multiple things that he has done throughout his life, and each one of them he has had to work for and practise hard to achieve.
I read Arnold Schwarzenegger Autobiography “Total Recall” and I made some notes, and I’m going to turn these into applied notes for learning how to improve our testing.
Start with Emulation
To start, Schwarzenegger read lots of muscle magazines and identified body builders that he wanted to emulate.
Because, when we start out, we have no idea what is possible. What we have to do, I guess, is read as many books as we can, take those as a “this is what can be achieved,” baseline, but also people who make their work public:
- people who write blogs,
- people who talk at conferences,
- people you see on YouTube.
Everyone that makes their work public, they are targets for emulation.
You have to look at :
- what they’ve done,
- the results they’ve achieved
And try and work backwards to learn the the steps necessary to achieve the same results that they have described publicly. And then take those steps, or decide not to. You’ve got a choice. You could do that or not do that, but make a decision.
Essentially, they worked at it; you could work at it and achieve the same results.
Use Your Job
One thing he did, and, when he was growing up, he had to do mandatory military service in Austria. He went into or tried to get into the tank division because then he could learn expensive driving skills, because you have to learn how to drive a motorbike and a car and a truck and a bunch of other things before they let you in a tank.
The lesson here is we have to use our work environment, whatever work environment we’ve got, as a way of learning, use it for the skills and experience and not just the money. If you only do this work for the money, you’re not going to advance. You might get lucky. You could advance and get money (then you are really lucky).
But focus on the advancement part so that, even when your job sucks to high heaven, you’re pulling as much value from that as humanly possible to advance.
Keep Training - no excuses
Arnold worked in a gym for a long time when he was building up to the muscle stuff. That didn’t leave a lot of time for the intense training he wanted to do, 4 or 5 hours of intense training all the time. But you can’t do that if you’re a job. What he did was he trained differently. He did an interval of training in the morning and then again in the evening, and sometimes he would squeeze in some training at lunchtime. He didn’t stop training. He put it into the environment he had, because sometimes you have to go beyond your work in order to learn and train if that’s how you really want to approach this.
He talks a lot about training partners.
I don’t have a training partner, so I compensate with strategies:
- I read lots of blogs,
- I find people to emulate,
- I try and reverse engineer what they do
- I make lists.
- I make lists of things I have to learn,
- things I don’t understand,
- technology I don’t understand.
I focus on the technology and the processes that we’re using in the workplace that we’re currently in. I really hit those hard and target those hard, till I’ve learned those short term.
And long-term, I have a list that I continue to build and work against because I don’t have a training partner, so I have to have strategies that supplement that learning and push me going forward.
I don’t know if it’s effective or not, but that’s what I do. I have a list of things to study.
Resolve not to under-prepare
One of the things that was interesting. Arnie was going in for a competition, and he had some delays in getting there, and he was in a different country, and he didn’t have access to his normal training thing. He turned up to the contest, and he lost.
He did not train. He under prepared. And he made excuses for it. And he lost.
A lesson he took from that was that he was never going to lose because he didn’t prepare hard enough. You can always train. Even if you are not working, you can be studying or preparing. Even if you are travelling in hotels, you can still be reading blogs, you can be using your phone, you can always be prepared, you can always be pushing forward.
He was never knowingly, going to be not at the top of his game. Underpreparation was not going to happen.
We can do that as well:
- We have to be ready for, in general terms, testing.
- We have to be ready for the environment we’re in:
- so focus in on the technologies that they’re using,
- the techniques,
- the processes,
- the tools.
Whatever is going on in the environment, we need to be ready for. And we need to be ready in general terms as experts and keep ourselves up to date.
Make your own tools
There’s a description of Joe Gold, one of the guys that has gym and gym equipment, and Joe Gold essentially built the gym equipment; because, if you need some tool support and you don’t have it - build it or get someone else to build it for you.
If it’s custom for you, then it doesn’t have to be pretty. It can be big and horrible, so long as it is functional and as long as it works.
We can do very minor things to make it work. It’s one of the things we cover on the Java Testers Blog, how to build little tools out of our
@Test methods to create minimal tools that do what you need.
Because it was competition that Schwarzenegger was doing, he targeted the body builders at the top of the game and so that he could measure his progress against them and he could see exactly what he needed to improve in order to get to their position and beat them.
We don’t necessarily have to compete with other testers in order to beat them, but we can see examples of what people are doing.
One thing that he did was: he, with his training partner, would experiment with different ways of training.
Each time they did an experiment, they would analyse it to see which part of their body hurt most, what results did they get, and they would keep lots and lots of notes. Those notes eventually turned into a book; his Encyclopedia of Bodybuilding, but essentially it was a reflective process of doing experiments and taking notes.
Harness your uniqueness
One of the things he learned from that was that everyone needs a different training process because their body responds differently. Same in testing. We have different backgrounds. We have studied different subjects before we get into testing. We like to read the different types of books.
Not all of you are going to read Schwarzenegger’s biography. Not all of you are going to go and read “The Eerie Adventures of the Lycanthrope Robinson Crusoe”. We are going to do different things. You’ve got different interests, different areas of expertise, and that’s what makes us unique. We can pull that information into our test process to make it individual for us.
If you only take the path other people are taking, chances are you won’t even get the results that they did, when they followed that path, because they did other things they didn’t tell you about.
It’s important to build your own path to become a better tester.
And choosing your own path is what Arnold Schwarzenegger did, and that’s how he managed to get to the top.
One of the things he stresses right at the end (but mentions all they way through) is repetition.
- Reps, reps, reps.
In the book, he’s saying we changed the reps that we did for the muscle building. When he was learning speeches, it was repetition, repetition, repetition. When he was learning the scripts, repetition, repetition, repetition.
The question is:
- Are we doing enough repetition with our practising?
- Are you using the tools?
- When you come back to a tool and you haven’t used it, do you forget?
If you’ve forgotten how to use it, you haven’t done enough reps to get there to build the muscle memory of how to use that tool.
If you’re looking at HTTP messages going back and forth between the system and you forget what the message means, you haven’t put the reps in to learn it.
These are all hints as to where we need to focus because they are weaknesses.
We’ve got Google, we can look things up, and your Google-Fu can be improved to get better, but, fundamentally, we want to do as many reps as possible to get as good as possible.
I’m just using Schwarzenegger’s book as an example here. Hopefully, you have people that you’ve read that have put their lessons learned on the line and you can apply some of those or take them and mutate them into something that helps you move forward, because, ultimately, find your own path forward for improving your testing.
- Arnold Schwarzenegger (A.S.) read muscle magazines and identified body builders that he wanted to emulate
- use the people who make their work public as targets for emulation and take the steps necessary to achieve the same results that they describe publicly.
- A.S. targeted the tank division for his Austrian military Service so he could learn expensive driving skills - motorcycle, car, truck, etc.
- use your work for skill and experience advancement as much as possible, not just money
- A.S. jobs in a gym didn’t leave much time for long periods of intense training, so he trained differently, small sessions before, after work, and lunchtime
- keep training, commit time outside work to advance and practice,
- deliberately focus your practice on areas that are weak
- A.S. attributes his success to working with of a training partner
- I have no training partner: I review blogs for ‘things I need to learn’ and decide if I want to try and emulate what that person is doing. I use strategies to allow myself to be my own training partner. I keep notes, I review them, I write down objectives, I create list of ‘things to study’. I don’t know if that is as effective, but its what I do.
- A.S. had some issues prior to a competition and lost, he resolved never to under-prepare “From now on, if I lost, I would be able to walk away with a big smile because I had done everything I could to prepare.”
- keep studying, practicing, etc. And when you know more about a particular environment or role, then double down on the techniques, technologies, skills etc. related to that environment. Be prepared.
- A.S. describes Joe Gold as someone who builds the gym machines he needed.
- if you need tool support, and no tool does what you need, create simple tools which fit the gap
- A.S. describes competing and that he was still targeting specific body builders, but now, not to achieve the same results, instead to beat them, but he knew he needed to improve, and we worked hard on improving
- objectively analyse your test approach and skills, identify where you are weak, and take the steps to improve
- A.S. describes situation with Reg Park where he learned that the results achieved were due to a massively different training routine that he was using, or even considered possible. A.S. was training a muscle group three times a week. Reg Park was training every day “with a mind blowing amount of weight”. And this meant creating new training exercises.
- public results are one thing, but if you aren’t achieving those results, you need to change your training approach, and sometimes what you think is not possible, is well within reach.
- A.S. describes working from first principles to create new exercises and variations: “we would choose an unfamiliar exercise and each do sets and reps until we couldn’t do any more. Then we’d analyze the next day which muscles and sections of muscles were sore, and note it down. Working this way, we spent an entire year making a systematic survey of our bodies and building an inventory of hundreds of exercises and techniques.”
- have you done this? I haven’t come close to this level of reflection and analysis yet. Time to figure out how to start.
- A.S “A key discovery we made was that you can’t just copy someone else’s routine, because everyone’s body is different… You can take an idea from another athlete, but you have to understand that your body may respond very differently”
- experiment and make your training and development routine your own. Find system categories you like to test. Create your own exercises and experiments.
- A.S. throughout the book attributes proficiency to “reps, reps, reps”
- if you forget how to use a function in a tool, you haven’t done enough reps, if you forget how to apply a technique - more reps. Reps, reps, reps.
If people have succeeded in a discipline, and are prepared to tell their lessons learned. We can probably learn from them and apply a variation of them to our own discipline and development.
- 20161214 Arnie’s Lessons in Practising Testing
“Learn How to Test Better” - so that was a pretty bad Arnie impersonation. But I was reading Arnold Schwarzenegger’s autobiography and in there. What came across to me was the practicing that he put in, that he still puts in now. The massive amount of very targeted and very focused training that he did for his weight lifting and his muscle presentation type work that he was doing. So one of the questions is - are you practising enough and are you being focused in your practicing? Are you focusing on particular technologies, are you focused on particular skills. The other thing in here was repetition, how many reps of that practicing are you doing, are you really testing it, are you really using those tools, are you really drilling those skills in? If not then lessons in testing learned from “The Terminator”
- 20161215 On training partners
“Come with me if you want to live”. Oh its me, not Schwarzenegger. In his autobiography Arnold Schwarzenegger talks a lot about a training partner, and how much he relies on having someone else to train him and train with and push what he is doing and to work with him so they can collaborate and everything else. I don’t have a training partner - aww - but what I do though, is… I use blogs, so I’ll read what everyone has written publicly then I will decide if I want to do that or emulate that person - so I use everyone on the planet as my training partner to see what they are doing. But also I make lots of notes, lists of objectives, lists of things I want to learn. So I have strategies to compensate for that. A training partner might be really useful but I don’t have one so I compensate for that with strategies to help me reflect and push me forwards. What do you do?