Rating Software Developers
It takes all kinds of people to make any project successful; designers, code monkeys, requirements
junkies, architects, and there are no repeatably good mechanisms for evaluating folks to determine
if you want them to be a part of your team or not. This sort of rating or measurement is something people from
all three perspectives really need to make a good decision. Hiring managers need to know they’re
getting a good employee, employees need to know where they stand, and if/how they’ll contribute, and
their peers need a way of determining if they can work with the person.
If you only focus on a subset of a typical team, say the coders, how can you really evaluate
them to decide if they’re good or bad, or maybe just unsuited for your team ? How can they
evaluate themselves to decide if they even want to be a part of your team ? (which
is just as important!)
To date I’ve seen a number of approaches to hiring and evaluating software people, but I won’t
go into those details, as they’re not the point of this rant. The point is the people doing the hiring
ask such a variety of questions and seem to focus on trivia or things Google can answer. They look for experience with specific programming languages,
frameworks, operating systems, and formal education; none of these things tell you if you’re looking at a
prospective employee who can actually get anything done. Too little weight is given to people who’ve proven
they can learn. Too typically, expertise in a small set of technologies wins out over other factors, which is
a shame, after all, the only constant in this industry is change.
Software people are measured by their experience, education, possibly
some certifications from brain bench and their ilk and perhaps
even some discussions regarding how many lines of code they wrote
for project X in their past, and how amazing it was.
Take a look around you, really look at your peers; do any of those
things correlate in any way to their actual contribution to the team ?
This is a rather large unsolved problem in my opinion, and gives me a
whole new level of respect for recruiters who do their job well.
Perhaps there’s some formula that would more accurately
describe a programmer if applied to enough of their work over time.
If for example on each project they’re a part of, they kept track along the lines of…
(time to complete task * task complexity factor) + result quality + task’s percentage of project = task rating
If you average every developer’s task contribution over enough projects this way, would it help ?
Is this valid ? Is it an improvement over what’s available already ?
I don’t know… What I do know is that the current ways need improvement…