So, you want to be a better software developer. It’s a noble goal and there are so many ways you can improve your skills. Sure, you can use traditional methods: read books, watch tutorials, and take online courses.
But, let’s be honest: while effective, these methods are rarely fun and are almost always carried out alone.
Good news! Dungeons and Dragons (D&D)1 is a fantastic way to have fun with others while practicing some of the most valuable skills a software developer can have:
- problem solving,
- creative thinking, and
One of my instructors at Dev Bootcamp said, “Frustration is our business.” As software developers, our primary function is solving problems—whether we’re architecting a new app or maintaining an existing one, we thrive on creating solutions.
In D&D, you face any number of outlandish problems, puzzles, and sticky situations. You may encounter a tricky gnome wizard who forces you to solve a logic puzzle or suffer the agonizing effects of his spell: Tasha’s Hideous Laughter.2 Hey! Maybe you can use the binary search algorithm! Or, perhaps you and your party have to unlock a sequence of levers to enter the tomb of the Bugbear King. Why not try iteration?
Keeping problem-solving skills sharp is an absolute must for software developers and playing D&D will challenge you to think through problems you might never run into at your day job.
Imagine that you’ve learned that the magic Boots of Spider Climbing that your character has been hunting down for years are in a heavily guarded mansion in town. Do you use your stealth and athletics to scale the walls at night and enter through an unlocked window? How do you deal with the guard dog? Do you try another approach—leveraging your charms to persuade the owner that you are a scholar and wish to study the boots for purely academic purposes? Or, do you assume the identity of the housekeeper, who has access to every room during the day?
Creative thinking is a skill that allows us to look at situations from a fresh perspective and generate all kinds of unconventional ideas and approaches. It’s a skill that software developers can apply to every phase of a project. Are you making the effort to exercise your creative thinking? How often are you prompted with mundane challenges and rote tasks?
D&D is an excellent way for you to engage your imagination and practice thinking outside the proverbial box.
Dungeon Master: “Your party reaches the Cave of Horror, in which dwells the evil and powerful Skeleton Warrior…”
Before the Dungeon Master finishes her sentence
Grod, the Warrior: “I charge into the dark cave wielding my great sword and shouting my war cry!”
Dungeon Master: “As you rush forward, skin glistening and eyes gleaming, you fail to notice a trip wire at the mouth of the cave. Your boot catches the trip wire and out of nowhere a crackling bolt of lightening streaks through the air and strikes you in the chest.”
Flip, the Rogue: “Well, I guess we have to find a new tank.”
Just like pair programming, D&D is at its best when your party is collaborating effectively. As such, you have the chance to practice skills that will make you a respected and valuable member of any team:
- recognize and honor each individual’s unique skills and temperaments,
- seek first to understand, then to be understood,
- give people the benefit of the doubt,
- get out of your comfort zone and meet people half-way, and
- be kind.
Nothing sucks the life out of a game—or the progress out of a project—more than disunity.
I hope that you have a greater respect for the tangible and valuable ways playing D&D can make you a better software developer. Much like an adventurer in D&D, a software developer’s ability to solve problems, think creatively, and collaborate effectively can mean the difference between a team’s riches and glory—or its ultimate doom.