<?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: Concepts and features – an example</title>
	<atom:link href="http://lostechies.com/jimmybogard/2010/09/30/concepts-and-features-an-example/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/jimmybogard/2010/09/30/concepts-and-features-an-example/</link>
	<description>Strong opinions, weakly held</description>
	<lastBuildDate>Thu, 23 May 2013 23:40: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: Tim Scott</title>
		<link>http://lostechies.com/jimmybogard/2010/09/30/concepts-and-features-an-example/#comment-2660</link>
		<dc:creator>Tim Scott</dc:creator>
		<pubDate>Mon, 04 Oct 2010 04:34:07 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/09/30/concepts-and-features-an-example.aspx#comment-2660</guid>
		<description>Great post.  It&#039;s something I&#039;ve been thinking about quite a lot lately.  I notice you said, &quot;we waited too long to formalize the concept,&quot; not &quot;we should have discerned and modeled this concept at the outset.&quot;  That would be YAGNI and paying a debt that might never come due.

My own &quot;concept needs formalization&quot; alarm is getting better tuned with experience, I feel.  For me it works best like this.  The product owner orders a feature.  I notice right off that it&#039;s like some existing feature.  Okay, let&#039;s keep it DRY then.  So I fire up Resharper and set to refactor the existing code to support the new feature.  When it starts to feel sticky and procedural, the the concept alarm rings.  Let&#039;s model it.  Ah, that feels better.</description>
		<content:encoded><![CDATA[<p>Great post.  It&#8217;s something I&#8217;ve been thinking about quite a lot lately.  I notice you said, &#8220;we waited too long to formalize the concept,&#8221; not &#8220;we should have discerned and modeled this concept at the outset.&#8221;  That would be YAGNI and paying a debt that might never come due.</p>
<p>My own &#8220;concept needs formalization&#8221; alarm is getting better tuned with experience, I feel.  For me it works best like this.  The product owner orders a feature.  I notice right off that it&#8217;s like some existing feature.  Okay, let&#8217;s keep it DRY then.  So I fire up Resharper and set to refactor the existing code to support the new feature.  When it starts to feel sticky and procedural, the the concept alarm rings.  Let&#8217;s model it.  Ah, that feels better.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nolan Egly</title>
		<link>http://lostechies.com/jimmybogard/2010/09/30/concepts-and-features-an-example/#comment-2659</link>
		<dc:creator>Nolan Egly</dc:creator>
		<pubDate>Thu, 30 Sep 2010 19:19:34 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/09/30/concepts-and-features-an-example.aspx#comment-2659</guid>
		<description>This is why it&#039;s so important to have a good understanding of the scope of a new application.  Unfortunately, that&#039;s hard :)

It&#039;s difficult to balance &quot;analysis paralysis&quot; against &quot;YAGNI - oh wait, yes we DO need that&quot;, and even then the client is going to change their mind several times after swearing the requirements are frozen.  Design is an iterative process.

Past experience with similar systems helps a lot (Jimmy will probably make file processing more explicit in his next EDI system).  There are some good general books on architecture out there.  I like to read project post mortems to understand what system design challenges other teams have run into and how they solved them, but good ones are hard to find.

How else do other readers &quot;search for common concepts to build on&quot;?</description>
		<content:encoded><![CDATA[<p>This is why it&#8217;s so important to have a good understanding of the scope of a new application.  Unfortunately, that&#8217;s hard <img src='http://lostechies.com/jimmybogard/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It&#8217;s difficult to balance &#8220;analysis paralysis&#8221; against &#8220;YAGNI &#8211; oh wait, yes we DO need that&#8221;, and even then the client is going to change their mind several times after swearing the requirements are frozen.  Design is an iterative process.</p>
<p>Past experience with similar systems helps a lot (Jimmy will probably make file processing more explicit in his next EDI system).  There are some good general books on architecture out there.  I like to read project post mortems to understand what system design challenges other teams have run into and how they solved them, but good ones are hard to find.</p>
<p>How else do other readers &#8220;search for common concepts to build on&#8221;?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralf Westphal</title>
		<link>http://lostechies.com/jimmybogard/2010/09/30/concepts-and-features-an-example/#comment-2658</link>
		<dc:creator>Ralf Westphal</dc:creator>
		<pubDate>Thu, 30 Sep 2010 15:31:23 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2010/09/30/concepts-and-features-an-example.aspx#comment-2658</guid>
		<description>Hm... sounds like DDD would have helped. If you work according to DDD then concept identification is part of understanding requirements, because concepts are part of the Ubiquitous Language. This does not mean you need to implement all concepts, but at least you´re clear early on which concepts there are.

And I´d and from personal experience that then architecting a system as consiting of processes (yes, I know, doesn´t sound very OO ;-) but it works nevertheless) does help to translate concepts into code. So whatever you see in an implementation is part of the Ubiquitous Language - and the other way round.

-Ralf</description>
		<content:encoded><![CDATA[<p>Hm&#8230; sounds like DDD would have helped. If you work according to DDD then concept identification is part of understanding requirements, because concepts are part of the Ubiquitous Language. This does not mean you need to implement all concepts, but at least you´re clear early on which concepts there are.</p>
<p>And I´d and from personal experience that then architecting a system as consiting of processes (yes, I know, doesn´t sound very OO <img src='http://lostechies.com/jimmybogard/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  but it works nevertheless) does help to translate concepts into code. So whatever you see in an implementation is part of the Ubiquitous Language &#8211; and the other way round.</p>
<p>-Ralf</p>
]]></content:encoded>
	</item>
</channel>
</rss>
