Metrics Rant

Aaaargh. This really gets my back up. AreTheseMetrics? No, they aren't...

Software uses almost no "metrics". It does use lots of things that could be loosely called "measures".

A metric is a function (or operator, if you prefer) that takes a pair of elements from a metric space (the clue is in the name) or something like one and maps them onto a scalar. This generalises the notion of the distance between two points in a space. The "dot" or "inner" product is a metric (a tensor, in fact) familiar from high-school treatments of linear algebra.

Careful. Inner product spaces and metric spaces are not the same thing. They are often related through a norm, that is: the norm ||x||=sqrt(<x,x>) induces a metric d(x,y)=||x-y||=sqrt(<x-y,x-y>).

A measure similarly generalises the notion of area or volume. It takes one argument (usually a function defining a "region" of some kind) and gives a scalar. Measures are often normalised to lie between 0 and 1. The probability of some outcome is an example of a measure.

Most of the things called metrics in software parlance: KLOC, FunctionPoint are amounts, so resonate with "measure".

And if we want to be strict about it, a FunctionPoint count is not a measure either since it mixes measurement scales thus having no meaningful units. It's still a relatively well-correlated index though. -- JasonYip

It's far, far, too late to fix this now. Why can't our industry ShowMoreRespect? when appropriating other disciplines' terms?

Umm... before you get too far in your rant, consider this definition of "metric" from Webster's (http://www.dict.org):

1. Relating to measurement; involving, or proceeding by, measurement.

We use 'metric' to mean a defined way of measuring something. That sounds like correct usage to me. We didn't appropriate the term from mathematics; we appropriated it from standard English. For what it's worth, our version seems to be closer to everyday use than the mathematical one.

And by the way, the KLOC metric is not the same as the KLOC amount. The KLOC metric is the process of measuring by counting thousands of lines of code. The result of applying the metric is some amount of KLOC's. Perhaps that's where the confusion lies.'


You said, "It's far, far, too late to fix this now. Why can't our industry ShowMoreRespect? when appropriating other disciplines' terms?"

I don't think it's possible to be consistent with the nomenclature of all other disciplines. I don't event think such a consistency is a good thing.

This argument doesn't compel me. The term "metric" doesn't just happen to lie in the intersection of the software and mathematical vocabularies. It would seem to have been deliberately brought across from mathematics (maybe as a result of DisciplineEnvy?), but in a sloppy and halfbaked manner. So, this is a little different form just trying to force consistency across areas that just so happen to use the same phoneme for different things. It matters naught that a "butty" is both a non-motorised boat towed behind a motor-boat and and rough-and-ready sandwich, for example.

I agree, seems sloppily borrowed to me. I don't see it as a problem, though -- I don't expect or want programmers to use correct mathematical terminology, any more than I want physicists to stop using the words "spin" and "color" for things that have nothing to do with spin and color. My thinking is that having the words be in different contexts means I'm unlikely to be confused by their different meaning.

Ok, wait, wait, I think I was missing your point entirely. How about this: "If a word is used in two different domains and the word's meaning in the two domains is different but similar, than people will be confused. Therefore, don't do that." Is that what you really mean?

Yes, that's more it. Sorry I was so unclear before, but I had the mist. Maybe the question has more to do with the reader's background: because my degree was in mathematics and physics I've got a very strong set of associations attached to "metric" and it jars to see the term used for something that doesn't quite fit those associations, but does fit better with another strong set of associations.

My take is that it's ok to use a word with a slightly different meaning from a different domain to name something, as long as there is not already a word in the English language that better describes it (sorry, re:western bias). In this case the word "measure" is a much better fit. I suspect it really bothers you (well it bothers me) that it seems as if the word "metric" was chosen over "measure" because it "sounds" more authoritative (strange irony in there somewhere). -JohnRepici

Just like "methodology" instead of "method". See http://dictionary.reference.com/search?q=methodology which states:

In recent years, however, methodology has been increasingly used as a pretentious substitute for method in scientific and technical contexts ... the misuse of methodology obscures an important conceptual distinction between the tools of scientific investigation (properly methods) and the principles that determine how such tools are deployed and interpreted.


"Metric" is not a borrowed mathematical term. It started out as a synonym for a measure or measuring function, albeit one less often used, and then mathematics borrowed the term and gave it the specific meaning of a distance-like function. Software engineers are using the term in the original form. To say this is wrong is like saying that programming isn't work because you're not applying a force over a distance. Consult any dictionary.


I will remain neutral on what "metrics" are, but I would say the things discussed in software do not even qualify as measures. The fundamental quality of a measure is that it is repeatable. If two different people measure the same thing, they should get the same result. We have a lot of special terms, such as function points, lines of code, and bugs, with no definition of either the unit or how the unit is counted, making it highly unlikely that the measurement can be repeated, much less extrapolated to other situations.


EditText of this page (last edited July 30, 2004) or FindPage with title or text search