|
In this topic I will describe some interesting metrics that I use to help me determine
the experience of a developer. These metrics are totally subjective (ZOO(1)) and can mean
different things to different people. Here you can find what they mean to me. Make your own
decisions for yourself and remember that I am only human thus fallible.
Moreover I do not claim that this is a complete list of metrics for judging the experience
of a developer. This would violate
ZOO(2).
WLOC = Written Lines of Code
This is not actually my idea, but I can’t remember whose it was. Probably Joel’s.
WLOC is the estimated total number of lines of code the developer has written in
her programming career so far. Most likely a developer that has WLOC=300K is more
experienced than a developer that has WLOC=50K.
ILOC = Installed Lines of Code
This is the total number of lines of code that the developer wrote that are installed
on user machines. If I have contributed 10.000 in a program and that program is
installed on 100 machines, then I score ILOC=1M from that program.
The more the machines the higher the number gets and it can get pretty high, so
we are practically interested in the magnitude of the number, not the actual number.
That’s why it doesn’t make a real difference what language you use for this metric.
You write more lines in C than in Lisp, but it’s the magnitude of the number that matters.
A developer scoring an ILOC of 1G is probably much more experienced from a developer
scoring 1M.
DELOC = Daily Executed Lines of Code
This is the total lines of code that the developer wrote that get executed daily
on all user machines. This is pretty hard to measure so an estimate is enough.
Let’s suppose that we have a 200K LOC system. You might have written 10K lines,
but these lines get executed 5 times a day on 100 machines, while somebody else
wrote 2000 lines of code that execute several thousand times a day on 5000 user
machines (and I am not talking about message loops here).
Usually these 2000 lines are more critical (that’s why they get executed so often)
and much harder to get right since they get exposed to more testing from the user.
DMTS = Daily Monetary Transactions Sum
This is the sum of money involved in transactions your code processes every day.
Obviously it takes (and gains) more experience to process 1M$ per day, every day,
than it takes to process 40K$ per day.
In the first case an error is much more critical. I would pick any decent developer
for writing the code if I had to process 40K$ a day. However if I had to process
1M$ I would probably pick the best developer I have.
So if code you have written is processing lots of money every day, then I can assume
that you are quite experienced, otherwise they wouldn’t let you write that code
in the first place.
There can be many reasons for and against each of these metrics. However I think
that in the general case they can provide with some metrics that can be useful in
assessing someone’s development experience.
Thank you for your time!
Dimitris Staikos |