<?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: Understanding Why</title>
	<atom:link href="http://www.programmersparadox.com/2008/09/06/understanding-why/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programmersparadox.com/2008/09/06/understanding-why/</link>
	<description>Is anything I write real?</description>
	<lastBuildDate>Wed, 21 Apr 2010 13:23:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Kevin</title>
		<link>http://www.programmersparadox.com/2008/09/06/understanding-why/comment-page-1/#comment-1764</link>
		<dc:creator>Kevin</dc:creator>
		<pubDate>Sat, 06 Sep 2008 23:25:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.programmersparadox.com/?p=288#comment-1764</guid>
		<description>Excellent point Mark.

I once worked with a developer that had written some code to move a recordset pointer to the end of the set and then back to the begining again before working on it. When I asked him why he&#039;d done something that seemed incredibly redundnant he told me &quot;it&#039;s just what we do to get it to work&quot;. I found out that he&#039;d copy/pasted these two lines of code all over the codebase and not once stopped to ask what it was really doing or why it should be doing it*.

My mentor at the time refered to it as &quot;voodoo programming&quot;, because it&#039;s like waving a dead chicken in the air before you hit execute - you don&#039;t know why it works but this one time it did so you just kept doing it.


kevin


* it turned out that the code in question was originally written to get around a bug with a (long since replaced) database driver and multi-directional recordsets. Since we were using a different driver (hell, an entirely different DBMS) and really just needed a forward-only recordset, this code really was a complete waste of resources - not just in one place but in many.</description>
		<content:encoded><![CDATA[<p>Excellent point Mark.</p>
<p>I once worked with a developer that had written some code to move a recordset pointer to the end of the set and then back to the begining again before working on it. When I asked him why he&#8217;d done something that seemed incredibly redundnant he told me &#8220;it&#8217;s just what we do to get it to work&#8221;. I found out that he&#8217;d copy/pasted these two lines of code all over the codebase and not once stopped to ask what it was really doing or why it should be doing it*.</p>
<p>My mentor at the time refered to it as &#8220;voodoo programming&#8221;, because it&#8217;s like waving a dead chicken in the air before you hit execute &#8211; you don&#8217;t know why it works but this one time it did so you just kept doing it.</p>
<p>kevin</p>
<p>* it turned out that the code in question was originally written to get around a bug with a (long since replaced) database driver and multi-directional recordsets. Since we were using a different driver (hell, an entirely different DBMS) and really just needed a forward-only recordset, this code really was a complete waste of resources &#8211; not just in one place but in many.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
