Gamifying Your Software Testing Career & Workplace: Part 1
By Melissa Eaden & Heather Reid
It’s been a long accepted fact that games can facilitate learning and increase learner engagement allowing people to understand new skills and ideas quickly. When you are faced with a confusing working environment or trying to learn a new skill, sometimes adding just a little fun to the mix can reward you with some awesome results for both your career and workplace.
Part 1 of this series shows how using games to learn concepts and ideas, which you can later apply to anything you are testing, whether directly or indirectly, has value for your career. Games can teach us about pattern recognition, organisational habits, timing, relationships, and chaos theory.
Part 2 provides suggestions for your workplace and gives ideas for adding a little bit of gaming culture which can let a team self-organise better, can create team spirit, and help team members gain a voice in conversations where they previously might not have had one.
Gamifying Your Career
When you think about how to gain new skills and knowledge for your career, you might think of conferences, books, or various talks. Those are all great methods of gaining skills and learning, but another more fun and interesting way to learn new skills, or knowledge, or improve on what you already know might be to play games. From puzzles designed to focus on maths to games which help with pattern recognition, planning, and optimisation. You can use games to help you level up any number of skills you are wanting to learn or improve.
Building Up Your Skill Sets Through Practise
If you are not familiar with the two thinking systems, it’s a theory by Daniel Kahneman that describes human thinking in two forms, namely System 1 and System 2:
“System 1 operates automatically and quickly, with little or no effort and no sense of voluntary control”
“System 2 allocates attention to the effortful mental activities that demand it, including complex computations”
So System 1 is fast and intuitive, while System 2 is slower, more deliberative and logical.
It’s possible that playing various types of games and activities could help shortcut different kinds of System 2 actions, skills, and thoughts and push them into System 1, saving you time and mental effort when using similar actions, skills, or thoughts during work related tasks. It’s also possible that practising complex actions and skills through games and activities could make System 2 processes so quick that they appear to be System 1 processes.
Logic puzzles, SIM games, maths games, and games dealing with pattern recognition can allow you to practise abstract skills around pattern recognition. Practising these skills can save you time and cognitive load on tasks you do on a regular basis, in addition to freeing up time and space in your working memory to do more complicated things. These all translate into useful skills for your career as a tester.
Active Note Taking
Sometimes the easiest skills need a new twist to speed them up or make them more interesting and valuable to other readers and still get the main points across. Active note taking can add a game-like dynamic to your personal notes, or how you organize your presentations or meetings.
Have you ever played the game Pictionary? You draw pictures to illustrate the word(s) or give clues to them. You work as a team and against the clock. You cannot use verbal prompts to help people guess the answer. Active note taking is a bit like Pictionary.
Active note taking is essentially describing what you have read/heard/discussed in your own set of keywords or drawings. It involves actively thinking about the current situation and noting it as you understand it.
“A picture paints a thousand words”, a quote we’ve all heard many times before. Sketching ideas down as somebody speaks can help demonstrate to them what you understand from what was said. You don’t need to be an artist to draw a picture that helps to illustrate your thinking or understanding. Stick figures or boxes drawn on a page saying “this goes here” can be sufficient.
You can try this out quite quickly within your team. For example, everyone has 30 seconds to draw what they think management believes automation is or will bring them. It wouldn’t be uncommon to see some magic wands or silver bullets amongst the drawings. From there you could expand the topic set to cover other areas of testing so you can all visually see what different topics mean to different people.
Christina Ohanian spoke at European Testing Conference in 2016 about unleashing your creativity which has some excellent pointers for getting started. The 50/50 Rule of Visual Note-Taking is also a useful quick start guide that includes pointers on how you can structure your notes. Stephen Mounsey has some blog posts about Visual Thinking which is a great example of sketch note taking.
Practising Logic Puzzles Can Help With Logic Problems While Testing
Think back to your primary schooling and you can probably point out any number of times you’ve come across interesting word problems. These word problems usually, at first look, seem very easy. Then the work really begins when you realise very quickly you might have to use a more complicated equation, or work out the problem in steps rather than figure it out all at once. These word problems are simple examples of logic puzzles.
Logic puzzles can come in many varieties. Some of the more well known are scenario-based with several people, who all have an action, or an item and you have to understand who has what, or did what based on the result you are given. A great example is the game Clue.
These scenarios sound familiar to us as testers because we often write steps which detail out the logic, or business rules, of an application. We can explore a logic pattern and take notes on the interactions which produce responses and create a matrix or some kind of documentation from that information. The information collected informs us and allows us to apply it to the current situation as well as other similar situations. Practising these types of games could generate common patterns of logic which can quickly be applied to testing problems.
Logic grid puzzles are a kind of puzzle which you are “...given a series of categories, and an equal number of options within each category. Each option is used once and only once. Your goal is to figure out which options are linked together based on a series of given clues.” (7)
If compared to everyday testing practices. Logic grid puzzles usually present one unique solution. These offer options and categories and have the rule that you can only use them once, and then stipulate you should reach a specific result without dictating how you get that result.
Using puzzles like this can increase your ability to look at interesting patterns, point out workflows, or even help with business logic.
If you feel you have a hard time identifying alternate workflows or building variable matrices, logic puzzles can be a good way to get some abstract context on these skills. Working logic puzzles or logic grids can be compared to creating testing matrices for pairwise testing. The way logic grids work with a set of variables and only work in a unique way could be considered great practise for application system thinking where workflows are concerned or even setting up testing matrices that use the pairwise testing practice.
Maths Always Need Practise
Dealing with a lot of figures and calculations can be overwhelming. Something that might help a tester become more comfortable with it could be games that focus on equations or maths in some fashion.
Sudoku is a maths logic puzzle which you need to have all the numbers, 1-9 somewhere on the line, both vertically and horizontally. There are many sizes of these puzzle types, variations which include roman numerals and the English alphabet.
Another kind of mathematical expression you can look at are magic squares. These are based on an algebraic formula with positive integers. The numbers, vertical and horizontal, should add up to 15.
If you would like a different encounter with maths, you could try something like Variant which is a 3D video game which teaches calculus. At the very least you have fun learning more about higher maths while playing a kickass game.
Learning The Art Of Planning, Timing, & Managing A Project
Managing any project can be a little tricky. There are a tonne of software tools out there to help folks manage people, time, and resources. The unfortunate part is that you actually have to know how to manage each of those to be successful and a tool only gives you as much information as you put into it. You can only get so much information out of people. You only have so many servers, computers, or databases to handle any one problem.
Project Management Via Games
While testers don’t often have to manage projects themselves, they usually have to manage their time and access to resources, like databases, or even access to people with information via setting up meetings. To gain more skills in time, people, and resource management, look no further than your favourite simulation game, or SIM.
Learning how to manage people, different types of people, resources, and time constraints is not an easy thing to do. You have to quickly figure out who is capable, what is actually available for everyone to work on, and how much time it could take to accomplish a task.
A great example of a SIM that has all of these elements is Planetbase. In the SIM, you have different types of skilled folks which need to do different jobs to keep the facilities running. You also have events which can speed up or slow down how fast your folks can work on any one task. Keeping all of that balanced while maintaining a target growth of the base over time can be pretty challenging. Being successful in the game requires timing, understanding of the environment, and knowing the number of resources, and skilled folks you have to accomplish the tasks.
If all of that sounds pretty familiar, it’s because it is. Software project management, especially for agile-organised teams, can recognise the similar skill sets involved. Whether you are managing at the project level or trying to find new ways to manage yourself, the lessons you can learn from a game can translate into practical knowledge and skills over time.
Working Towards Deadlines
In some places, deadlines are not seen as necessary, in others, it can be a do-or-die situation where a deadline is important enough to make you do as much as you can to meet a deadline and accomplish a goal.
Games that are geared in that direction will have timed achievements or achievements which are timed. There is an important, but subtle difference between these two types of gaming events:
Timed achievements will often have a clock counting down to zero. If you’ve played first-person oriented games, this can often be the case. The goal can vary but two types that are often seen are: reaching a target or checkpoint and capturing as many items as possible. If the goal isn’t accomplished in the amount of time set, then it’s considered failed, and you have to start over. Good examples are racing games like Mario Kart, or gathering games Bejewelled.
Achievements which are timed will be geared towards a stopwatch approach of seeing how fast you can accomplish a particular goal. Example of this would be completing a level for a game under a certain amount of time, like finishing a chapter in Diablo in under 10 minutes.
Where it gets really interesting is if the game somehow combines the two or gives you extra points for achieving the goal in time, and for how fast you achieved it. See Diablo and similar games for this kind of achievement farming!
This idea can apply to testing in a few ways:
Learning to manage time, tasks, and distractions to complete testing is always important; practising how to do that via abstract learning methods is useful.
Learning how to pace yourself to a deadline is a valuable skill to have. If you can accurately judge your capabilities and give an accurate estimation of when you might get your work completed, then those around you develop a trust in your skill set and capabilities.
Learning how to identify blockers which could slow your ability to reach a deadline is a crucial skill. Being vocal about those blockers and understanding the impact can allow you to quickly move around them to reach your target.
With games of this nature, they take practise to achieve the goal, whether it is timed or not. Only by practising an abstract skill like time management and blocker identification can you get better at deadlines. Practicing these skills in a group setting can be a very effective way to get a team to bond and understand how they can help each other reach a goal together.
Workflows are patterns. Code could be a pattern following a sense of logic. Testing could be seen as pattern observing or looking for anti-patterns. Games, especially video games, are often a recognition of patterns to get through obstacles or achieve goals. A classic example of a game that use patterns to achieve a goal is Tetris.
Using the same techniques in testing can allow you to see testing as a game, using tools, and ideas, to see new patterns, recognise anti-patterns, or help build better ones.
Usability, Accessibility, And Security All Use Pattern Recognition
When testers look at a website or an app, if you’ve been trained to look for differences in workflows or to “think outside the box”, it becomes quicker and easier to spot irregularities and gaps in whatever form they might come in.
It takes time to develop the skill of spotting differences or learning to work around the obvious. It’s not an easy skill to learn, depending on the subject, and it can be difficult to master for any one heuristic. Three examples that use pattern recognition in different ways are usability, accessibility, and security. They address patterns in software that can lead to joyous accomplishment or disastrous consequences.
Usability is the first, and easiest, skill to pick up in regards to pattern recognition. It doesn’t require a lot of training to understand, but rather more intuition, about which patterns are good and which ones are bad. It is sometimes explained as going with your “gut feeling” about how an app or website should function. It asks more emotional questions about the software and requires you to listen to your instincts about those questions.
Example questions could be:
Am I bored with this yet?
Why am I clicking so much to get to one thing?
Where is this, it should be right here!?!
Why is it so hard to do <feature name here> ?
Once you start looking into usability, you continue to practise, and practise some more, until you can instinctively spot issues and create enhancements, or defects, to address them.
Accessibility levels up your usability skill set a couple of notches. Once you are exposed to it, you realised that there are more problems than the eye can see. If you live without a disability, then working with tools is your best option of practising your skill set in this regard. Tools, like WAVE, point out things missing in the HTML and accessibility standards which are not being observed. It makes you think about what would happen if someone couldn’t see, or hear, or if someone wasn’t able to use a keyboard or a mouse.
Games can give people perspective on accessibility issues. The website called Includification gives developers guidelines in the form of gaming levels to demonstrate the need for accessibility. If you are looking for a way to visibly demonstrate why accessibility is needed, games can be a great way to accomplish that.
Take known workflow patterns or personas and apply the accessibility game to it. While the accessibility game is geared towards video games, it could be easily applied to any software development project with a few tweaks.
Security can be something as simple as keeping your wits about you on the internet, or as complex as understanding what the application should and shouldn’t allow, along with understanding how security works in any particular application. It helps to look at it from a malicious point-of-view. Instead of making things easier for the user, the aim is to make things much harder for the user to be destructive to the application in some manner, whether it’s the application itself, the network, or data, learning how to safeguard different aspects of any application are hard skills to master because of the ever-changing security landscape.
Security is an ever evolving set of skills which will only grow more complex as the internet gets older. Security deals with patterns in a different way. These are patterns someone would see in the usage of certain features, web traffic, server health, and a dozen other indicators, which display a pattern of attack towards a piece of software. Once the pattern is identified, they can usually be blocked. Some of the first patterns you learn to recognise around software security are SQL injection, DOS attacks, and man-in-the-middle attacks. All of these can cause major disruptions of service for a website or even a whole network. Testing software for vulnerabilities can be a difficult task if only because there are so many known patterns to guard against. OWASP created a testing guide to help testers find gaps in application security.
The trick to understand about security is that it isn’t just dealing with the application and what’s connected to it via the internet. Sometimes it’s about dealing with the people. Social Engineering is often the number one cause of security breaches and usually, comes from allowing someone into an area they should not be in for any reason. Being aware of security protocols and general practices can save you and your software company from nearly everything except possibly a brute force attack.
Identifying Non-Functional Testing Opportunities In Games
With an understanding of usability, accessibility and security as examples of non-functional areas of testing, which use patterns, we can take those ideas previously stated and apply them or abstract them from games and game play.
Games And Usability: You don’t have to look far to see what games are getting usability right. Those are the most popular games, the most played, and often the easiest to learn. Look for games people complain about the game play, tasks in the game, or games that have low ratings due to usability rather than functionality. Download and play one of those and see if you can figure out why they are having issues not related to functionality. Chances are you will immediately see what’s wrong with it and what they should have done instead. Sometimes it’s the user preference and sometimes it’s something truly wrong with the interface.
Usability can be pretty subjective sometimes. Where other people find interactions with an interface perfectly acceptable, others will not. Keep that in mind as you are trying out different games. Look for games that don’t fall into a particular genre of game you like.
Games Featuring Accessibility: A great example of a game that goes out of its way to make sure you know about an accessibility feature is TwoDots. This game has an addition for colour blind folks. It adds symbols to the dots to better distinguish them rather than only relying on the colour.
Pick a game you currently play and turn on the accessibility features, if it has any, or see if you can play your favourite game without the keyboard or the screen turned off. The world of games changes once you don’t have all the senses involved.
Games About Security: Finding a game based solely on security or vulnerabilities was a little hard. I found a game which focused one of the most difficult aspects of any security protocol: social engineering. Google has created a game and a study guide which teaches children how to use the internet safely. The program called “Be Internet Awesome” was designed to teach children different aspects of cyber security, and safety, on the internet and how to promote the more positive aspects of it. The game play is colourful and fun. The skills it teaches would be good for anyone.
Another approach to security and games might be to consider the games you use and/or play. Pick a game and apply security principles to them. Find the rules for the board game or card game you are playing, see what “security” ideas or principles are there. Anything from a “don’t show this..” to “hiding items” to “protecting the goal” could all be considered gaming ideas that focus on security, and great game play.
Co-workers: Leveling Up Skill Sets
Getting your co-workers to focus on something other than work might be hard to justify. What could be even harder, is getting them to focus on something career-oriented as a group. Games and events focused on the development and testing skill sets are becoming easier to find in most places. Here is a short list of ideas and events which could help:
TestSphere: A card game about testing.
play14: A conference that offers problem-solving skills through game play.
Word Associations: In the ebook “60 Powerful Heuristics to Bust A Testing Grove With” Simon Knight explores using words to generate new ideas and ways to test.
Hack-a-thons: Pretty much any hack-a-thon can be a great group activity and can help cross the developer/tester barrier that some companies have.
Mentoring: Depending on the age group, mentoring through games, with something like Kano, or easy robotics build kits which use the Raspberry Pi board, can be its own kind of reward, and fun as well!
Test Fests: Beer, group interaction, and finding defects can unite a team in a way which strengthens developers attention to detail and hones a tester’s plethora of skills.
Bug Bashes: Have a defect backlog? Want to get rid of it? Host a bug bash. Offer cash prizes, provide food, and beverages. Add development teams, and watch the backlog dissolve into the ether. Don’t limit participants to roles. Let everyone do what they can or what they want to challenge themselves to do. This is an activity where pairing can really shine.
Stand-up Pop Quiz: Set a five minute timer and have one member of stand-up ask a question. It could be about domain vocabulary or a technical question about the application. Everybody gets a chance to answer. The person with the correct answer comes up with the next question. If no one can answer the question. Everyone researches and comes back the next stand-up with the answer.
Experimentation Is Key To Overcoming Career Challenges: Use Games!
Whether you are working on specific skill sets, or generalised ones, applying a game methodology for learning can help increase your skill sets in a meaningful way. Look for opportunities in the games you currently play that apply to skills you have, or to learn skills you would like to have in the future. Using games to further your career goals is a great way to stay engaged. For more ideas about using games at work, check out part 2 of this Gaming and Testing series.
References & Useful Links:
Melissa Eaden has worked for more than a decade with tech companies and currently enjoys working for ThoughtWorks, in Dallas, Texas. Melissa’s previous career in mass media continues to lend itself to her current career endeavors as Content Editor and Staff Writer for Ministry of Testing, supporting their community mission for supporting software testers globally. She can be found on Twitter and Slack as @melthetester.
Heather Reid has been a tester for 2 years. Her passion is helping the software testing community. She is a co-organiser of TinyTestBash Belfast and TestBash Dublin. This all started when Heather discovered the Ministry of Testing through TestBash 2016. When she's not testing she's usually exploring or working on restoration projects. You can find Heather on Twitter where you will also find a link to her blog and on Slack as @heatherr.
Melissa Eaden has worked for more than a decade with tech companies such as Security Benefit, HomeAway, ThoughtWorks, and now Unity Technologies. Melissa’s previous career in mass media continues to lend itself to her current career endeavors. She enjoys being EditorBoss for Ministry of Testing, supporting their community mission for software testers globally. She can be found on Twitter and Slack @melthetester.
Heather is currently a Test Engineer at Glofox. She was previously CommunityBoss at Ministry of Testing and a developer and tester before that. Testing and helping the software testing community is her passion. When she's not testing she's usually exploring or working on restoration projects.