An ambitious mod management tool for the original Baldur's Gate games just got a massive overhaul
Plan your next playthrough of one of D&D’s best videogame adaptations.
An ambitious mod management tool for the original Baldur's Gate games just got a massive overhaul
Plan your next playthrough of one of D&D’s best videogame adaptations.
Software Adventuring
I’ve been a software engineer for over 20 years. I’ve been playing Dungeons and Dragons even longer. Naturally the intersection of the two pops into my head from time to time. For a long while I’ve been kicking around a mental model for the different ways a software engineer might work on their team, inspired by role playing games.
These are my personal thoughts from my experiences as a technical leader at Amazon and elsewhere. It’s also a fun trip down gaming nostalgia lane.
Team Players
At Amazon we have the concept of two-pizza teams; I’ve been on similarly small or smaller teams my entire career. Often a particular milestone of a project may involve only a few people delivering some software artifact. I’ve seen this work many different ways; something key is that everyone is bringing their unique perspective and skills to bear on the project.
Almost all employers will have formal expectations and guidelines for your job and level; the idea I’m sharing here is more of an abstraction on top of how an individual might be performance evaluated, focused on making sure a team has the right distribution of skills and affinities within those criteria.
The general industry trend also seems to be moving towards smaller teams, with more of us wearing more hats at different phases of our development work.
What’s in a Game?
Now, some game context. If you’re familiar with the concept of character classes in RPGs you probably have a pretty good idea what I’m about to describe.
In D&D and many other role playing games, instead of a team we have a party, usually consisting of 4-6 player characters, with everything else managed by the game master (or, in the case of video games, whatever is programmed into the game engine). The goals vary depending on the style of play but for most groups it’s about progressing through a story by exploring an area, defeating enemies, collecting treasure, and leveling up to be ready to take on the next challenge.
For typical play, balance often matters; a party of all, say, bards, may struggle to make progress in a combat-centric campaign. Or the players just all need to agree that the goal is actually winning the next Herovision Song Contest. The iconic western RPG party (rooted in Tolkien’s works and other similar high fantasy archetypes) might be built around classes like Fighter, Wizard, Cleric, and Rogue. Other classes rooted in other genre traditions have been added to the game, or are the core of other games, but many of them could be grouped similarly with these classic ones. I was always partial to the 3E Monk rules.
My half-elf monk Kurono, whom I played for a year long Planescape campaign 2001-2002. Yes I still have the character sheet.In MMORPGs like World of Warcraft, you might group similar classes into the role they have in the game’s frequent combat: Tank, Heal, and DPS who each absorb, repair, or dole out damage. A Warrior or Paladin might Tank; a Priest or Druid might Heal; and a Rogue or Warlock might deal melee and ranged damage. I always enjoyed the stealth aspects of WoW’s Rogue, even if they kept being nerfed in PvE, my primary play style.
My old Dwarf rogue, Kjallstrom, sitting on the throne of the defeated Emperor Thaurissian in Blackrock Depths. Like ya do.D&D’s Fourth Edition was not one I played more than a handful of times (not so much because of the criticisms but because of timing); however one concept I liked from the core sourcebooks was the way it canonicalized the party role: Controller, Defender, Leader, and Striker. As in the WoW case these respectively handle multiple targets or areas, redirect incoming damage and hit back, heal and buff, and take down enemies. Unsurprisingly these pretty closely map to the old-school classes Wizard, Fighter, Cleric, and Rogue… though any given class in the 4E game rules doesn’t exclusively fit one of the roles. For a party to successfully complete a combat encounter they probably need at least one member who can function in each one of those roles.
This 4E party balancing was the main inspiration for my definition of what roles I think a healthy software team needs.
The Roles
My model consists of four roles: Builder, Explorer, Guardian, and Librarian. There are probably a few others I could come up with but these are my core set.
As with the D&D roles, where a player character might take on different ones in different encounters, a given engineer isn’t going to be only one of these forever. They will likely fill at least two of these over the course of a project and almost certainly all of them over the course of their career. When assembling a team to complete some goal I think it is a good idea to have breadth of coverage with multiple folks fitting into these slots at any given time.
This model can also apply to specialized roles like security engineering or user experience design, as well as non-engineering roles in management. You might be able to apply it for any kind of knowledge work team! However, for this post I’m coming at it primarily from the software engineering perspective.
Builder
Geordi LaForge, Chief EngineerThe Builder is probably close to your default image of a software engineer. Much of their time is spent actually making the thing. That includes the unsurprising hands-on-keyboard coding time but also extends to related tasks like writing design documents and reviewing the code of others. This is the most common role across teams, especially for more junior developers; most software engineers will spend the majority of their time as a Builder.
Explorer
Futuron SpacemanThe Explorer is a developer who has time set aside to try new things. They’re constantly learning and staying on top of new tools and techniques. Everyone should be keeping their skills up to date but these Explorers are at the forefront. They experiment and bring the best back to their team as guidance. This could cover anything from adopting a new UI framework or defining a new business process for collecting customer feedback. In my experience this has been a bigger part of my day to day as I’ve moved into the Principal Engineer level.
Guardian
Ahsoka Tano, Jedi outcastThe Guardian protects the team, often from themselves. That defense can manifest in a few different ways; being a critical code reviewer is a common one, but this also includes setting up other review processes, defining testing strategies, and generally holding a high standard of quality for the team. They might think a bit more about operational excellence or security or otherwise make sure that a project is production ready. They might also handle more management tasks around team roadmaps, planning, or status reporting to make sure that the rest of the team doesn’t get overwhelmed by randomization or sustained high workload.
Librarian
Margaret Hamilton, software engineerThe Librarian is the person who knows where everything is, or at least knows who to ask and where to look. Yes, I’ve saved my favorite role for last… or at least, this is the role for which I feel my style and personality have the most affinity. They keep documentation up to date themselves or manage the templates so anyone can do so. Most importantly they make sure everyone can find out the “why” of any previous decision. They know where the worst technical debt is buried, and why that TODO from 2017 is still there but also doesn’t matter anymore.
Better Together
I can’t offer a formula for how many team members you need in each of these roles; it is always going to be situational and dependent upon both how your organization operates and what projects are currently on your team’s plate. You’ll almost certainly need your base of Builders more than any of the other three, but those roles should not be neglected! Someone on the team needs to be able to pick up the kinds of work associated with those roles so that the team as a whole can succeed.
The Next Quest
You may have noted that none of this addresses the software field’s current agentic elephants. That is I think a longer topic for another post; however, I would maintain that a mental model like this one is useful no matter how much your team may use AI agents in your day to day development.
What do you think? Does this match your experience? Which one is your favorite or fits you best? What roles would you add to the list?
#amazon #career #dD #rpgs #softwareDevelopment #work #worldOfWarcraftDownload: Erde & Wasser #1: Der Einstieg ins Abenteuer
„Erde & Wasser“ ist eine Megadungeon-Kampagne für 5E (2014) in der Tradition der großen Dungeon-Abenteuer wie Ruins of Undermountain, Temple of Elemental Evil oder Caverns of Thracia. Sie besteht aus 38 Leveln, die auf mehrere Stränge verteilt sind, und insgesamt über 350 Räumen. Dazu kommen nochmal knapp 100 Locations in verschiedenen Pointcrawls. Also „Mega“ – Check! – und „dungeon“ – Check!
Für wen ist „Erde & Wasser“ gemacht?
Das Projekt ist zu groß, um alles auf einmal zu veröffentlichen, deshalb teile ich es auf einzelne Booklets auf, die ich nach und nach herausgebe.
#1 ist jetzt erschienen. Auf 40 Seiten (A4) findet ihr:
Es ist alles zu 100% menschengemacht und ohne KI erstellt. Erde & Wasser verwendet die OGL und das SRD 5.1 und erscheint unter einer CC-BY 4.0-Lizenz.
Hier ist das pdf zum Download:
WebversionDownload DruckversionDownloadWer es lieber über itch.io oder DriveThruRPG haben will, kann das gerne machen. Wer mir dort eine Spende hinterlässt, dem sei herzlich gedankt.
Karten und weiteres Material ergänze ich kontinuierlich auf der Übersichtsseite.
Ich hoffe, die Nummer 1 gefällt euch und weckt euer Interesse nach mehr. Meldet euch gerne hier, auf Discord, Mastodon oder im Tanelorn!
#DD #DD5E #Download #Dungeon #ErdeUndWasser #pnpde #RollenspielAn RPG community in Iraq takes their first steps outside D&D
Concerning Ravenloft - the original horror adventure module