<?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: Evolutionary Architecture</title>
	<atom:link href="http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/</link>
	<description>Strong opinions, weakly held</description>
	<lastBuildDate>Sat, 25 May 2013 16:53:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: Software Development Word of the Day &#171; A-Cuppa-Code</title>
		<link>http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/#comment-4605</link>
		<dc:creator>Software Development Word of the Day &#171; A-Cuppa-Code</dc:creator>
		<pubDate>Mon, 21 May 2012 11:24:51 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/01/28/evolutionary-architecture.aspx#comment-4605</guid>
		<description>[...] [Refs: http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/] Like this:LikeBe the first to like this post. Explore posts in the same categories: Uncategorized [...]</description>
		<content:encoded><![CDATA[<p>[...] [Refs: http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/] Like this:LikeBe the first to like this post. Explore posts in the same categories: Uncategorized [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RichB</title>
		<link>http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/#comment-4045</link>
		<dc:creator>RichB</dc:creator>
		<pubDate>Wed, 26 Oct 2011 14:55:00 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/01/28/evolutionary-architecture.aspx#comment-4045</guid>
		<description>An average developer can take a lot of pain, and consequently stick with an ugly system for a long long time.</description>
		<content:encoded><![CDATA[<p>An average developer can take a lot of pain, and consequently stick with an ugly system for a long long time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim</title>
		<link>http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/#comment-2184</link>
		<dc:creator>Tim</dc:creator>
		<pubDate>Wed, 03 Feb 2010 03:19:01 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/01/28/evolutionary-architecture.aspx#comment-2184</guid>
		<description>On point 3: Iterative Design

What about also recording your decisions for making design/architecture changes somewhere for later reference?</description>
		<content:encoded><![CDATA[<p>On point 3: Iterative Design</p>
<p>What about also recording your decisions for making design/architecture changes somewhere for later reference?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arnis L.</title>
		<link>http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/#comment-2183</link>
		<dc:creator>Arnis L.</dc:creator>
		<pubDate>Sat, 30 Jan 2010 13:26:02 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/01/28/evolutionary-architecture.aspx#comment-2183</guid>
		<description>Jimmy, change the world and come up with detailed instructions about this. I&#039;ve thought about exactly the same thing quite a lot. Main problem is - there aren&#039;t well defined methodology that helps to go through (movement itself) from simple architecture to complex one and would let to identify and unite this idea as a unit. What are exact problems when identifying things that should be more complex, how and when to identify them and what are exact problems when switching to more complex solution and how to avoid them.

Despite that this would get highly abstract, i think there&#039;s a great potential. At least my intuition says so.</description>
		<content:encoded><![CDATA[<p>Jimmy, change the world and come up with detailed instructions about this. I&#8217;ve thought about exactly the same thing quite a lot. Main problem is &#8211; there aren&#8217;t well defined methodology that helps to go through (movement itself) from simple architecture to complex one and would let to identify and unite this idea as a unit. What are exact problems when identifying things that should be more complex, how and when to identify them and what are exact problems when switching to more complex solution and how to avoid them.</p>
<p>Despite that this would get highly abstract, i think there&#8217;s a great potential. At least my intuition says so.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mehdi Khalili</title>
		<link>http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/#comment-2182</link>
		<dc:creator>Mehdi Khalili</dc:creator>
		<pubDate>Sat, 30 Jan 2010 01:49:48 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/01/28/evolutionary-architecture.aspx#comment-2182</guid>
		<description>Jimmy, Thanks for the post.

It kinda addresses my question in your previous post; however, what I was and am concerned about is not reversible decisions. I am concerned about things like: 
- client-server vs distributed system
- data access patterns
- messaging/communication patterns

These are kind of questions that you almost always have to answer in the first few months (if not weeks) of project initiation, and unfortunately these are rather the most irreversible of decisions you have to make. 

Of course everything could change to a better design in an iterative approach, but the cost associated with a wrong (or I should say not very well-informed) decision could be high. I wish stakeholders could make up their minds first ;-) that is not alway possible though.

Mehdi</description>
		<content:encoded><![CDATA[<p>Jimmy, Thanks for the post.</p>
<p>It kinda addresses my question in your previous post; however, what I was and am concerned about is not reversible decisions. I am concerned about things like:<br />
- client-server vs distributed system<br />
- data access patterns<br />
- messaging/communication patterns</p>
<p>These are kind of questions that you almost always have to answer in the first few months (if not weeks) of project initiation, and unfortunately these are rather the most irreversible of decisions you have to make. </p>
<p>Of course everything could change to a better design in an iterative approach, but the cost associated with a wrong (or I should say not very well-informed) decision could be high. I wish stakeholders could make up their minds first <img src='http://lostechies.com/jimmybogard/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  that is not alway possible though.</p>
<p>Mehdi</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jdn</title>
		<link>http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/#comment-2181</link>
		<dc:creator>jdn</dc:creator>
		<pubDate>Fri, 29 Jan 2010 15:38:28 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/01/28/evolutionary-architecture.aspx#comment-2181</guid>
		<description>The trick is finding the right balance between the seeming contradiction of #2 and #3:

&quot;if it doesn’t hurt, it doesn’t need fixing.  If it hurts, fix it!  The bottom line is that not all areas of your application will have the same sophistication and attention to detail in its design&quot;

and

&quot;Improving the architecture of a system is good, but leaving a trail of decaying, older designs still in the codebase can cripple further innovation&quot;
</description>
		<content:encoded><![CDATA[<p>The trick is finding the right balance between the seeming contradiction of #2 and #3:</p>
<p>&#8220;if it doesn’t hurt, it doesn’t need fixing.  If it hurts, fix it!  The bottom line is that not all areas of your application will have the same sophistication and attention to detail in its design&#8221;</p>
<p>and</p>
<p>&#8220;Improving the architecture of a system is good, but leaving a trail of decaying, older designs still in the codebase can cripple further innovation&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Fernandes</title>
		<link>http://lostechies.com/jimmybogard/2010/01/29/evolutionary-architecture/#comment-2180</link>
		<dc:creator>Daniel Fernandes</dc:creator>
		<pubDate>Fri, 29 Jan 2010 09:24:01 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/01/28/evolutionary-architecture.aspx#comment-2180</guid>
		<description>We all understand the risks of BDUF, although I&#039;m still interested by what D means to people.
Is it:
- High level only architecture (like, we&#039;ve got those subsystems with specific roles)
- Architecture detailed to the nth degree
- Documents with reams of class diagrams
- Simply the fact that it&#039;s something produced by an architect or an analyst

I&#039;ve only seen only twice true BDUF in a shop doing waterfall. Yes it was indeed painful because it was far too detailed. In the first case it didn&#039;t work because it was produced by analysts who stopped coding years ago, whilst on the other case it worked because it was produced by developers who were forced in producing such document but were not held by it.

Regarding YAGNI, I&#039;m glad you&#039;re warning against it. I&#039;ve seen too often compromised designs because &quot;you don&#039;t need that abstraction&quot;. YAGNI should indeed first be applied to features, and then maybe design. Design quality should be directed by design principles the team is aiming at.

@Daneel3001</description>
		<content:encoded><![CDATA[<p>We all understand the risks of BDUF, although I&#8217;m still interested by what D means to people.<br />
Is it:<br />
- High level only architecture (like, we&#8217;ve got those subsystems with specific roles)<br />
- Architecture detailed to the nth degree<br />
- Documents with reams of class diagrams<br />
- Simply the fact that it&#8217;s something produced by an architect or an analyst</p>
<p>I&#8217;ve only seen only twice true BDUF in a shop doing waterfall. Yes it was indeed painful because it was far too detailed. In the first case it didn&#8217;t work because it was produced by analysts who stopped coding years ago, whilst on the other case it worked because it was produced by developers who were forced in producing such document but were not held by it.</p>
<p>Regarding YAGNI, I&#8217;m glad you&#8217;re warning against it. I&#8217;ve seen too often compromised designs because &#8220;you don&#8217;t need that abstraction&#8221;. YAGNI should indeed first be applied to features, and then maybe design. Design quality should be directed by design principles the team is aiming at.</p>
<p>@Daneel3001</p>
]]></content:encoded>
	</item>
</channel>
</rss>
