Since getting into Dungeons & Dragons tabletop gaming this year, a few people in the software development and testing community have chatted to me about parallels between D&D and software development. In particular, there has been some interest around the way players are assigned roles, skill levels and abilities – does this sound like your last performance review? It’s an interesting parallel to explore, particularly with regards to training. For those who have never played D&D before, allow me to take you on a whirlwind tour.
“I would like to make a privilege check.”
“What do you mean?”
“I have a scroll of pedigree showing my noble lineage and I’d like to check it.”
“…I’ll allow it.”
I play the 5th edition of D&D, which just means I follow the latest ruleset that some of you may not recognise if the last time you played was back in the 80’s. This is an example of a 5th edition character sheet. You can see it has a lot of numbers on it that show different skills. It also dedicates a lot of space to personality traits and background. The numbers are useful, but D&D is ultimately a roleplaying game – a game where you pretend to be somebody else.
Click the image for a larger view
I like to play as the Dungeon Master, which means I’m essentially the user interface for the game – I narrate the story and tell players the consequences of their attempted actions. I am, in effect, a human version of a playable computer game, where the visuals are rendered entirely in the players’ imaginations.
However, the difference between tabletop gaming and a computer game is that a human interface provides boundless possibilities for players. Like a computer game, I am bound by rules, but they are not a STRICT set of rules. For example, if a player wishes to attack the dragon with her sword, I can use the rules in the Player’s Handbook to determine if the action is successful. Or, I can decide that there is a sudden earthquake that causes the player to trip and fall. Or, if the player says “I would like to make peace with the dragon and invite it out on a date”, I can choose to allow this and the next thing you know there’s a war-grizzled dwarf clinking glasses over a candlelit dinner with a 20ft tall dragon. The point is, anything goes because as a human being I’m not restricted by a strict set of logic paths and graphics limitations.
“I attack the three-headed chicken with my spiritual cow!”
Given that a human interface is extremely different to a computer interface, I don’t see D&D providing a useful exercise for training exploratory testing. Actual computer systems are much more educational for that purpose. However, I do see it as useful for training for interaction with other human beings – specifically software development organisations. As a consultant, most of my job is about interacting with other people in order to teach skills and influence change. Creating organisational change is difficult, and it’s something that often falls to testers to do – whether it be convincing one team to introduce better testing practices, or convincing management that testing is worth caring about at all.
Creating a fictional organisation with many interesting NPCs (Non-Player Characters) could be a useful exercise to think about ways to use different communication skills and abilities to achieve certain goals. I can think of a few great NPCs already:
- The developer who thinks testing is somebody else’s job
- The manager who really wants the team to care about quality but just never seems to have enough time in the project to make it happen
- The product manager who demands a full manual end-to-end regression test regardless of any automated testing efforts each release
I’m sure everyone has encountered a few interesting real-life characters that they could adapt to create educational scenarios. I attended one course that had a similar roleplaying element, but I felt it was designed more to teach the class about how much of a jerk everyone was rather than teach actual skills. I think a core element to this is to teach a skill, then let the exercise show the benefits of using the skill in a realistic context.
I am working on creating a course like this myself, but I’m curious to hear if anybody else tries this approach.
I’ve seen roleplaying used for educational purposes, but never actually thought to use it in this particular way. This could turn out to be interesting.
Several points that might be worth thinking about:
1. I would be cautious when choosing the premise. If people get a setting that is too close to their own day-to-day life it might not have enough emotional distance to allow for actual learning.
2. D&D is probably not a suitable system for such premise – it is battle oriented and quite heavy on the technical aspect of playing (meaning: the character sheet is packed with a lot of information that will confuse a new player). It is probably better to use a different set of rules as a basis. Either something you build yourself or an adaptation of an existing game that is more compatible. Funnily enough, for this purpose I would probably choose some adaptation of a system I usually don’t like – Fiasco is a horrible as a roleplaying game (that’s my view, some of my friends think quite differently). but since it is build around short episodes it lends itself easily to pre-constructed scenarios of “explain, process, try out”, and it suits a modern background quite easily (and, on a half related note, I hope reading the following article, despite not speaking on the subject directly, would help raise some points for consideration about constructing a game with specific purpose: https://gnomestew.com/general/israeli-tabletop-three-flavors-of-delta-green/ )
3. for larger groups (anything more than 8 people at a time) I would consider a LARP instead of a tabletop game. If you do, I would try looking into what is known as a “Nordic larp”, they did some great advancement in creating a language and tools that help in defining the experience you want from a game.
Hi Trish, great idea!! I have been playing with the thoughts of creating a game for testers to learn how to deal with context in testing and to learn about test strategy. Like you said, to teach actual skills!
Me, Fiona Charles, Kristjan Uba, Kristoffer Nordström and some others worked on this some years ago at Let’s Test. The initiative died because we were all too busy.
I had a brainwave a couple of months ago to use the dynamics/rules of a RPG to create an serious agile/testing game to teach people about the challenges of testing in a enjoyable way… This idea popped in my mind while playing an RPG. The instructor/coach acts as the dungeon master and ‘students’ play a role to solve the problems. Each character has a set of skills and they have to work together to beat dragons (dragon = problem). The DM can throw in extra stuff to help them or make it more difficult. The goal is to facilitate skills like critical & lateral thinking, collaboration and communication (argumentation, framing, explanation, etc) about real (testing) problems… Your blog post gave me energy to make this game reality. Thanks! If this is very similar to what you are creating, I hope we can talk about it.
Had some similar thoughts myself, some time ago… http://sjpknight.com/super-tester/ Never really pursued them. Highly recommend Jane McGonigal’s book as a potential resource though.
This role-playing approach seems like it could be useful for our QA & Dev team during a team-building retreat; I’ll definitely keep this idea of brainstorming NPCs and then finding ways to work with and around them in our “bag of ideas” for future cross-role activities. Thanks for sharing a fun metaphor that most people in the software world can probably relate to!
Also, from a QA perspective, playing by the rules is a good analogy for testing software, but there are also times when the expectations should be challenged instead of followed (like allowing the knight to take the dragon to dinner). Deciding to break the rules, or at least attempting to, and seeing how the software responds can make for great test cases! Being a saboteur instead of testing by-the-books – although both are solid methods covered in James Whittaker’s “Exploratory Testing Tours” – can uncover some of the best bugs.