<?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: Isn&#8217;t quality code a feature ?</title>
	<atom:link href="http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/</link>
	<description>"I write pretty software"</description>
	<lastBuildDate>Mon, 23 Jan 2012 10:32:42 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: Allan</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-46544</link>
		<dc:creator>Allan</dc:creator>
		<pubDate>Fri, 24 Oct 2008 23:08:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-46544</guid>
		<description>Arpit,

I tried posting the below on your About page but ran into an error.

You have a really interesting background.  Do you have any place online you display your illustration art for magazines and newspapers?

Are you open to side projects?  I&#039;m close to securing some funding and I&#039;d like to explore an opportunity to work with you.  Please email me a response.  Thanks!</description>
		<content:encoded><![CDATA[<p>Arpit,</p>
<p>I tried posting the below on your About page but ran into an error.</p>
<p>You have a really interesting background.  Do you have any place online you display your illustration art for magazines and newspapers?</p>
<p>Are you open to side projects?  I&#8217;m close to securing some funding and I&#8217;d like to explore an opportunity to work with you.  Please email me a response.  Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: paradox1x</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-46266</link>
		<dc:creator>paradox1x</dc:creator>
		<pubDate>Sun, 19 Oct 2008 17:30:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-46266</guid>
		<description>&lt;strong&gt;Software Development Links: Practices and Thoughts Edition...&lt;/strong&gt;

Three links from two Comcasters: codeartisan: Jon Moore: Measure your improvements codeartisan: Jon Moore: Cracking down on technical debt code......</description>
		<content:encoded><![CDATA[<p><strong>Software Development Links: Practices and Thoughts Edition&#8230;</strong></p>
<p>Three links from two Comcasters: codeartisan: Jon Moore: Measure your improvements codeartisan: Jon Moore: Cracking down on technical debt code&#8230;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Guest</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-45789</link>
		<dc:creator>Matt Guest</dc:creator>
		<pubDate>Thu, 09 Oct 2008 13:01:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-45789</guid>
		<description>To me maintaining code quality is all about the broken window scenario explained in the book &#039;The Pragmatic Programmer&#039;
The theory comes from inner city police who realized that a single broken window left unattended in a building will start a cycle of neglect that will plummet it into a state of unrecoverable disrepair.

I&#039;m sure we&#039;ve all patched a piece of code in a hurry to quickly get around a problem that we didn&#039;t feel we had the time, responsibility or knowledge to fix. There are usually comments around the offending code like &quot;Temporary fix to get around such and such&quot; or &quot;TODO: remove after testing&quot;

Every one of these patches a developer comes across in the code effects their morale and overall confidence in the project and raises the possibility of them taking the quick and dirty route again. Unless these are addressed rather quickly you&#039;ll end up with a mess of spaghetti code that is going to cause issues down the road.

In my experience team-based code reviews help to raise awareness of the code with developers who may not normally get a chance to see the big picture, gives coders the chance to show off a little and also makes them accountable for their work. When it comes down to it, nobody wants to let down the team. And if they do then that&#039;s another problem all together.</description>
		<content:encoded><![CDATA[<p>To me maintaining code quality is all about the broken window scenario explained in the book &#8216;The Pragmatic Programmer&#8217;<br />
The theory comes from inner city police who realized that a single broken window left unattended in a building will start a cycle of neglect that will plummet it into a state of unrecoverable disrepair.</p>
<p>I&#8217;m sure we&#8217;ve all patched a piece of code in a hurry to quickly get around a problem that we didn&#8217;t feel we had the time, responsibility or knowledge to fix. There are usually comments around the offending code like &#8220;Temporary fix to get around such and such&#8221; or &#8220;TODO: remove after testing&#8221;</p>
<p>Every one of these patches a developer comes across in the code effects their morale and overall confidence in the project and raises the possibility of them taking the quick and dirty route again. Unless these are addressed rather quickly you&#8217;ll end up with a mess of spaghetti code that is going to cause issues down the road.</p>
<p>In my experience team-based code reviews help to raise awareness of the code with developers who may not normally get a chance to see the big picture, gives coders the chance to show off a little and also makes them accountable for their work. When it comes down to it, nobody wants to let down the team. And if they do then that&#8217;s another problem all together.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: arpit</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-45784</link>
		<dc:creator>arpit</dc:creator>
		<pubDate>Thu, 09 Oct 2008 02:16:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-45784</guid>
		<description>@Jon 
Very cool. I am glad you have a formal place in your work-flow for code quality.</description>
		<content:encoded><![CDATA[<p>@Jon<br />
Very cool. I am glad you have a formal place in your work-flow for code quality.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karl</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-45783</link>
		<dc:creator>Karl</dc:creator>
		<pubDate>Thu, 09 Oct 2008 02:15:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-45783</guid>
		<description>Mat and crew have us working with Review Board for a similar effect Jon.  I think that comes down to the crux of it.</description>
		<content:encoded><![CDATA[<p>Mat and crew have us working with Review Board for a similar effect Jon.  I think that comes down to the crux of it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon M.</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-45782</link>
		<dc:creator>Jon M.</dc:creator>
		<pubDate>Thu, 09 Oct 2008 02:08:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-45782</guid>
		<description>We&#039;re trying a new method on our team: one of the &quot;Definitions of Done&quot; for our stories that involve code changes is simply that &quot;someone else has looked at the code you&#039;ve written&quot;. You can get there anyway you want (pair programming, actual code reviews, you write the unit tests / I&#039;ll write the code), etc. It doesn&#039;t actually take that long to do, and I think is having a beneficial impact on our code quality.</description>
		<content:encoded><![CDATA[<p>We&#8217;re trying a new method on our team: one of the &#8220;Definitions of Done&#8221; for our stories that involve code changes is simply that &#8220;someone else has looked at the code you&#8217;ve written&#8221;. You can get there anyway you want (pair programming, actual code reviews, you write the unit tests / I&#8217;ll write the code), etc. It doesn&#8217;t actually take that long to do, and I think is having a beneficial impact on our code quality.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karl</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-45781</link>
		<dc:creator>Karl</dc:creator>
		<pubDate>Thu, 09 Oct 2008 01:38:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-45781</guid>
		<description>Great post and good questions. And you&#039;re right, there is a great deal of subjectivity here.

I think, ultimately, the best judge of code quality is that what you&#039;ve developed can be understood by, maintained by, extended by, optimized by, a team of fellow developers, and has a low WTF per minute by them (see http://www.osnews.com/story/19266/WTFs_m per Mat of course ).

That&#039;s not a developer itch.  That is efficiency in time to deliver new features and handle maintenance. 

How you judge that is by tracking how often developers must fix bugs related to your code, develop work arounds not addressed by your code, and are blocked for inordinate amounts of time by not being able to refactor or improve your code.

It doesn&#039;t happen by accident.  Simple strategies like Make It Work, Make It Right, Make It Fast (see: http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast) , Test Driven Development (see: http://c2.com/cgi/wiki?TestFirstDesign), Spartan Programming (see: http://www.codinghorror.com/blog/archives/001148.html), in the Java realm using well known design patterns, and using existing libraries wherever possible (don&#039;t reinvent the wheel - keep your hands off the keyboard !!!!!) help us towards these goals.  In addition there are tools like FindBugs (see: http://findbugs.sourceforge.net/manual/eclipse.html) that help us here as well.

Understanding the problem domain you are solving influences matters a great deal as well.  What are the common issues your fellow developers face when working on solutions? Does what your developing help alleviate these issues or aggravate them for no good reason (other than intellectual curiosity)?</description>
		<content:encoded><![CDATA[<p>Great post and good questions. And you&#8217;re right, there is a great deal of subjectivity here.</p>
<p>I think, ultimately, the best judge of code quality is that what you&#8217;ve developed can be understood by, maintained by, extended by, optimized by, a team of fellow developers, and has a low WTF per minute by them (see <a href="http://www.osnews.com/story/19266/WTFs_m" rel="nofollow">http://www.osnews.com/story/19266/WTFs_m</a> per Mat of course ).</p>
<p>That&#8217;s not a developer itch.  That is efficiency in time to deliver new features and handle maintenance. </p>
<p>How you judge that is by tracking how often developers must fix bugs related to your code, develop work arounds not addressed by your code, and are blocked for inordinate amounts of time by not being able to refactor or improve your code.</p>
<p>It doesn&#8217;t happen by accident.  Simple strategies like Make It Work, Make It Right, Make It Fast (see: <a href="http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast" rel="nofollow">http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast</a>) , Test Driven Development (see: <a href="http://c2.com/cgi/wiki?TestFirstDesign" rel="nofollow">http://c2.com/cgi/wiki?TestFirstDesign</a>), Spartan Programming (see: <a href="http://www.codinghorror.com/blog/archives/001148.html" rel="nofollow">http://www.codinghorror.com/blog/archives/001148.html</a>), in the Java realm using well known design patterns, and using existing libraries wherever possible (don&#8217;t reinvent the wheel &#8211; keep your hands off the keyboard !!!!!) help us towards these goals.  In addition there are tools like FindBugs (see: <a href="http://findbugs.sourceforge.net/manual/eclipse.html" rel="nofollow">http://findbugs.sourceforge.net/manual/eclipse.html</a>) that help us here as well.</p>
<p>Understanding the problem domain you are solving influences matters a great deal as well.  What are the common issues your fellow developers face when working on solutions? Does what your developing help alleviate these issues or aggravate them for no good reason (other than intellectual curiosity)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: arpit</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-45778</link>
		<dc:creator>arpit</dc:creator>
		<pubDate>Thu, 09 Oct 2008 01:04:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-45778</guid>
		<description>@Campbell, 
yeah right next to -create-bugs=false ;)</description>
		<content:encoded><![CDATA[<p>@Campbell,<br />
yeah right next to -create-bugs=false <img src='http://www.arpitonline.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Campbell</title>
		<link>http://www.arpitonline.com/blog/2008/10/08/isnt-quality-code-a-feature/comment-page-1/#comment-45777</link>
		<dc:creator>Campbell</dc:creator>
		<pubDate>Thu, 09 Oct 2008 00:49:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.arpitonline.com/blog/?p=149#comment-45777</guid>
		<description>Isn&#039;t there a compiler switch -make-good-quality?</description>
		<content:encoded><![CDATA[<p>Isn&#8217;t there a compiler switch -make-good-quality?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

