Webdev Character Classes .:. kentbrewster.com

Out early today--cubicles are being reshuffled, what fun!--after a quick one-on-one meeting with the bossman, who hit me with the worst conversational whiplash I've had in a while. We were talking about my recent shift from My Yahoo! to the front page, he made some reference to my "class," and my brain froze up. Was he talking about the year I'd been hired? A classroom-type class I'd been failing to attend? Was he going all object-oriented on me and thinking about me and my fellow webdevs as instances of some uber-protype webdev object?

Nope. As it turned out, it was even geekier than that. Mike was talking about character class, as in Dungeons & Dragons and other role-playing games.

For you non-nerds in the audience, and others who are so very nerdy that you've never even been invited to play, there were four human character classes in Classic D&D: fighters, clerics, wizards1, and rogues2. As far as I can tell, webdev character classes look something like this:

Wizards:

  • Their Thing: creating libraries, building systems, refactoring hopelessly broken code
  • Care most about: embracing and upholding standards
  • Strengths: expert knowledge, extensive experience
  • Weaknesses: object-oriented navel-gazing, plus an unfortunate tendency to lecture, rant, drone, or all three at once
  • Unspeakable desire: to quit supporting browsers that don't pass the Acid2 test

Fighters

  • Their Thing: building out actual customer-facing HTML
  • Care most about: getting things done, kicking ass, making deadlines
  • Strengths: superhuman speed, focus, and concentration
  • Weaknesses: carpal tunnel syndrome, and the fear that they might be made obsolete by clever Wizards
  • Unspeakable desire: to use tables for layout again

Clerics

  • Their Thing: fixing bugs, writing documentation, back-end integration
  • Care most about: quality control, accessibility, internationalization
  • Strengths: knowledge of systems and system/human interaction
  • Weaknesses: fear, inertia, and despair, especially around push time
  • Unspeakable desire: to serve nothing but a big pile of RSS feeds and let the clients sort 'em out

Rogues:

  • Their Thing: prototyping, tool-building, amateur-night interaction design
  • Care most about: getting started on the next thing, whatever that is
  • Strengths: unshakable optimism, can-do attitude, comfortable talking to executives and other alien beings
  • Weaknesses: egomania, impatience with standard operating procedure
  • Unspeakable desire: a job at Google

Permutations and Combinations?

Oh, yeah. They're out there. Good webdevs have one area of strength that they lean on; they have to, just to stay employed. Great ones call on two, three, or all four areas. Rogue Clerics are out there; they wrote Firefox. Fighting Wizards like Eric Meyer and Jeffrey Zeldman made CSS practical for the rest of us. Matt Mullenweg called on excellent Clerical and Fighting abilities to build WordPress. And so forth.

So What?

If you've read this far with a straight face, here's your homework:

1: Figure out your main class, choose the one that remains whose strengths appeal to you the most, and get busy. Your resume will thank you in a year or so.

2: Look around at your co-workers or employees, figure out who they are, and act accordingly:

  • Listen carefully when the Wizard sharing your cube starts talking about strict versus transitional document types; they really do make a difference.
  • Understand that the Cleric next door feels actual physical pain when you push a form without labels or an image without an ALT tag.
  • See if you can get your local Fighter to unplug and have lunch outside with you at least once a week; life is too short to miss foosball with your friends.
  • And don't be too harsh on your friendly neighborhood Rogue when he sends around a link to a prototype that only works on IE. He's just doing his Thing. Are you doing yours?

Footnotes

  1. Okay, yeah, wizards were originally "magic users."
  2. And rogues were originally "thieves." Jesus, get a life, okay?

Comments from before Disqus:

Dave Balmer .:. 2008-02-18 19:23:31
Hey, I like this. I'm a Rogue. Heck, I even wear black (until I find a darker color). Your point about focusing on your primary class is a good one. I can wear other clothes (tending toward Fighter), but I keep coming back to my true self. Nice post!
Kent Brewster .:. 2008-01-02 14:03:38
I'd put you about halfway between Wizard and Rogue, Isaac. (Folks: Mr. Schleuter contributed a couple of key concepts to Case-Hardened JavaScript right when I really needed help.) Oh, and I've never heard you drone, not even once. :)

I think your post ("Surgical Team or Motley Crew of Adventurers?") makes much more sense than mine, and includes members we forget are key to the enterprise: non-coders, like project and business management. Thanks for doing it, and for stopping by!
Isaac Z. Schlueter .:. 2008-01-02 09:40:34
It's fun to look at the "d&d character class" metaphor at a lower level of granularity as you have here. (Ie, I was talking about the team as a whole, and you've applied it to web developers only.) The overlap between your post and mine are interesting. We both put the QA task in the Cleric, and the knocking-down-bugs-to-make-a-deadline in the Fighter.

Personally, I've found myself to be more of a wizard than a fighter rogue or cleric, complete with the "object-oriented navel-gazing, plus an unfortunate tendency to lecture, rant, drone." :) But, the very nature of writing code for a browser involves making a countless compromises between The Right Way and Worse Is Better. In fact, our goal is usually to do the minimum amount of Right Way to keep the Worse Is Better bits from getting too heinously unmanageable.

I think that's why I put back-end engineers in the wizard role, and cast webdevs as the sorcerer--many back end engineers I've worked with are a bit horrified by Javascript and CSS, and either run screaming from its messiness or try to turn it into something else. (I have actually heard one programmer I know proclaim, "Prototype is great! It basically turns Javascript into Ruby, so you can actually program with it!" I'd actually be more interested in Ruby if there was a way to turn it into Javascript.) There are exceptions, of course. Crockford, for example, is clearly a specialist wizard, but in a very frontend area.