<?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: Programmers as Channel Surfers</title>
	<atom:link href="http://www.nagarro.com/blog/programmers-as-channel-surfers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/</link>
	<description>Nagarro blog: software development, design, architecture and usability</description>
	<lastBuildDate>Mon, 30 Aug 2010 22:35:21 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Amit Jain</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-162</link>
		<dc:creator>Amit Jain</dc:creator>
		<pubDate>Sun, 16 Dec 2007 00:07:39 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-162</guid>
		<description>I like the unit test strategy for &#039;ToDo&#039; things.
We , generally, write unit test cases againt the functionalities which are yet to be implemented and these unit tests keep failing till we implement them.

Infact, in our project, we often follow test driven methodology where we write test cases at the start and implement functionality to make the unit tests pass.</description>
		<content:encoded><![CDATA[<p>I like the unit test strategy for &#8216;ToDo&#8217; things.<br />
We , generally, write unit test cases againt the functionalities which are yet to be implemented and these unit tests keep failing till we implement them.</p>
<p>Infact, in our project, we often follow test driven methodology where we write test cases at the start and implement functionality to make the unit tests pass.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Kayser</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-161</link>
		<dc:creator>Bill Kayser</dc:creator>
		<pubDate>Wed, 17 Oct 2007 23:41:59 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-161</guid>
		<description>The way I deal with it is defining my own tags.  In Eclipse you can define new tags to appear in your task list, with different priorities.  So I typically use WHKTODO for my own list of things to follow-up on.</description>
		<content:encoded><![CDATA[<p>The way I deal with it is defining my own tags.  In Eclipse you can define new tags to appear in your task list, with different priorities.  So I typically use WHKTODO for my own list of things to follow-up on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Deepak Nohwal</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-160</link>
		<dc:creator>Deepak Nohwal</dc:creator>
		<pubDate>Wed, 17 Oct 2007 06:05:58 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-160</guid>
		<description>Throwing UnsupportedOperationException() is a pretty good idea that I follow in my code. However, one cannot always do that. For example, places like where you want to do some optimizations in the code but you cannot do due to lack of time.

// TODO:: Use MDBs insteadof Threads here.

Now, things like these are often put up as TODO comments in the code but they are not trivial enough to be done immediately or even in a code review. Not sure how we tackle this problem of these not-too-many TODOs. Thoughts?</description>
		<content:encoded><![CDATA[<p>Throwing UnsupportedOperationException() is a pretty good idea that I follow in my code. However, one cannot always do that. For example, places like where you want to do some optimizations in the code but you cannot do due to lack of time.</p>
<p>// TODO:: Use MDBs insteadof Threads here.</p>
<p>Now, things like these are often put up as TODO comments in the code but they are not trivial enough to be done immediately or even in a code review. Not sure how we tackle this problem of these not-too-many TODOs. Thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Kayser</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-159</link>
		<dc:creator>Bill Kayser</dc:creator>
		<pubDate>Wed, 17 Oct 2007 05:24:28 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-159</guid>
		<description>That&#039;s pretty definitive!  But I like it.  Even better is to write a unit test that calls the method.  Then you don&#039;t have to wait for a tester to trip over it, it shows up as a &quot;to-do&quot; every time you look at your unit test results, showing it as a failure.  I usually throw UnsupportedOperationException().</description>
		<content:encoded><![CDATA[<p>That&#8217;s pretty definitive!  But I like it.  Even better is to write a unit test that calls the method.  Then you don&#8217;t have to wait for a tester to trip over it, it shows up as a &#8220;to-do&#8221; every time you look at your unit test results, showing it as a failure.  I usually throw UnsupportedOperationException().</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramesh</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-158</link>
		<dc:creator>Ramesh</dc:creator>
		<pubDate>Tue, 16 Oct 2007 12:10:29 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-158</guid>
		<description>For very important TODO comments like Vaibhav mentioned:
//TODO: Implement the code to save the record

I prefer to put exception so that this could be easily figured out by developer (or tester in case developer is not doing the basic testing :) ).

e.g.
throw new ApplicationException(&quot;Save not implemented.&quot;);

I am not sure what is the best way of doing this. Any comments?</description>
		<content:encoded><![CDATA[<p>For very important TODO comments like Vaibhav mentioned:<br />
//TODO: Implement the code to save the record</p>
<p>I prefer to put exception so that this could be easily figured out by developer (or tester in case developer is not doing the basic testing <img src='http://www.nagarro.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>e.g.<br />
throw new ApplicationException(&#8221;Save not implemented.&#8221;);</p>
<p>I am not sure what is the best way of doing this. Any comments?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vaibhav</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-157</link>
		<dc:creator>Vaibhav</dc:creator>
		<pubDate>Mon, 15 Oct 2007 21:11:16 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-157</guid>
		<description>I agree... this doesn&#039;t work at all if you let the markers gather around. There needs to be a very disciplined approach to take care of these markers on a couple of times a week basis, if not on a daily basis.

If the list becomes too big, it is very easy to lose sight of that important // TODO:

//TODO: Need to rename this variable...
vs.
//TODO: Implement the code to save the record

In that sense, //TODO: comments are not all that different from normal comments. You need to know when to put which... :)</description>
		<content:encoded><![CDATA[<p>I agree&#8230; this doesn&#8217;t work at all if you let the markers gather around. There needs to be a very disciplined approach to take care of these markers on a couple of times a week basis, if not on a daily basis.</p>
<p>If the list becomes too big, it is very easy to lose sight of that important // TODO:</p>
<p>//TODO: Need to rename this variable&#8230;<br />
vs.<br />
//TODO: Implement the code to save the record</p>
<p>In that sense, //TODO: comments are not all that different from normal comments. You need to know when to put which&#8230; <img src='http://www.nagarro.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Kayser</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-156</link>
		<dc:creator>Bill Kayser</dc:creator>
		<pubDate>Mon, 15 Oct 2007 15:32:12 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-156</guid>
		<description>That&#039;s a good policy.  Eclipse does the same thing.  It&#039;s interesting though, that at some point on the project I&#039;m working on now, it just became noise.  When the current team took over, we found that view was filled with thousands of markers, FIXME&#039;s and TODO&#039;s, nearly all completely pedantic.  Their intentions were probably good.  I think what happened was they started this practice before using IDE&#039;s that could show them all in a single list view.</description>
		<content:encoded><![CDATA[<p>That&#8217;s a good policy.  Eclipse does the same thing.  It&#8217;s interesting though, that at some point on the project I&#8217;m working on now, it just became noise.  When the current team took over, we found that view was filled with thousands of markers, FIXME&#8217;s and TODO&#8217;s, nearly all completely pedantic.  Their intentions were probably good.  I think what happened was they started this practice before using IDE&#8217;s that could show them all in a single list view.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vaibhav</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-155</link>
		<dc:creator>Vaibhav</dc:creator>
		<pubDate>Mon, 15 Oct 2007 06:17:35 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-155</guid>
		<description>Right... in .Net (and I keep referring to that, because I have little Java experience)... I personally do and also encourage my team members to leave //TODO: comments.

The Visual Studio IDE lists ALL TODOs in a Task List whenever code is compiled. This way, a simple review to check if there are any pending TODOs helps wrap ends up before code commit/release.</description>
		<content:encoded><![CDATA[<p>Right&#8230; in .Net (and I keep referring to that, because I have little Java experience)&#8230; I personally do and also encourage my team members to leave //TODO: comments.</p>
<p>The Visual Studio IDE lists ALL TODOs in a Task List whenever code is compiled. This way, a simple review to check if there are any pending TODOs helps wrap ends up before code commit/release.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Kayser</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-154</link>
		<dc:creator>Bill Kayser</dc:creator>
		<pubDate>Sun, 14 Oct 2007 21:21:51 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-154</guid>
		<description>Also reminds me of the two flavors of comments I see all the time in our legacy code:

// HACK ALERT Really should be doing this thread safe...

// FIXME Need to localize this...

The first is like a pre-emptive strike described in that article, a little disclaimer added to soothe a guilty conscience.

The second is practially a joke.  I&#039;m sure a lot of developers think they&#039;ll go back after the release and fix all these, and maybe some do, but I see hundreds of these in code that hasn&#039;t changed for years.  It&#039;s like the advice I give new homeowners lamenting the fixup jobs they inherit when they move in: If something looks like it needs a repair or paint job, leave it for two months.  After that, there&#039;s a good chance it won&#039;t bother you anymore and you won&#039;t need to fix it.</description>
		<content:encoded><![CDATA[<p>Also reminds me of the two flavors of comments I see all the time in our legacy code:</p>
<p>// HACK ALERT Really should be doing this thread safe&#8230;</p>
<p>// FIXME Need to localize this&#8230;</p>
<p>The first is like a pre-emptive strike described in that article, a little disclaimer added to soothe a guilty conscience.</p>
<p>The second is practially a joke.  I&#8217;m sure a lot of developers think they&#8217;ll go back after the release and fix all these, and maybe some do, but I see hundreds of these in code that hasn&#8217;t changed for years.  It&#8217;s like the advice I give new homeowners lamenting the fixup jobs they inherit when they move in: If something looks like it needs a repair or paint job, leave it for two months.  After that, there&#8217;s a good chance it won&#8217;t bother you anymore and you won&#8217;t need to fix it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vaibhav</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-153</link>
		<dc:creator>Vaibhav</dc:creator>
		<pubDate>Sun, 14 Oct 2007 19:57:37 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-153</guid>
		<description>Another good use of comments is to send messages to the next developer who will inherit your code as to why you used a certain non-obvious way to implement things. I was reminded of this while I was reading a post by Phil Haack. The complete post is here:
http://haacked.com/archive/2007/10/07/the-greatest-compliment-a-developer-can-receive.aspx</description>
		<content:encoded><![CDATA[<p>Another good use of comments is to send messages to the next developer who will inherit your code as to why you used a certain non-obvious way to implement things. I was reminded of this while I was reading a post by Phil Haack. The complete post is here:<br />
<a href="http://haacked.com/archive/2007/10/07/the-greatest-compliment-a-developer-can-receive.aspx" rel="nofollow">http://haacked.com/archive/2007/10/07/the-greatest-compliment-a-developer-can-receive.aspx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Manas Fuloria</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-152</link>
		<dc:creator>Manas Fuloria</dc:creator>
		<pubDate>Sun, 14 Oct 2007 02:01:08 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-152</guid>
		<description>Bill, I&#039;m really enjoying this.

Just FYI, since we worked together I&#039;ve become a convert to the importance of usability. Everything we do as engineers is to enhance human experience - our own or that of others. (Even if you are designing a bridge - you don&#039;t want your users to get wet, right?!) It takes a lot of introspection and self-criticism to make human factors truly influence your design, but the results can be delightful.</description>
		<content:encoded><![CDATA[<p>Bill, I&#8217;m really enjoying this.</p>
<p>Just FYI, since we worked together I&#8217;ve become a convert to the importance of usability. Everything we do as engineers is to enhance human experience &#8211; our own or that of others. (Even if you are designing a bridge &#8211; you don&#8217;t want your users to get wet, right?!) It takes a lot of introspection and self-criticism to make human factors truly influence your design, but the results can be delightful.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vaibhav</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-151</link>
		<dc:creator>Vaibhav</dc:creator>
		<pubDate>Wed, 10 Oct 2007 08:06:07 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-151</guid>
		<description>Well I can mention my experiences as a .Net developer and the best practice that we have propagated in Nagarro mandates the use of _ prefix for private scoped variables at the class level.

Personally, I feel that the IDE intellisense is better utilized because pressing _ immediately filters the available options to only your private variables, which is really useful.

But yes, I used to understand Hungarian in terms of including type information to the variable, but that (as you said) is not needed anymore. Earlier it was for informational and guiding purpose to reduce chances of type mismatches.

However, I really like the Apps Hungarian concept a lot and would love to integrate it more and more into coding practices.</description>
		<content:encoded><![CDATA[<p>Well I can mention my experiences as a .Net developer and the best practice that we have propagated in Nagarro mandates the use of _ prefix for private scoped variables at the class level.</p>
<p>Personally, I feel that the IDE intellisense is better utilized because pressing _ immediately filters the available options to only your private variables, which is really useful.</p>
<p>But yes, I used to understand Hungarian in terms of including type information to the variable, but that (as you said) is not needed anymore. Earlier it was for informational and guiding purpose to reduce chances of type mismatches.</p>
<p>However, I really like the Apps Hungarian concept a lot and would love to integrate it more and more into coding practices.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Kayser</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-150</link>
		<dc:creator>Bill Kayser</dc:creator>
		<pubDate>Tue, 09 Oct 2007 18:23:40 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-150</guid>
		<description>Very interesting.  I guess I&#039;d forgotten that the term referred to a notation that had more to do with the type of the variable than it did the scope.  I&#039;m kind of embarrassed because that&#039;s not at all what I had in mind.  I don&#039;t think in Java with modern IDE&#039;s that there&#039;s much benefit to encoding the type of a variable in the name.  Encoding the scope, however, I find useful.  A prefix that indicates a member variable, parameter, or static.  There&#039;s a common idiom for final statics using ALL_UPPERCASE which is useful.

I&#039;d really like to know what other opinions are on the modified version of Hungarian notation where you encode the scope.  I always liked the convention from C++ of prefixing member variables with an underscore, but there doesn&#039;t seem to be a lot of affection for that convention among Java developers.</description>
		<content:encoded><![CDATA[<p>Very interesting.  I guess I&#8217;d forgotten that the term referred to a notation that had more to do with the type of the variable than it did the scope.  I&#8217;m kind of embarrassed because that&#8217;s not at all what I had in mind.  I don&#8217;t think in Java with modern IDE&#8217;s that there&#8217;s much benefit to encoding the type of a variable in the name.  Encoding the scope, however, I find useful.  A prefix that indicates a member variable, parameter, or static.  There&#8217;s a common idiom for final statics using ALL_UPPERCASE which is useful.</p>
<p>I&#8217;d really like to know what other opinions are on the modified version of Hungarian notation where you encode the scope.  I always liked the convention from C++ of prefixing member variables with an underscore, but there doesn&#8217;t seem to be a lot of affection for that convention among Java developers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vaibhav</title>
		<link>http://www.nagarro.com/blog/programmers-as-channel-surfers/comment-page-1/#comment-149</link>
		<dc:creator>Vaibhav</dc:creator>
		<pubDate>Tue, 02 Oct 2007 10:59:16 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.nagarro.net/kayser/programmers-as-channel-surfers/#comment-149</guid>
		<description>I didn&#039;t know this till some time ago myself. A lot of us think of Hungarian notation only as prefixing type information to the front of the variable, however that is technically  Systems Hungarian and not the more useful Apps Hungarian (which involves prefixing functional information to the variable name). More on Wikipedia:
http://en.wikipedia.org/wiki/Hungarian_notation</description>
		<content:encoded><![CDATA[<p>I didn&#8217;t know this till some time ago myself. A lot of us think of Hungarian notation only as prefixing type information to the front of the variable, however that is technically  Systems Hungarian and not the more useful Apps Hungarian (which involves prefixing functional information to the variable name). More on Wikipedia:<br />
<a href="http://en.wikipedia.org/wiki/Hungarian_notation" rel="nofollow">http://en.wikipedia.org/wiki/Hungarian_notation</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
