@quok: Respect!
Sorry that all makes me feel sad... why don't people read at least some few papers about "LOC" and the whole problem behind it? I bet 1/2 h googling for this would excavate a nice collection of texts. Plese go and try to read some of them.
There is the need of getting a
useful answer to such Questions like:
"Who is our "best" codemonkey?"
"Am I performing adequately?"
"Whom of the monkeys should we get rid off first?"
or like:
"How can we increase productivity, (or quality)?"
"Show me the levers where I can tune workflow"
"We need the BEST developers, how can we attract them?"
"We need to cut costs, what will we do and what will be the effect?"
It is SO annoying, that still nowadays, after all the case studies and scientific investigations, still some people are thinking in terms of "lines of code per timeunit". Must be something hard-wired into human brains? The need for a
simple "compare-function"? That works great for integers and that fails already for strings (Compare "book" "cook" "literature" "blog" "log" - What is "the" (TM) distance of that strings? Wich string/word is (lexically, vocally, semantically?) most similar to word "book"? )
People thinking in LOC or suchlike are definitely (scientifically approved!) asking wrong questions. They try to
over-reduce complexity, because they have too little experience with the problem domain of software development, which is itself an intrinsically complex and creative one, where problems of technique and humans tightly interact. The domain consists of many orthogonal sub-domains. To keep in budget is constant pain and even "only" staying on timeline is often burden. Then the "quality" and "quantity" of projects, etc etc... Oh - and then some people still try to "rate" codemonkeys with LOC? Stupid!
Ah - one thing: all studies have one common (and funny) result: People demanding for this kinda measures do recieve codemonkeys that are optimizing for that kinda measure. So if one wants to measure e.g. "LOC - without comments", he recieves but utterly unreadable write-only code, aannd
much of it.
People were surprisingly inventive creating more and more complex "measures" - e.g. IBM was leader of this bullshit in the 1960-1980. Find a formula for "good, readable, stable, maintainable, but also plenty, and in little time etc... code". The effect was: They "educated" their developers to optimize their behavior to exact that thing. And that was simply not what helped the companies. Nowadays (I thought) people tend to accept that software development is not optimizing a formula. Maybe parts of the workflow can be delegated to codemonkeys, and other parts to more experienced developers / architects / whatever. But still it won't fit into plain formulas.
O.K. I' ll give my story, and why it comes:
In early days I thought to myself "O.K. you took just three hours to code this piece of 500 lines! Great time! But after another 3h I realized that I were just exactly where I was - just few lines more. Frustrated, but I continued to selfmonitor. And after three days I had my piece "done". Result was ~700 LOC, now including much more comments. (Testcases - I didn't know of in these days)
But the whole truth was, that I was planning on that subject some time before, and there were lots of bugs, that I fixed bit by bit (introducing some new bugs, to be fixed, too!) After that self-monitoring experiment I admitted, that I simply cannot estimate a project by LOC or even codesize. Not at all. (Of course codesize IS a rough estimate of the problem size).
Try it yourself - self moniter yourself now and then. You'll be surprised HOW MUCH TIME YOU "WASTE". Punktually you surely are extremely productive, but on the large scale? Inspecting the problem, developing ideas, learning the proper technique (Newbee in that language? New library API to get into? Unknown Tool?) all takes it's time.