<?xml version="1.0" encoding="utf-8"?><!-- generator="wordpress/2.0.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: What to do about TODOs</title>
	<link>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/</link>
	<description>A blog about programming in .NET and Java</description>
	<pubDate>Thu, 20 Nov 2008 15:13:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.2</generator>

	<item>
		<title>by: Paul Gielens</title>
		<link>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-62</link>
		<pubDate>Fri, 25 Mar 2005 22:57:17 +0000</pubDate>
		<guid>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-62</guid>
					<description>Keep your code clean from todo’s and fixme’s. If the code isn’t worth to improve on the spot, then why bother wasting precious time commenting (and hoping your comment is readable for other humans) instead of fixing whatever needs to be fixed. At least take the time to check or write a unit test to prove your finding.

Steve Currency:
“Before a release, you make sure there are no more TODO’s in the code. Eclipse gives you a list.???

What company you work for? This sounds as the ideal world to me, most of us mark “release??? as crunch time and squashing bugs has priority over todo’s at our house.

Marc Logemann:
You should get yourself a copy of Resharper and (just for fun) run through your code. You’ll be surprised :D Seriously if you need fragments of code to “test something out??? you have no clue what your doing in the first place. To give an example: Recently I removed about 30% of unused/obsolete code in our project because one of my colleagues used the same (I’ll get that later) approach.</description>
		<content:encoded><![CDATA[<p>Keep your code clean from todo’s and fixme’s. If the code isn’t worth to improve on the spot, then why bother wasting precious time commenting (and hoping your comment is readable for other humans) instead of fixing whatever needs to be fixed. At least take the time to check or write a unit test to prove your finding.</p>
<p>Steve Currency:<br />
“Before a release, you make sure there are no more TODO’s in the code. Eclipse gives you a list.???</p>
<p>What company you work for? This sounds as the ideal world to me, most of us mark “release??? as crunch time and squashing bugs has priority over todo’s at our house.</p>
<p>Marc Logemann:<br />
You should get yourself a copy of Resharper and (just for fun) run through your code. You’ll be surprised <img src='http://blog.springsource.com/arjen/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Seriously if you need fragments of code to “test something out??? you have no clue what your doing in the first place. To give an example: Recently I removed about 30% of unused/obsolete code in our project because one of my colleagues used the same (I’ll get that later) approach.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Michael Slattery</title>
		<link>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-58</link>
		<pubDate>Tue, 22 Mar 2005 19:05:20 +0000</pubDate>
		<guid>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-58</guid>
					<description>I agree.  TODO's are litter.  I use them a lot, but I remove them BEFORE CHECKIN.  If you need them there longer than that you should record them in a tracking system (like Bugzilla).  Put code blocks you would have commented out into the tracking system.

The goal you achieve: organization of your thoughts and your code.</description>
		<content:encoded><![CDATA[<p>I agree.  TODO&#8217;s are litter.  I use them a lot, but I remove them BEFORE CHECKIN.  If you need them there longer than that you should record them in a tracking system (like Bugzilla).  Put code blocks you would have commented out into the tracking system.</p>
<p>The goal you achieve: organization of your thoughts and your code.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Arjen</title>
		<link>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-56</link>
		<pubDate>Tue, 22 Mar 2005 16:21:46 +0000</pubDate>
		<guid>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-56</guid>
					<description>Anonymous, I have worked on big systems, and I prefer to do them in an XP-fashion. This means that I'm constantly adding features (stories) that the customer requested. Even though these features change stuff accross all layers, I commit them as a whole. Thus, the system as a whole is always in a workable state, and doesn't require reminders. If it does, I use a external system, such as JIRA.</description>
		<content:encoded><![CDATA[<p>Anonymous, I have worked on big systems, and I prefer to do them in an XP-fashion. This means that I&#8217;m constantly adding features (stories) that the customer requested. Even though these features change stuff accross all layers, I commit them as a whole. Thus, the system as a whole is always in a workable state, and doesn&#8217;t require reminders. If it does, I use a external system, such as JIRA.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Roland Chan</title>
		<link>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-55</link>
		<pubDate>Tue, 22 Mar 2005 15:58:17 +0000</pubDate>
		<guid>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-55</guid>
					<description>I have to agree with the poster.  You should be checking in regularly code that is doing exactly what it is supposed to do.  Not what you're hoping it should do or planning on it to do.

If you're tempted to write a TODO and practice unit testing or better yet TDD, then your better off writing a failing test.  This is better than any ambiguous documentation that might unknowingly be misinterpreted by your colleagues.

This is perfectly valid for the algorithm improvements the previous commentor made.  If I can think of some measurable way to improve the algorithm and write it down in the form of a javadoc, then I'm probably well equipped enough to write a unit test for it.

If I'm completely stumped on the requirement then I'll flag the use case or user story for follow up, or raise this as a risk to be reviewed during the project steering process.

I blogged about this too last month: http://www.thechanfam.net/wordpress/?p=24</description>
		<content:encoded><![CDATA[<p>I have to agree with the poster.  You should be checking in regularly code that is doing exactly what it is supposed to do.  Not what you&#8217;re hoping it should do or planning on it to do.</p>
<p>If you&#8217;re tempted to write a TODO and practice unit testing or better yet TDD, then your better off writing a failing test.  This is better than any ambiguous documentation that might unknowingly be misinterpreted by your colleagues.</p>
<p>This is perfectly valid for the algorithm improvements the previous commentor made.  If I can think of some measurable way to improve the algorithm and write it down in the form of a javadoc, then I&#8217;m probably well equipped enough to write a unit test for it.</p>
<p>If I&#8217;m completely stumped on the requirement then I&#8217;ll flag the use case or user story for follow up, or raise this as a risk to be reviewed during the project steering process.</p>
<p>I blogged about this too last month: <a href='http://www.thechanfam.net/wordpress/?p=24' rel='nofollow'>http://www.thechanfam.net/wordpress/?p=24</a></p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Marc Logemann</title>
		<link>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-54</link>
		<pubDate>Mon, 21 Mar 2005 23:51:56 +0000</pubDate>
		<guid>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-54</guid>
					<description>Have to completely disagree on your post. First of all, TODOs are not about bugs, its about things you can do better but dont have the time or the skill to do now. Think about a sorting algorithm which basically works but could be faster somehow. This is a perfect place for a TODO, of course you should allways use a bug/defect tracking tool to further express that you need to work on that sometime.

Comenting out blocks is also perfectly valid for scenarios where you want to test something but dont want to remove an alternative way of doing things. You can argue that in a versioned world, you can retrieve the old stuff anyway, this is true, but sometimes its easier to leave this in the code for some beta releases or whatsoever. Later on you should indeed remove it completely. 

But when reading other peoples code, seeing this kind of stuff is definitely one of the smallest anoyances i can imagine.</description>
		<content:encoded><![CDATA[<p>Have to completely disagree on your post. First of all, TODOs are not about bugs, its about things you can do better but dont have the time or the skill to do now. Think about a sorting algorithm which basically works but could be faster somehow. This is a perfect place for a TODO, of course you should allways use a bug/defect tracking tool to further express that you need to work on that sometime.</p>
<p>Comenting out blocks is also perfectly valid for scenarios where you want to test something but dont want to remove an alternative way of doing things. You can argue that in a versioned world, you can retrieve the old stuff anyway, this is true, but sometimes its easier to leave this in the code for some beta releases or whatsoever. Later on you should indeed remove it completely. </p>
<p>But when reading other peoples code, seeing this kind of stuff is definitely one of the smallest anoyances i can imagine.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Anonymous</title>
		<link>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-53</link>
		<pubDate>Mon, 21 Mar 2005 23:45:45 +0000</pubDate>
		<guid>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-53</guid>
					<description>I guess you haven't ever worked on big systems.  When building a use case, you often run into issues that can't be resolved immediately.  You might need a meeting or you might be waiting for information.  This is what TODO's are for.  They tell you the code isn't finished, but it is finished enough to check in.

Before a release, you make sure there are no more TODO's in the code.  Eclipse gives you a list.</description>
		<content:encoded><![CDATA[<p>I guess you haven&#8217;t ever worked on big systems.  When building a use case, you often run into issues that can&#8217;t be resolved immediately.  You might need a meeting or you might be waiting for information.  This is what TODO&#8217;s are for.  They tell you the code isn&#8217;t finished, but it is finished enough to check in.</p>
<p>Before a release, you make sure there are no more TODO&#8217;s in the code.  Eclipse gives you a list.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Steve Currency</title>
		<link>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-52</link>
		<pubDate>Mon, 21 Mar 2005 23:24:06 +0000</pubDate>
		<guid>http://blog.springsource.com/arjen/archives/2005/03/21/what-to-do-about-todos/#comment-52</guid>
					<description>Lingering TODO is indeed a problem, but not huge.  I personally use TODOs but as a milestone approaches, we make sure that all TODOs are moved to a more appropriate forum like Bugzilla.  

TODOs are then great for putting in as you go to make sure you don't forget anything later.  You then just have to have the disipline to grep for them and take care of them when appropriate.  That means before you commit or before release.</description>
		<content:encoded><![CDATA[<p>Lingering TODO is indeed a problem, but not huge.  I personally use TODOs but as a milestone approaches, we make sure that all TODOs are moved to a more appropriate forum like Bugzilla.  </p>
<p>TODOs are then great for putting in as you go to make sure you don&#8217;t forget anything later.  You then just have to have the disipline to grep for them and take care of them when appropriate.  That means before you commit or before release.</p>
]]></content:encoded>
				</item>
</channel>
</rss>
