<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Lines Of Code &#8211; Dispelling The Myths</title>
	<atom:link href="http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/</link>
	<description>Hitching a ride on the information superhighway.</description>
	<lastBuildDate>Mon, 26 Jul 2010 13:29:20 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Nick</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-7654</link>
		<dc:creator>Nick</dc:creator>
		<pubDate>Sun, 30 Aug 2009 03:40:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-7654</guid>
		<description>As a REBOLer, I often find the # of lines of code in my projects laughably small.  Here&#039;s a full GUI FTP app in only &lt;i&gt;133 characters&lt;/i&gt; only native code (no external libraries).  Use it to browse, click to open, edit, and save changes to any file on your web server.  The FTP url does not need to be included in the code, and you can add/change paths and file names in the text field while the program is running.  If you enter a file name that doesn&#039;t exist, a new file will be created:

u: :to-url view layout[p: field&quot;ftp://user:pass@yourwebsite.com/&quot;[either dir? u v: value[f/data: read u v show f][editor u v]]f: text-list[editor u join p/text value]]

1 line :)</description>
		<content:encoded><![CDATA[<p>As a REBOLer, I often find the # of lines of code in my projects laughably small.  Here&#8217;s a full GUI FTP app in only <i>133 characters</i> only native code (no external libraries).  Use it to browse, click to open, edit, and save changes to any file on your web server.  The FTP url does not need to be included in the code, and you can add/change paths and file names in the text field while the program is running.  If you enter a file name that doesn&#8217;t exist, a new file will be created:</p>
<p>u: :to-url view layout[p: field"ftp://user:pass@yourwebsite.com/"[either dir? u v: value[f/data: read u v show f][editor u v]]f: text-list[editor u join p/text value]]</p>
<p>1 line :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Smacchia</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1328</link>
		<dc:creator>Patrick Smacchia</dc:creator>
		<pubDate>Thu, 19 Jun 2008 12:27:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1328</guid>
		<description>an easy an umbigous way to count LOC:
http://codebetter.com/blogs/patricksmacchia/archive/2007/10/03/how-do-you-count-your-number-of-lines-of-code-loc.aspx</description>
		<content:encoded><![CDATA[<p>an easy an umbigous way to count LOC:<br />
<a href="http://codebetter.com/blogs/patricksmacchia/archive/2007/10/03/how-do-you-count-your-number-of-lines-of-code-loc.aspx" rel="nofollow">http://codebetter.com/blogs/patricksmacchia/archive/2007/10/03/how-do-you-count-your-number-of-lines-of-code-loc.aspx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Satya Narayan Dash</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1223</link>
		<dc:creator>Satya Narayan Dash</dc:creator>
		<pubDate>Wed, 09 Apr 2008 04:09:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1223</guid>
		<description>LOC of code is always about estimation. An estimation (the name is &quot;estimation&quot;, not &quot;final effort&quot; or something like that) can be Order of Magnitude, Finite, Rough, Wet Finger type. And also it depends on which stage of the project you are in and what expertise you have. 

At the same time LOC is never used for estimation in a standalone way. It is via Baselining Techniques or COCOMO model. 

For LOC, SEI has specified which will be considered to be part of counting and which can not be. And again, your organization may have some different way of calculation also.

You can have a look at:

http://art-of-project-management.blogspot.com/2008/03/estimation-technique-lines-of-code.html

However, havin said all these, bottom line is what kind of engineers you have, what kind of expertise you have and above all the committment to work. Nothing can beat that. 

And may be that is reason why so many IT project (read project management) which are not in good shape even with proliferation of so many tools/techniques.</description>
		<content:encoded><![CDATA[<p>LOC of code is always about estimation. An estimation (the name is &#8220;estimation&#8221;, not &#8220;final effort&#8221; or something like that) can be Order of Magnitude, Finite, Rough, Wet Finger type. And also it depends on which stage of the project you are in and what expertise you have. </p>
<p>At the same time LOC is never used for estimation in a standalone way. It is via Baselining Techniques or COCOMO model. </p>
<p>For LOC, SEI has specified which will be considered to be part of counting and which can not be. And again, your organization may have some different way of calculation also.</p>
<p>You can have a look at:</p>
<p><a href="http://art-of-project-management.blogspot.com/2008/03/estimation-technique-lines-of-code.html" rel="nofollow">http://art-of-project-management.blogspot.com/2008/03/estimation-technique-lines-of-code.html</a></p>
<p>However, havin said all these, bottom line is what kind of engineers you have, what kind of expertise you have and above all the committment to work. Nothing can beat that. </p>
<p>And may be that is reason why so many IT project (read project management) which are not in good shape even with proliferation of so many tools/techniques.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: nWizard - Norbert Rakosi&#8217;s blog on Free Software development &#8230; JAVA &#8230; Personal Development&#8230; and &#8230; bad speling&#8230; &#187; Clear Simple Code vs Clever One-Liners</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1211</link>
		<dc:creator>nWizard - Norbert Rakosi&#8217;s blog on Free Software development &#8230; JAVA &#8230; Personal Development&#8230; and &#8230; bad speling&#8230; &#187; Clear Simple Code vs Clever One-Liners</dc:creator>
		<pubDate>Wed, 02 Apr 2008 06:22:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1211</guid>
		<description>[...] I found a nice article (actually the article found me&#8230;) written by Alexander Lucas titled Lines Of Code - Dispelling The Myths about a common project management error, which makes estimations and worse makes the evaluation of [...]</description>
		<content:encoded><![CDATA[<p>[...] I found a nice article (actually the article found me&#8230;) written by Alexander Lucas titled Lines Of Code &#8211; Dispelling The Myths about a common project management error, which makes estimations and worse makes the evaluation of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon Brooke</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1181</link>
		<dc:creator>Simon Brooke</dc:creator>
		<pubDate>Fri, 28 Mar 2008 10:36:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1181</guid>
		<description>I have a project that I&#039;ve been working on with one other guy for about three months. We had a discussion about how many lines of code we&#039;d produced. He guessed about 3,000. I guessed about 300,000. wc said more than 700,000. So what&#039;s going on?

In this project we are automatically parsing the schema of a large legacy database into a custom XML format, and then using XSLT to generate model and controller classes and Velocity macros for views to create a classic MVC application (in C# and Monorail, but actually that makes little difference). So very few of those lines of code are actually hand-written.

And that provides an interesting sidelight into the lines of code debate in more than one way. What are the &#039;source lines of code&#039;? The roughly 3,500 lines of sed script and XSL transforms which I actually wrote, the roughly 66,000 lines of the (automatically derived) database schema, or the 700,000 plus lines of C#, Velocity, NHibernate and other stuff which they generate? 

If I hadn&#039;t written the auto-generators, that code would still have to have been written (we might have been motivated to write it more tightly, but it would still have been in hundreds of thousands of SLOC). So the number of lines of code you actually write is not a good measure of project size, and the number of lines of code produced is not, either.

And remember, this is happening all down the software stack. I use XSL-T to generate Java, C# or some other high level language. The compiler takes that high level language and in an analogous process generates what in BCPL we used to call &#039;CINT Code&#039; - machine instructions for a virtual machine. The run time system takes the CINT code and generates machine instructions. And inside the processor, the microcode interpreter takes those machine instructions and uses them to generate actual machine operations.

At each stage in the process, the number of discrete statements increases. Which should you count? Why? Even at the level of a binary, a larger binary does not necessarily deliver more functionality than a smaller one.

The other thing is, where a mechanical process is generating code, fixing one bug in the generator will fix hundreds or even thousands of bugs in the generated code. So my hunch is that while functionality scales more-or-less with the number of generated lines of code, bugs scale more or less with the number of lines of code in the generator.</description>
		<content:encoded><![CDATA[<p>I have a project that I&#8217;ve been working on with one other guy for about three months. We had a discussion about how many lines of code we&#8217;d produced. He guessed about 3,000. I guessed about 300,000. wc said more than 700,000. So what&#8217;s going on?</p>
<p>In this project we are automatically parsing the schema of a large legacy database into a custom XML format, and then using XSLT to generate model and controller classes and Velocity macros for views to create a classic MVC application (in C# and Monorail, but actually that makes little difference). So very few of those lines of code are actually hand-written.</p>
<p>And that provides an interesting sidelight into the lines of code debate in more than one way. What are the &#8216;source lines of code&#8217;? The roughly 3,500 lines of sed script and XSL transforms which I actually wrote, the roughly 66,000 lines of the (automatically derived) database schema, or the 700,000 plus lines of C#, Velocity, NHibernate and other stuff which they generate? </p>
<p>If I hadn&#8217;t written the auto-generators, that code would still have to have been written (we might have been motivated to write it more tightly, but it would still have been in hundreds of thousands of SLOC). So the number of lines of code you actually write is not a good measure of project size, and the number of lines of code produced is not, either.</p>
<p>And remember, this is happening all down the software stack. I use XSL-T to generate Java, C# or some other high level language. The compiler takes that high level language and in an analogous process generates what in BCPL we used to call &#8216;CINT Code&#8217; &#8211; machine instructions for a virtual machine. The run time system takes the CINT code and generates machine instructions. And inside the processor, the microcode interpreter takes those machine instructions and uses them to generate actual machine operations.</p>
<p>At each stage in the process, the number of discrete statements increases. Which should you count? Why? Even at the level of a binary, a larger binary does not necessarily deliver more functionality than a smaller one.</p>
<p>The other thing is, where a mechanical process is generating code, fixing one bug in the generator will fix hundreds or even thousands of bugs in the generated code. So my hunch is that while functionality scales more-or-less with the number of generated lines of code, bugs scale more or less with the number of lines of code in the generator.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1180</link>
		<dc:creator>Bill</dc:creator>
		<pubDate>Fri, 28 Mar 2008 02:06:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1180</guid>
		<description>Alex,

There&#039;s a misunderstanding of the way people who advocate LOC as a metric actually use it.  Until that misunderstanding is corrected, this discussion will remain at an impasse.

@RG -- Can you contact me via email? I posted my contact info with my comment.</description>
		<content:encoded><![CDATA[<p>Alex,</p>
<p>There&#8217;s a misunderstanding of the way people who advocate LOC as a metric actually use it.  Until that misunderstanding is corrected, this discussion will remain at an impasse.</p>
<p>@RG &#8212; Can you contact me via email? I posted my contact info with my comment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RG</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1176</link>
		<dc:creator>RG</dc:creator>
		<pubDate>Thu, 27 Mar 2008 18:08:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1176</guid>
		<description>@Alex --

Out of curiosity, would you consider the libraries that come with a GPL/BSD J2EE stack to be in the quality bracket with .NET, or with a random GPL library?  What about the libraries that come with the Apache httpd server?  And are you really using C# and .NET as examples of robust code, where the bug forums are subject to public inspection?

In either case, if you are evaluating code that I wrote for a project, why on earth would you care how many LOC are in the libraries I use?  They are not part of the code you are evaluating, much like the OS, app server stack, etc.  Like you said, we need to know context.  If I am writing an application for Windows, we know the context is that the OS will slow everything down and make it crash sometimes for no fault of mine.  In other words, we know the libraries I use all the way down to the OS level are buggy.  But you don&#039;t count that against me.  Why not think the same way about OSS libraries?  Some are buggy, some aren&#039;t.  But here&#039;s another point for you to evaluate: choice of libraries.  Did I make a good choice or not?

Also, you may want to familiarize yourself with logical SLOC: http://en.wikipedia.org/wiki/Source_lines_of_code.  I think this concept will make you feel a lot better about LOC as a measurement.  Note that you can measure logical LOC without obfuscating code.  Specifying a method at 50 logical SLOC does tell us something useful about the code vs a method with the same goals that is 500 SLOC written by the same person.

Your arguments against LOC are similar to the arguments against using weight as a partial measure of health.  No, one number will not tell you everything you need to know about the situation.  But that doesn&#039;t mean you stop measuring it, or ignore the numbers you have.  Doctors are professionals who have to measure complex systems, and they work with the metrics that they can gather.  Why is this method not appropriate for software developers?

And again, what are you proposing instead?</description>
		<content:encoded><![CDATA[<p>@Alex &#8211;</p>
<p>Out of curiosity, would you consider the libraries that come with a GPL/BSD J2EE stack to be in the quality bracket with .NET, or with a random GPL library?  What about the libraries that come with the Apache httpd server?  And are you really using C# and .NET as examples of robust code, where the bug forums are subject to public inspection?</p>
<p>In either case, if you are evaluating code that I wrote for a project, why on earth would you care how many LOC are in the libraries I use?  They are not part of the code you are evaluating, much like the OS, app server stack, etc.  Like you said, we need to know context.  If I am writing an application for Windows, we know the context is that the OS will slow everything down and make it crash sometimes for no fault of mine.  In other words, we know the libraries I use all the way down to the OS level are buggy.  But you don&#8217;t count that against me.  Why not think the same way about OSS libraries?  Some are buggy, some aren&#8217;t.  But here&#8217;s another point for you to evaluate: choice of libraries.  Did I make a good choice or not?</p>
<p>Also, you may want to familiarize yourself with logical SLOC: <a href="http://en.wikipedia.org/wiki/Source_lines_of_code" rel="nofollow">http://en.wikipedia.org/wiki/Source_lines_of_code</a>.  I think this concept will make you feel a lot better about LOC as a measurement.  Note that you can measure logical LOC without obfuscating code.  Specifying a method at 50 logical SLOC does tell us something useful about the code vs a method with the same goals that is 500 SLOC written by the same person.</p>
<p>Your arguments against LOC are similar to the arguments against using weight as a partial measure of health.  No, one number will not tell you everything you need to know about the situation.  But that doesn&#8217;t mean you stop measuring it, or ignore the numbers you have.  Doctors are professionals who have to measure complex systems, and they work with the metrics that they can gather.  Why is this method not appropriate for software developers?</p>
<p>And again, what are you proposing instead?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1174</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Thu, 27 Mar 2008 16:13:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1174</guid>
		<description>@Bill-
Yes, under those circumstances X will probably have fewer bugs than Y.  However, that scenario involves the X solving a different problem than Y, which allows X to be as elegant and readable a solution as Y, and kind of skirts my point:  That past a certain point, reducing LOC can only be achieved by writing code that does more than one thing per line, at which point you&#039;re keeping the bug count, just upping the number of bugs per line.  If Y and X were different implementations of functionally equivalent code (let&#039;s say same function signatures, hypothetically equivalent from a black-box-testing perspective), it wouldn&#039;t be possible for X and Y to both be reasonable solutions.  If X was the reasonable solution, Y would have to be written by someone new to the language, or just preferred writing incredibly bloated code.  If Y was the reasonable solution, X would have to be some of the most horrendous, unmaintanable C agony I&#039;ve ever encountered.

RG-  There&#039;s an implied quality difference between packaged standard libraries for a language (C# depends on the .NET framework, for instance) and a third party library that you lifted off a website because it was GPL and did everything you wanted to do yourself.  &quot;Well-Tested in the field&quot; helps keep the bug count in check, but I&#039;ve yet to see a popular library under active development with a bug forum/list that&#039;s been empty for any real period of time.

I don&#039;t have anything against running code through a formatter-  It&#039;s the context vacuum that bothers me.  5 lines could mean two lines of &quot;meat&quot; and three lines of organization (brackets, whitespace, comments, whathaveyou).  Personally I have nothing against counting whitespace and documentation-  If you work somewhere that&#039;s judging you based on LOC, you should still get points for making your code more readable.  It&#039;s just that reporting a number like &quot;50 lines of code&quot; without specifying how it&#039;s counted doesn&#039;t tell us anything about the code quality or complexity.  Numbers without context are how that famous quote originated-  &quot;There are three kinds of lies.  Lies, Damned lies, and statistics.&quot;

&quot;a skilled Java programmer could write a Web content management application in fewer lines of code than a skilled assembly programer, in their respective languages&quot; - Definitely.  It would, indeed, be ridiculous to dispute that.  Also it definitely remains true throughought the higher level languages:  Ruby backends will have fewer LOC than C backends, etc.  But that&#039;s just another way that LOC can mean less in a vacuum of context.  Saying &quot;I wrote this in 600 lines of code&quot; tells us pretty much nothing of the code quality, bug count, or programmer&#039;s skill without knowing at LEAST what language they used, how much of the code was already done for them (again, not counting libraries bundled with the language distribution-  those simply establish a benchmark) by third party libraries/frameworks, and maybe actually looking at the code to see whether it was written in an intelligent manner or a clever(e.g Perl Golf) one.</description>
		<content:encoded><![CDATA[<p>@Bill-<br />
Yes, under those circumstances X will probably have fewer bugs than Y.  However, that scenario involves the X solving a different problem than Y, which allows X to be as elegant and readable a solution as Y, and kind of skirts my point:  That past a certain point, reducing LOC can only be achieved by writing code that does more than one thing per line, at which point you&#8217;re keeping the bug count, just upping the number of bugs per line.  If Y and X were different implementations of functionally equivalent code (let&#8217;s say same function signatures, hypothetically equivalent from a black-box-testing perspective), it wouldn&#8217;t be possible for X and Y to both be reasonable solutions.  If X was the reasonable solution, Y would have to be written by someone new to the language, or just preferred writing incredibly bloated code.  If Y was the reasonable solution, X would have to be some of the most horrendous, unmaintanable C agony I&#8217;ve ever encountered.</p>
<p>RG-  There&#8217;s an implied quality difference between packaged standard libraries for a language (C# depends on the .NET framework, for instance) and a third party library that you lifted off a website because it was GPL and did everything you wanted to do yourself.  &#8220;Well-Tested in the field&#8221; helps keep the bug count in check, but I&#8217;ve yet to see a popular library under active development with a bug forum/list that&#8217;s been empty for any real period of time.</p>
<p>I don&#8217;t have anything against running code through a formatter-  It&#8217;s the context vacuum that bothers me.  5 lines could mean two lines of &#8220;meat&#8221; and three lines of organization (brackets, whitespace, comments, whathaveyou).  Personally I have nothing against counting whitespace and documentation-  If you work somewhere that&#8217;s judging you based on LOC, you should still get points for making your code more readable.  It&#8217;s just that reporting a number like &#8220;50 lines of code&#8221; without specifying how it&#8217;s counted doesn&#8217;t tell us anything about the code quality or complexity.  Numbers without context are how that famous quote originated-  &#8220;There are three kinds of lies.  Lies, Damned lies, and statistics.&#8221;</p>
<p>&#8220;a skilled Java programmer could write a Web content management application in fewer lines of code than a skilled assembly programer, in their respective languages&#8221; &#8211; Definitely.  It would, indeed, be ridiculous to dispute that.  Also it definitely remains true throughought the higher level languages:  Ruby backends will have fewer LOC than C backends, etc.  But that&#8217;s just another way that LOC can mean less in a vacuum of context.  Saying &#8220;I wrote this in 600 lines of code&#8221; tells us pretty much nothing of the code quality, bug count, or programmer&#8217;s skill without knowing at LEAST what language they used, how much of the code was already done for them (again, not counting libraries bundled with the language distribution-  those simply establish a benchmark) by third party libraries/frameworks, and maybe actually looking at the code to see whether it was written in an intelligent manner or a clever(e.g Perl Golf) one.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1173</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Thu, 27 Mar 2008 14:51:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1173</guid>
		<description>Great article! Well put, and I totally agree.  I wish everyone felt this way...</description>
		<content:encoded><![CDATA[<p>Great article! Well put, and I totally agree.  I wish everyone felt this way&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Azzuwan</title>
		<link>http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/comment-page-1/#comment-1172</link>
		<dc:creator>Azzuwan</dc:creator>
		<pubDate>Thu, 27 Mar 2008 14:36:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.callingshotgun.net/geekery/lines-of-code-dispelling-the-myths/#comment-1172</guid>
		<description>The density of defects in codes cannot be measured by LOC.
Defects are &quot;non-deterministic&quot; in nature. Its not something 
that you can sample because it doesnt have predictable, 
reliable patterns that you can expect from every single 
programmer you manage. 

For example, Unless you know for a fact that Average 
programmer in the US, age between 25-30 makes n% of defects 
per million line of codes, this kind of defects measurement is 
absurd. You can only define the level of defects only if you 
know for certain what is the measuring stick. 

Fewer LOC is a good objective that every manager should drive 
their team to achieve. Having less code to manage is always a 
good thing. But it is superficial to equate LOC to quality. 

Increase in LOC is always a result of the increase in the 
number of coressponding process, or functions or modules that 
the programmer have to write. Sometimes things like defensive programming and reflective programming that wasnt in the official use case scenarios adds more LOC into the software but the software gains tremendous quality gains.

LOC metrics makes sense only if it is analyzed with the number 
of process the programmer had to translate into codes.
Better algorithm does not equal less codes.
Does the manager factor in that fact when considering overall 
quality of the software?.

Trying to put an &quot;ideal&quot; quantity to a dependant variable Y 
(quality / defect) when it is a product of independant 
variables Y=ax + bx + Nn which you cant quantify only gives
false sense of quality. How would one know how many LOC is ideal just by looking at the number of SLOC?

One line of text does not equal one line of code or program statement. It is not a measure of &quot;thinking unit&quot; of a programmer. Judging the competency of your programmers using LOC is ill informed and misguided.</description>
		<content:encoded><![CDATA[<p>The density of defects in codes cannot be measured by LOC.<br />
Defects are &#8220;non-deterministic&#8221; in nature. Its not something<br />
that you can sample because it doesnt have predictable,<br />
reliable patterns that you can expect from every single<br />
programmer you manage. </p>
<p>For example, Unless you know for a fact that Average<br />
programmer in the US, age between 25-30 makes n% of defects<br />
per million line of codes, this kind of defects measurement is<br />
absurd. You can only define the level of defects only if you<br />
know for certain what is the measuring stick. </p>
<p>Fewer LOC is a good objective that every manager should drive<br />
their team to achieve. Having less code to manage is always a<br />
good thing. But it is superficial to equate LOC to quality. </p>
<p>Increase in LOC is always a result of the increase in the<br />
number of coressponding process, or functions or modules that<br />
the programmer have to write. Sometimes things like defensive programming and reflective programming that wasnt in the official use case scenarios adds more LOC into the software but the software gains tremendous quality gains.</p>
<p>LOC metrics makes sense only if it is analyzed with the number<br />
of process the programmer had to translate into codes.<br />
Better algorithm does not equal less codes.<br />
Does the manager factor in that fact when considering overall<br />
quality of the software?.</p>
<p>Trying to put an &#8220;ideal&#8221; quantity to a dependant variable Y<br />
(quality / defect) when it is a product of independant<br />
variables Y=ax + bx + Nn which you cant quantify only gives<br />
false sense of quality. How would one know how many LOC is ideal just by looking at the number of SLOC?</p>
<p>One line of text does not equal one line of code or program statement. It is not a measure of &#8220;thinking unit&#8221; of a programmer. Judging the competency of your programmers using LOC is ill informed and misguided.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
