Lets suppose we have programmer A,B,c . The quality is defined as the number of bugs/month
and productivity as LOC/month
. So we have programmer A with quality 2 and prod. 2500; programmer B with quality 5 and prod. 500 and programmer C with quality 25 and prod 200. How do I define a metric to evaluate which programmers is the best? I search over the internet for a method, but with no results in finding an example of how do i evaluate programmers. Can someone help me with this ? I would really appreacite

- 93
- 1
- 4
- 12
-
1LOC is a terrible way to measure productivity. http://stackoverflow.com/questions/184071/when-if-ever-is-number-of-lines-of-code-a-useful-metric?rq=1 – Mooing Duck Feb 16 '15 at 20:01
-
1So if a new programmer removes 100 lines of bad code do they get a negative evaluation? – Bjorn Feb 16 '15 at 20:02
-
but it is posibilty somehow – Maria Muresan Feb 16 '15 at 20:02
-
@bjorn Tipling , not really, i am asking you guys if there is a method or formula to solve this, using the data that i mentioned – Maria Muresan Feb 16 '15 at 20:03
-
Nope. Not really. You can't get a nice round number for something as complex as a person's competence in a broad range of skills in something as involved as programming or anything really. – Bjorn Feb 16 '15 at 20:04
-
Maybe have some programming problems and then have number of correct answers out of total + time it took to complete, but even that is a terrible way to do it. – Bjorn Feb 16 '15 at 20:06
-
I think that not exists the absolute method. However you can build the relative method in your company, The best approach from my perspective this is peer feedback about the person's code quality and the collaborative work. I believe that in the complex projects the best programmer is the one which a good scrum/team player. – Eugene Feb 16 '15 at 20:10
-
Good [article](http://java.dzone.com/articles/we-cant-measure-programmer) on this subject – Eugene Feb 19 '15 at 07:22
1 Answers
There is probably no standard way to deal with this. Because 1. there is no standard definition of which programer is the best
, and if there were something close, 2. it would probably not rely on those metrics. So you are left with subjective choices here.
As mentioned in the question's comments, you have to be careful with the selected metrics because they don't respect the representation condition [ 1 ] (e.g. counter-examples can be found -- and there would be a lot in this very case). So don't believe you can judge developers on these metrics, that would be a big mistake and a flagrant counter-productive use of metrics, see [ 2 ] for more details.
However, I believe these metrics and implied subjective choices are still worth something, as long as you know to what extent they are valid. They still represent a value, and it is interesting to have them, and monitor them: as numbers, they might help understand some aspects of the development, too.
So maybe the answer proposed would be a visualisation-based one: plot them nicely (a bubble chart may be interesting, or good old bar charts) as metrics, not as high-level characteristics. You could also map them to a scale (difficult to define, though.) to get a normalised indicator (e.g. from 1 to 5) and build a tree like in PolarSys Dashboard.
[ 1 ] Fenton, N. (1994). Software Measurement: a Necessary Scientific Basis. IEEE Transactions on Software Engineering, 20(3), 199–206. doi:10.1109/32.268921
[ 2 ] Kaner, C., & Bond, W. P. (2004). Software engineering metrics: What do they measure and how do we know? Methodology, 8(6), 1–12.

- 134
- 5