<?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: How code generation breaks YAGNI</title>
	<atom:link href="http://www.noctovis.net/blog/index.php/2009/01/19/how-code-generation-breaks-yagni/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.noctovis.net/blog/index.php/2009/01/19/how-code-generation-breaks-yagni/</link>
	<description>A night's vision on .NET</description>
	<lastBuildDate>Tue, 06 Dec 2011 11:48:08 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Dew Drop - January 20, 2009 &#124; Alvin Ashcraft's Morning Dew</title>
		<link>http://www.noctovis.net/blog/index.php/2009/01/19/how-code-generation-breaks-yagni/comment-page-1/#comment-21</link>
		<dc:creator>Dew Drop - January 20, 2009 &#124; Alvin Ashcraft's Morning Dew</dc:creator>
		<pubDate>Tue, 20 Jan 2009 14:52:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.noctovis.net/blog/index.php/2009/01/19/how-code-generation-breaks-yagni/#comment-21</guid>
		<description>[...] How Code Generation Breaks YAGNI (Laila Bougria) [...]</description>
		<content:encoded><![CDATA[<p>[...] How Code Generation Breaks YAGNI (Laila Bougria) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Laila</title>
		<link>http://www.noctovis.net/blog/index.php/2009/01/19/how-code-generation-breaks-yagni/comment-page-1/#comment-18</link>
		<dc:creator>Laila</dc:creator>
		<pubDate>Tue, 20 Jan 2009 11:31:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.noctovis.net/blog/index.php/2009/01/19/how-code-generation-breaks-yagni/#comment-18</guid>
		<description>Hi Brendan, thx for your feedback.
When I look back to what Wikipedia tells about the consequences of not applying YAGNI, I don&#039;t think they&#039;re unimportant (I shortened them a bit):
- Any new feature imposes constraints on what can be done in the future... 
- It leads to code bloat; the software becomes larger and more complicated. 
- Adding the new feature may suggest other new features, this may result in a snowball effect towards creeping featurism. 

So yes, CodeGen is something you&#039;re not really writing, I agree, but I keep believing that&#039;s not an &quot;excuse&quot; to leave in dead code.
On the other hand, if you&#039;ve got a lot of dead code, you should try to refactor your SF. If you can&#039;t leave it out of the SF, you should cleanup your generated code.

What I&#039;m trying to accomplish, is not exactly the same as what YAGNI says (don&#039;t write what you don&#039;t need - since that&#039;s not really applicable), but the goals are the same (a codebase without dead code, keeping larger extensibility possibilities, and so on...). So this &quot;principle&quot; of cleaning up, refactoring and paying off your technical debt, is not the exact equivalent of YAGNI, but it sure was inspired by it in this case. Maybe we should give the kid a name? :)</description>
		<content:encoded><![CDATA[<p>Hi Brendan, thx for your feedback.<br />
When I look back to what Wikipedia tells about the consequences of not applying YAGNI, I don&#8217;t think they&#8217;re unimportant (I shortened them a bit):<br />
- Any new feature imposes constraints on what can be done in the future&#8230;<br />
- It leads to code bloat; the software becomes larger and more complicated.<br />
- Adding the new feature may suggest other new features, this may result in a snowball effect towards creeping featurism. </p>
<p>So yes, CodeGen is something you&#8217;re not really writing, I agree, but I keep believing that&#8217;s not an &#8220;excuse&#8221; to leave in dead code.<br />
On the other hand, if you&#8217;ve got a lot of dead code, you should try to refactor your SF. If you can&#8217;t leave it out of the SF, you should cleanup your generated code.</p>
<p>What I&#8217;m trying to accomplish, is not exactly the same as what YAGNI says (don&#8217;t write what you don&#8217;t need &#8211; since that&#8217;s not really applicable), but the goals are the same (a codebase without dead code, keeping larger extensibility possibilities, and so on&#8230;). So this &#8220;principle&#8221; of cleaning up, refactoring and paying off your technical debt, is not the exact equivalent of YAGNI, but it sure was inspired by it in this case. Maybe we should give the kid a name? <img src='http://www.noctovis.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brendan</title>
		<link>http://www.noctovis.net/blog/index.php/2009/01/19/how-code-generation-breaks-yagni/comment-page-1/#comment-17</link>
		<dc:creator>Brendan</dc:creator>
		<pubDate>Tue, 20 Jan 2009 06:48:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.noctovis.net/blog/index.php/2009/01/19/how-code-generation-breaks-yagni/#comment-17</guid>
		<description>Hi Laila,
I don&#039;t disagree with the fact that you want your CodeGen tool to output clean, useful code. The term &quot;remove all YAGNI code&quot; just feels a bit wrong. In the sense that YAGNI seems more about &quot;the concept of avoiding unnecessary work&quot; and &quot;always implement things when you actually need them.&quot; (Wikipedia)

CodeGen is something that you’re not really writing, thus not incurring any extra work by doing so. Cleaning up unused code in your codebase is one thing but I don&#039;t think the act of subtracting/refactoring code qualifies as the YAGNI principle since the code is already there..but hey, that&#039;s just my view.</description>
		<content:encoded><![CDATA[<p>Hi Laila,<br />
I don&#8217;t disagree with the fact that you want your CodeGen tool to output clean, useful code. The term &#8220;remove all YAGNI code&#8221; just feels a bit wrong. In the sense that YAGNI seems more about &#8220;the concept of avoiding unnecessary work&#8221; and &#8220;always implement things when you actually need them.&#8221; (Wikipedia)</p>
<p>CodeGen is something that you’re not really writing, thus not incurring any extra work by doing so. Cleaning up unused code in your codebase is one thing but I don&#8217;t think the act of subtracting/refactoring code qualifies as the YAGNI principle since the code is already there..but hey, that&#8217;s just my view.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

