<?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: &#8216;//TODO&#8217; considered harmful</title>
	<atom:link href="http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/</link>
	<description>programming idiom and methodology</description>
	<lastBuildDate>Fri, 02 Dec 2011 04:24:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Tungano</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-232</link>
		<dc:creator>Tungano</dc:creator>
		<pubDate>Wed, 24 Jun 2009 14:18:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-232</guid>
		<description>Not something I am happy with, but where I work it&#039;s a customer decision whether or not to fix a bug. They tend to leave bugs in knowingly, or refuse to accept their existence because it&#039;s not directly visible to them.
&quot;We roughly loose 0.0001 percent in sales due to this bug, which costs such and such to fix&quot;, conclusion -&gt; it&#039;s not worth it to fix.
With the stinking code remaining to sit there and considering &#039;the code is the documentation&#039; leaving at least some markers around for the next unwary maintenance developer to run into it, is somewhat like &quot;be aware, unpaved road ahead&quot; or &quot;don&#039;t take a left the next turn or you&#039;ll drop down a big whooping crater&quot;.</description>
		<content:encoded><![CDATA[<p>Not something I am happy with, but where I work it&#8217;s a customer decision whether or not to fix a bug. They tend to leave bugs in knowingly, or refuse to accept their existence because it&#8217;s not directly visible to them.<br />
&#8220;We roughly loose 0.0001 percent in sales due to this bug, which costs such and such to fix&#8221;, conclusion -&gt; it&#8217;s not worth it to fix.<br />
With the stinking code remaining to sit there and considering &#8216;the code is the documentation&#8217; leaving at least some markers around for the next unwary maintenance developer to run into it, is somewhat like &#8220;be aware, unpaved road ahead&#8221; or &#8220;don&#8217;t take a left the next turn or you&#8217;ll drop down a big whooping crater&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scot Mcphee</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-231</link>
		<dc:creator>Scot Mcphee</dc:creator>
		<pubDate>Wed, 24 Jun 2009 13:59:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-231</guid>
		<description>&quot;Typically the bug was already there and should have already -been- handled before running into it (again and again)&quot;

Well, again, I have to say: what&#039;s stopping your from fixing it now or any one of those other times. In other words, at one extreme you&#039;re just accepting a situation that&#039;s second-best, and at the other extreme, you&#039;re collaborating in making the problem worse.</description>
		<content:encoded><![CDATA[<p>&#8220;Typically the bug was already there and should have already -been- handled before running into it (again and again)&#8221;</p>
<p>Well, again, I have to say: what&#8217;s stopping your from fixing it now or any one of those other times. In other words, at one extreme you&#8217;re just accepting a situation that&#8217;s second-best, and at the other extreme, you&#8217;re collaborating in making the problem worse.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tungano</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-230</link>
		<dc:creator>Tungano</dc:creator>
		<pubDate>Wed, 24 Jun 2009 13:46:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-230</guid>
		<description>When programming in a flow it can be very interrupting having to stop work and go to an issue tracker or backlog to insert and document the issue.
The &#039;quick notes&#039; you do there typically never get put in sprint by the customer anyhow since they don&#039;t understand what&#039;s been written.
Leaving something behind at least lets you stay focused on what the customer -does- find important. 
Typically the bug was already there and should have already -been- handled before running into it (again and again). Often the NOTE or TODO is additional to an bug item already existant somewhere deep down on the backlog, the section that never sees the light of day.
At least now you leave a sign behind which can be complimentary or help when you -do- try a real effort for the customer to take notice of the &#039;under the hood&#039; issue.</description>
		<content:encoded><![CDATA[<p>When programming in a flow it can be very interrupting having to stop work and go to an issue tracker or backlog to insert and document the issue.<br />
The &#8216;quick notes&#8217; you do there typically never get put in sprint by the customer anyhow since they don&#8217;t understand what&#8217;s been written.<br />
Leaving something behind at least lets you stay focused on what the customer -does- find important.<br />
Typically the bug was already there and should have already -been- handled before running into it (again and again). Often the NOTE or TODO is additional to an bug item already existant somewhere deep down on the backlog, the section that never sees the light of day.<br />
At least now you leave a sign behind which can be complimentary or help when you -do- try a real effort for the customer to take notice of the &#8216;under the hood&#8217; issue.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scot Mcphee</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-197</link>
		<dc:creator>Scot Mcphee</dc:creator>
		<pubDate>Mon, 08 Jun 2009 20:26:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-197</guid>
		<description>&quot;I didn’t have time to do it&quot; just mean your environment is deciding that code quality is not important enough.

&quot;Those are all external to the code&quot; that&#039;s true enough as it is, but they are not external to visibility, and to other members of the team not currently reading the file containing the &#039;//TODO&#039;. My point still stands;

1. real future work due to owner requirement (backlog)

2. definite refactoring needed (fix it then and there)

3. bug (fix it then and there, or file a bug).

4. &quot;enhancement&quot; required later (YAGNI).</description>
		<content:encoded><![CDATA[<p>&#8220;I didn’t have time to do it&#8221; just mean your environment is deciding that code quality is not important enough.</p>
<p>&#8220;Those are all external to the code&#8221; that&#8217;s true enough as it is, but they are not external to visibility, and to other members of the team not currently reading the file containing the &#8216;//TODO&#8217;. My point still stands;</p>
<p>1. real future work due to owner requirement (backlog)</p>
<p>2. definite refactoring needed (fix it then and there)</p>
<p>3. bug (fix it then and there, or file a bug).</p>
<p>4. &#8220;enhancement&#8221; required later (YAGNI).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-196</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Mon, 08 Jun 2009 18:14:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-196</guid>
		<description>There&#039;s nothing broken about leaving a reminder to yourself or another team member. Are there other ways to leave reminders? Sure; create something in an issue tracker, &quot;write a story&quot;, and so on. Those are all external to the code.

Undisciplined use of &quot;TODO&quot; is bad, just like anything else. But if I&#039;m in flow a &quot;TODO&quot; (or &quot;FIXME&quot; or whatever) captures all I need to know, quickly and efficiently, doesn&#039;t add significant cognitive overhead/disruption, and can be trivially returned to.</description>
		<content:encoded><![CDATA[<p>There&#8217;s nothing broken about leaving a reminder to yourself or another team member. Are there other ways to leave reminders? Sure; create something in an issue tracker, &#8220;write a story&#8221;, and so on. Those are all external to the code.</p>
<p>Undisciplined use of &#8220;TODO&#8221; is bad, just like anything else. But if I&#8217;m in flow a &#8220;TODO&#8221; (or &#8220;FIXME&#8221; or whatever) captures all I need to know, quickly and efficiently, doesn&#8217;t add significant cognitive overhead/disruption, and can be trivially returned to.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Doe</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-195</link>
		<dc:creator>John Doe</dc:creator>
		<pubDate>Mon, 08 Jun 2009 16:40:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-195</guid>
		<description>Usually TODO means will be done when I&#039;m gone, I was aware of it but I didn&#039;t have time to do it.</description>
		<content:encoded><![CDATA[<p>Usually TODO means will be done when I&#8217;m gone, I was aware of it but I didn&#8217;t have time to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bruce Goldstein</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-194</link>
		<dc:creator>Bruce Goldstein</dc:creator>
		<pubDate>Mon, 08 Jun 2009 16:22:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-194</guid>
		<description>I totally agree. When I see lots of //To Dos in a code base I know it is not well maintained. The number of these artifacts always goes up and never down and no one ever fixes them at a future \meeting\ or such as they just get lost. If you need to mark code then simply say in your bug report or story which project, file and line number. This is just as good and keeps the info with the bug which is where it should be. Note that I use java and have read lots of source code and I do not see a lot of //To Do s there.</description>
		<content:encoded><![CDATA[<p>I totally agree. When I see lots of //To Dos in a code base I know it is not well maintained. The number of these artifacts always goes up and never down and no one ever fixes them at a future \meeting\ or such as they just get lost. If you need to mark code then simply say in your bug report or story which project, file and line number. This is just as good and keeps the info with the bug which is where it should be. Note that I use java and have read lots of source code and I do not see a lot of //To Do s there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scot Mcphee</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-192</link>
		<dc:creator>Scot Mcphee</dc:creator>
		<pubDate>Sun, 07 Jun 2009 23:33:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-192</guid>
		<description>&lt;blockquote&gt;
There are certain times when code quality does take a backseat to how fast a deliverable can be produced. Usually this is a sign of poor management.
&lt;/blockquote&gt;

The last sentence is I think the key one. Management that doesn&#039;t value engineering practices is very frustrating to work with. It&#039;s lucky I guess that we don&#039;t generally make anything like bridges or nuclear power stations where poor engineering can easily kill someone. However I believe this complacency on the part of management needs to be challenged by developers if it&#039;s ever to be overcome.</description>
		<content:encoded><![CDATA[<blockquote><p>
There are certain times when code quality does take a backseat to how fast a deliverable can be produced. Usually this is a sign of poor management.
</p></blockquote>
<p>The last sentence is I think the key one. Management that doesn&#8217;t value engineering practices is very frustrating to work with. It&#8217;s lucky I guess that we don&#8217;t generally make anything like bridges or nuclear power stations where poor engineering can easily kill someone. However I believe this complacency on the part of management needs to be challenged by developers if it&#8217;s ever to be overcome.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scot Mcphee</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-191</link>
		<dc:creator>Scot Mcphee</dc:creator>
		<pubDate>Sun, 07 Jun 2009 23:20:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-191</guid>
		<description>&lt;blockquote&gt;There are certain times when code quality does take a backseat to how fast a deliverable can be produced. Usually this is a sign of poor management.&lt;/blockquote&gt;

Kevin, yes, the last sentence is the key about poor management. It possible to enlighten them (my commiserations if you&#039;ve tried and failed). In my mind it&#039;s a symptom that the engineering practices of the engineers you&#039;ve employed aren&#039;t valued by their managers. It&#039;s lucky we&#039;re not building bridges or nuclear power stations or anything that could kill someone as a result of its poor engineering I suppose.</description>
		<content:encoded><![CDATA[<blockquote><p>There are certain times when code quality does take a backseat to how fast a deliverable can be produced. Usually this is a sign of poor management.</p></blockquote>
<p>Kevin, yes, the last sentence is the key about poor management. It possible to enlighten them (my commiserations if you&#8217;ve tried and failed). In my mind it&#8217;s a symptom that the engineering practices of the engineers you&#8217;ve employed aren&#8217;t valued by their managers. It&#8217;s lucky we&#8217;re not building bridges or nuclear power stations or anything that could kill someone as a result of its poor engineering I suppose.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin</title>
		<link>http://www.crazymcphee.net/x/2009/06/06/todo-considered-harmful/comment-page-1/#comment-190</link>
		<dc:creator>Kevin</dc:creator>
		<pubDate>Sun, 07 Jun 2009 22:59:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.crazymcphee.net/x/?p=386#comment-190</guid>
		<description>Ideally, this is a really good idea and developers should take note. Why add a TODO comment, when you can just do it right away and get it over with?

Back to reality... Working in small shops (less than 5 developers) with extremely short time-lines, limited resources, and juggling multiple projects on a daily basis, it&#039;s a fantasy to expect 100% of the code that will be produced is up to standards.  There are certain times when code quality does take a backseat to how fast a deliverable can be produced.  Usually this is a sign of poor management.</description>
		<content:encoded><![CDATA[<p>Ideally, this is a really good idea and developers should take note. Why add a TODO comment, when you can just do it right away and get it over with?</p>
<p>Back to reality&#8230; Working in small shops (less than 5 developers) with extremely short time-lines, limited resources, and juggling multiple projects on a daily basis, it&#8217;s a fantasy to expect 100% of the code that will be produced is up to standards.  There are certain times when code quality does take a backseat to how fast a deliverable can be produced.  Usually this is a sign of poor management.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

