If you’ve been reading this series, you know that The Joel Test: 12
Steps to Better Code is all about having an environment that leads to
better software. The Big Swinging Developer Test is a parallel that is
all about being a more valuable developer, but this late in the game
you’ve probably also noticed another pattern. A lot of the Big
Swinging Developer Test is about how to effectively help an
organization improve their Joel Test score and/or how to maximize the
effectiveness of their Joel Test items.
The Joel Test:
11. Do new candidates write code during their interview?
The Big Swinging Developer Test:
11. If you had to interview someone in 15 minutes, could you conduct a solid interview?
if you never interview a single candidate, this will still boost your
value. As a Big Swinging Developer, the ability to conduct a solid
interview hinges upon 3 things:
- Knowing what the organization wants/needs.
- Knowing what you’re looking for in a co-worker.
- The ability to determine if someone fulfills these two.
not easy to know what your organization wants or needs. It requires
research, thought, and an open mind. An open mind is required because
what the org wants may be different from what you want. If this were a
blog about startups, you’d see some very different advice from me
because at a startup the org needs what you need . . . otherwise you’re
in the wrong place. As a contractor, consultant, or simply a highly
paid employee somewhere you’ll find that meeting the company’s needs is
the winning strategy. Now before you start thinking that I’m
advocating organizational stasis, let me be clear: Sometimes the
organization needs a shakeup. Sometimes you’ll need a rabble-rouser, a
rebel, or a renegade. But that has to be based on what the org needs,
not what you want. If you find yourself in a place that is
change-resistant beyond what you were brought in to do, then factor
that in to your decisions. If what the org needs is unpalatable to
you, then it’s probably time to move on.
It’s easy to know what
you’re looking for in a co-worker, but it’s usually hard to articulate it.
We all have people that we’re drawn to, but it takes a fair amount of
reflection and introspection to know why and to be able to look for it
in others. I look for co-workers who are funny, excitable, articulate,
and curious (among other traits). I also know why I’m looking for
these things and how they’ll help us work together. I avoid people who
try to mask their lack of knowledge on something, have poor
communication skills, or overplay their hand. Give some thought to what you like and dislike in a colleague instead of simply being drawn to people who are like you or are just easy to get along with.
The idea of
candidates writing code in an interview (the original Joel Test
question) is great. So is a small, clear refactoring question that has
multiple correct answers. Ask candidates about previous projects,
especially what went wrong. Give them a chance to be the things that
you’re looking for and a chance to be the things that you’re trying to
avoid. If you deliberately walk them into (or near) the opportunity to earn positive or negative points then you’ll have a much easier time making your evaluation based on what’s important to you. Remember: It’s your job in an interview to create the conditions where the candidate can show if they’re a fit or not.
Even if you never use any of this to interview someone,
knowing what your organization needs, knowing yourself and how you like
to work, and knowing how to identify compatriots will make you
incredibly valuable. Put in the time for the research and reflection and you’ll be on your way to becoming a Big Swinging Developer.