<?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"
	>
<channel>
	<title>Comments on: Optimize Late, Benchmark Early</title>
	<atom:link href="http://www.hans-eric.com/2007/11/23/optimize-late-benchmark-early/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hans-eric.com/2007/11/23/optimize-late-benchmark-early/</link>
	<description>Hans-Eric Grönlund on software development</description>
	<pubDate>Mon, 08 Sep 2008 11:42:52 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: mccoyn</title>
		<link>http://www.hans-eric.com/2007/11/23/optimize-late-benchmark-early/#comment-1164</link>
		<dc:creator>mccoyn</dc:creator>
		<pubDate>Mon, 26 Nov 2007 19:52:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.hans-eric.com/2007/11/23/optimize-late-benchmark-early/#comment-1164</guid>
		<description>The only time I'll optimize early is when the implementation is so slow that it bothers me while I'm testing or debugging.  In other words, when it is blatantly obvious that it will be a problem.

Optimizations have a habit of making code more complicated.  Optimizing feature A might take one hour and add 30 minutes to the time to implement feature B later, so its better to implement feature B before optimizing feature A.  Also, it is better to never optimize feature A if you can get away with it (thus benchmark before optimize.)</description>
		<content:encoded><![CDATA[<p>The only time I&#8217;ll optimize early is when the implementation is so slow that it bothers me while I&#8217;m testing or debugging.  In other words, when it is blatantly obvious that it will be a problem.</p>
<p>Optimizations have a habit of making code more complicated.  Optimizing feature A might take one hour and add 30 minutes to the time to implement feature B later, so its better to implement feature B before optimizing feature A.  Also, it is better to never optimize feature A if you can get away with it (thus benchmark before optimize.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hans-Eric</title>
		<link>http://www.hans-eric.com/2007/11/23/optimize-late-benchmark-early/#comment-1138</link>
		<dc:creator>Hans-Eric</dc:creator>
		<pubDate>Sat, 24 Nov 2007 08:54:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.hans-eric.com/2007/11/23/optimize-late-benchmark-early/#comment-1138</guid>
		<description>Paul, you're the kind of developer I'd love to work with.</description>
		<content:encoded><![CDATA[<p>Paul, you&#8217;re the kind of developer I&#8217;d love to work with.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul W. Homer</title>
		<link>http://www.hans-eric.com/2007/11/23/optimize-late-benchmark-early/#comment-1127</link>
		<dc:creator>Paul W. Homer</dc:creator>
		<pubDate>Fri, 23 Nov 2007 20:07:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.hans-eric.com/2007/11/23/optimize-late-benchmark-early/#comment-1127</guid>
		<description>For me, I use the architecture to draw 'lines' in the system, partitioning it into lots of smaller pieces. When I build the initial version, I tend towards overly simple implementations for all of the pieces. 

In later iterations -- depending on need -- I usually start upgrading the models, algorithms or interfaces to accommodate more efficient or expanded versions of the components. I don't like to go straight into the optimized version mostly because I often don't fully understand the problem domain until I've seen the code run in a real environment for a while. If I am wrong in my initial understanding, optimizing wastes a lot of valuable time.

Typically, in the early years that generally leaves parts of the system as being very crude, while other parts have been significantly enhanced. That's ok, and not a bad way of dealing with limited time. It all depends on the external factors in the project;  politics frequently overrides technical requirements.


Paul.</description>
		<content:encoded><![CDATA[<p>For me, I use the architecture to draw &#8216;lines&#8217; in the system, partitioning it into lots of smaller pieces. When I build the initial version, I tend towards overly simple implementations for all of the pieces. </p>
<p>In later iterations &#8212; depending on need &#8212; I usually start upgrading the models, algorithms or interfaces to accommodate more efficient or expanded versions of the components. I don&#8217;t like to go straight into the optimized version mostly because I often don&#8217;t fully understand the problem domain until I&#8217;ve seen the code run in a real environment for a while. If I am wrong in my initial understanding, optimizing wastes a lot of valuable time.</p>
<p>Typically, in the early years that generally leaves parts of the system as being very crude, while other parts have been significantly enhanced. That&#8217;s ok, and not a bad way of dealing with limited time. It all depends on the external factors in the project;  politics frequently overrides technical requirements.</p>
<p>Paul.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.222 seconds -->
