<?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: Agile Database &#8211; Part 1: The release problem</title>
	<atom:link href="http://warren.mayocchi.com/2006/03/29/agile-database-part-1-the-release-problem/feed/" rel="self" type="application/rss+xml" />
	<link>http://warren.mayocchi.com/2006/03/29/agile-database-part-1-the-release-problem/</link>
	<description>Life, Software Development, Creativity: What I care to write about</description>
	<lastBuildDate>Fri, 09 Jul 2010 16:14:02 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: warren</title>
		<link>http://warren.mayocchi.com/2006/03/29/agile-database-part-1-the-release-problem/comment-page-1/#comment-9370</link>
		<dc:creator>warren</dc:creator>
		<pubDate>Tue, 14 Apr 2009 12:23:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.mayocchi.com/blog/2006/03/29/agile-database-part-1-the-release-problem/#comment-9370</guid>
		<description>&lt;p&gt;Re: Person_name...what about simple web registations (name + email)?&lt;/p&gt;

&lt;p&gt;It is a subjective call as to whether a change is a real world refactoring or an omission by the original designer. Some examples from my work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Today I was adding &#039;ROWDEPENDENCIES&#039; to tables that were not created with that clause (an infrastructure technology change provides for a &#039;changestamp&#039; feature that was once implemented via custom code).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I have worked regularly with legacy systems that contain overloaded fields similar to the person_name example. Pretty much an anti-pattern now, but still out there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adding new features to a system in a second phase of development (features which require a new set of tables).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Altering existing tables to add extra attributes that were not required in initial project iterations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Changing the length/precision of a field to reflect the latest information (that was not available or expected in the intial design).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Moving from a 1:1 relationship with an attribute (stored in the base table as another column) to a 1:many relationship (stored as an intermediate relationship table). Again this example was due to a change in the intial requirements.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It can be (and is) argued that all changes should have been identified completely up-front. However, whatever our approach to software development, change happens. We use our design skills and experience to minimise bad data modelling in any case. When using an adaptive approach like agile, it is also important to have the tools to release a little part of the system and build on it. Change in an agile environment with good data modelling can be as simple as an incremental release of database features.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Re: Person_name&#8230;what about simple web registations (name + email)?</p>
<p>It is a subjective call as to whether a change is a real world refactoring or an omission by the original designer. Some examples from my work:</p>
<ul>
<li>
<p>Today I was adding &#8216;ROWDEPENDENCIES&#8217; to tables that were not created with that clause (an infrastructure technology change provides for a &#8216;changestamp&#8217; feature that was once implemented via custom code).</p>
</li>
<li>
<p>I have worked regularly with legacy systems that contain overloaded fields similar to the person_name example. Pretty much an anti-pattern now, but still out there.</p>
</li>
<li>
<p>Adding new features to a system in a second phase of development (features which require a new set of tables).</p>
</li>
<li>
<p>Altering existing tables to add extra attributes that were not required in initial project iterations.</p>
</li>
<li>
<p>Changing the length/precision of a field to reflect the latest information (that was not available or expected in the intial design).</p>
</li>
<li>
<p>Moving from a 1:1 relationship with an attribute (stored in the base table as another column) to a 1:many relationship (stored as an intermediate relationship table). Again this example was due to a change in the intial requirements.</p>
</li>
</ul>
<p>It can be (and is) argued that all changes should have been identified completely up-front. However, whatever our approach to software development, change happens. We use our design skills and experience to minimise bad data modelling in any case. When using an adaptive approach like agile, it is also important to have the tools to release a little part of the system and build on it. Change in an agile environment with good data modelling can be as simple as an incremental release of database features.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Macleod</title>
		<link>http://warren.mayocchi.com/2006/03/29/agile-database-part-1-the-release-problem/comment-page-1/#comment-9320</link>
		<dc:creator>Steven Macleod</dc:creator>
		<pubDate>Mon, 13 Apr 2009 10:17:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.mayocchi.com/blog/2006/03/29/agile-database-part-1-the-release-problem/#comment-9320</guid>
		<description>&lt;p&gt;Hi, just getting my head around Agile DB development. I am sure your example above is given as a simple example but surely you would have to be really dumb to create a field called Person_Name in the first place. This may appear to be an obnoxious comment, but all the examples I see around Agile refactoring are for refactoring really stupid mistakes, eg breaking 1NF as in this case. It seems from what I have read that the Agile method uses refactoring to solve problems caused by really bad data modelling, whereas Agile should be used to avoid these errors in the first place. &lt;/p&gt;

&lt;p&gt;I would be interested in your thoughts on this and would be interested in any real world examples of refactoring complex changes that could not have been preconceived at the modelling phase.&lt;/p&gt;

&lt;p&gt;Regards&lt;/p&gt;

&lt;p&gt;Steven&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi, just getting my head around Agile DB development. I am sure your example above is given as a simple example but surely you would have to be really dumb to create a field called Person_Name in the first place. This may appear to be an obnoxious comment, but all the examples I see around Agile refactoring are for refactoring really stupid mistakes, eg breaking 1NF as in this case. It seems from what I have read that the Agile method uses refactoring to solve problems caused by really bad data modelling, whereas Agile should be used to avoid these errors in the first place. </p>
<p>I would be interested in your thoughts on this and would be interested in any real world examples of refactoring complex changes that could not have been preconceived at the modelling phase.</p>
<p>Regards</p>
<p>Steven</p>
]]></content:encoded>
	</item>
</channel>
</rss>
