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:
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
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
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
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.
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?
Okay, yeah, wizards were originally "magic users."
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!
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!
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.