<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Big Dave's Blog &#187; architecture</title>
	<atom:link href="http://davedupre.com/tag/architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://davedupre.com</link>
	<description>Some random thoughts - Go big or stay home!</description>
	<lastBuildDate>Fri, 25 Jun 2010 15:50:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>YAGNI and the Crystal Ball of Software Architecture</title>
		<link>http://davedupre.com/2009/11/11/yagni-and-the-crystal-ball-of-software-architecture/</link>
		<comments>http://davedupre.com/2009/11/11/yagni-and-the-crystal-ball-of-software-architecture/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 23:00:16 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[yagni]]></category>

		<guid isPermaLink="false">http://davedupre.com/?p=439</guid>
		<description><![CDATA[YAGNI and the Crystal Ball How often have you been involved in a project, and someone starts a statement with &#8220;It would be really cool if &#8230; ?&#8221; The second I hear that, I find myself evaluating what comes next with high degree of skepticism. First of all, it usually would be &#8220;really cool,&#8221; but [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">YAGNI and the Crystal Ball</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">How often have you been involved in a project, and someone starts a statement with &#8220;It would be really cool if &#8230; ?&#8221; The second I hear that, I find myself evaluating what comes next with high degree of skepticism. First of all, it usually would be &#8220;really cool,&#8221; but that doesn&#8217;t mean we should do it. Too often these ideas solve a problem that you won&#8217;t ever have or will not have in the foreseeable future.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">YAGNI = You&#8217;re are not going to need it</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Sure, it would be pretty cool to have a full plugin architecture, but do you really need it now? Let&#8217;s gain some traction, iterate, and then we&#8217;ll determine if it&#8217;s really necessary. Doing it because it&#8217;s cool only wastes time if you figure out that the users don&#8217;t really care. YAGNI.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Always design for current needs, leaving yourself open for the foreseeable future. Forget about the using the crystal ball to guess what your users will want a year from now. It&#8217;s far better to get something in front of your users sooner and find out what they really want. Even if a year from now you have to do a major refactor because something in the crystal ball came true, you will have a user base now and a good reason to make the change. You did iterate to get there, didn&#8217;t you?</div>
<p>How often have you been involved in a project, and someone starts a statement with &#8220;It would be really cool if &#8230; ?&#8221; The second I hear that, I find myself evaluating what comes next with a high degree of skepticism. First of all, it usually would be &#8220;really cool,&#8221; but that doesn&#8217;t mean we should do it. Too often these ideas solve a problem that you won&#8217;t ever have or will not have in the foreseeable future.</p>
<p>YAGNI = You&#8217;re are not going to need it</p>
<p>Sure, it would be pretty cool to have a full plugin architecture, but do you really need it now? Let&#8217;s gain some traction, iterate, and then we&#8217;ll determine if it&#8217;s really necessary. Doing it because it&#8217;s cool only wastes time if you figure out that the users don&#8217;t really care. YAGNI.</p>
<p>Always design for current needs, leaving yourself open for the foreseeable future. Forget about using the crystal ball to guess what your users will want a year from now. It&#8217;s far better to get something in front of your users sooner and find out what they really want now. Even if a year from now you have to do a major refactor because something in the crystal ball came true, you will have a user base now and a good reason to make the change. You did iterate to get there, didn&#8217;t you?</p>
]]></content:encoded>
			<wfw:commentRss>http://davedupre.com/2009/11/11/yagni-and-the-crystal-ball-of-software-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
