Much like a role-playing game, software engineers come in a variety of types, or “builds.” In gaming, these are referred to as “character classes.” Which are you?
Mage / Magic User
The mage, or magic user, is capable of writing incredibly performant and elegant code, that is nevertheless inscrutable to anyone else who witnesses it.
Including themselves, if it’s been a minute.
To gaze upon the result of their labors is to gaze into the abyss of madness. It works, just don’t touch it.
Tests? What are you, some kind of cop?
Thief / Ninja
The thief copies code from Stack Overflow without really knowing what it does.
Will shell into a broken production system and run a mysterious bash script that resolves the ongoing outage without anybody knowing they were there.
Just don’t ask why it worked.
Medic / Healer
A meticulous planner, the medic thrives as a “maintenance mode” developer. They harness thorny brownfield systems by erecting a bulletproof scaffolding of automated testing around them.
Sometimes you need to force them to put down their toys and go outside and play with the other developers. Implement a new feature. They get weird if you leave them alone for too long.
Scout / Ranger
Polymath who can be sent ahead to try out new technolgies and lay down a path that others can follow. They spot potholes and dead-ends before others fall into them.
The scout writes a doc or creates a library to encourage others to use the new thing according to best practices.
Sometimes the scout needs to be “brought in,” or they will wander indefinitely in the wilderness.
Tank / Fighter
If you have a seemingly insurmountable problem that never gets prioritized into a sprint, simply nerd-snipe the tank into fixing it.
They will bash their heads against it without stopping for rest or food until the problem has been smashed into manageable bits.
Needs medic badly by the end of the sprint.
You Have My Axe
Obviously, in real life, people contain multitudes. Nobody fits a single narrow “type” definition all the time, and people are constantly growing and changing. The only constant is change, right?
But, I find it kind of fun to think in these terms sometimes when working on a difficult problem. “I’m totally being a tank for my team right now, I’m slogging through all this tedious grunt work that nobody wants to do, but will improve the lives of everyone else on the team.”
More of a self-motivation tactic than a way to pigeonhole or judge your co-workers, hopefully.