<?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>ThotSpots &#187; frameworks</title>
	<atom:link href="http://www.thotspots.com/tag/frameworks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thotspots.com</link>
	<description>Agile Software Development</description>
	<lastBuildDate>Wed, 09 Sep 2009 18:13:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Magic Number Seven WRT the Framework Simplicity Conundrum</title>
		<link>http://www.thotspots.com/the-magic-number-seven-wrt-the-framework-simplicity-conundrum/</link>
		<comments>http://www.thotspots.com/the-magic-number-seven-wrt-the-framework-simplicity-conundrum/#comments</comments>
		<pubDate>Sun, 11 Feb 2007 05:48:07 +0000</pubDate>
		<dc:creator>Craig Jones</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[complexity]]></category>
		<category><![CDATA[design principles]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[simplicity]]></category>

		<guid isPermaLink="false">http://www.thotspots.com/?p=22</guid>
		<description><![CDATA[Mid last year, Kurt Williams wrote "Beware of Simplicity" [<a HREF="http://jroller.com/page/cardsharp?entry=beware_simple_frameworks">jroller.com/page/cardsharp?entry=beware_simple_frameworks</a>] in development frameworks.  According to him, new and fresh frameworks can only claim to be simple because they are immature.  All frameworks are doomed to growing more complex as they grow in features.  I can't argue with that.  It seems to me, therefore, that the best frameworks are the ones that do the best job of hiding that complexity -- either because of the innate architecture of the framework, or by virtue of the tools and practices that deal with the complexity for you.  A framework can have all of the under-the-hood complexity it needs.  It's the day-to-day, in-your-face complexity that I care about.

In the field of cognitive psychology there's this so-called "Magic Number 7."  Basically, the idea is that humans can only keep 7 disjointed "things", plus or minus two, in short-term memory at once.  To see what I mean, study the following list of words for a minute.  Then, turn away and write down as many as you can from memory:]]></description>
			<content:encoded><![CDATA[<p>Mid last year, Kurt Williams wrote &#8220;<a href="http://jroller.com/page/cardsharp?entry=beware_simple_frameworks">Beware of Simplicity</a>&#8221; in development frameworks.  According to him, new and fresh frameworks can only claim to be simple because they are immature.  All frameworks are doomed to growing more complex as they grow in features.  I can&#8217;t argue with that.  It seems to me, therefore, that the best frameworks are the ones that do the best job of hiding that complexity &#8212; either because of the innate architecture of the framework, or by virtue of the tools and practices that deal with the complexity for you.  A framework can have all of the under-the-hood complexity it needs.  It&#8217;s the day-to-day, in-your-face complexity that I care about.</p>
<p>In the field of cognitive psychology there&#8217;s this so-called &#8220;Magic Number 7.&#8221;  Basically, the idea is that humans can only keep 7 disjointed &#8220;things&#8221;, plus or minus two, in short-term memory at once.  To see what I mean, study the following list of words for a minute.  Then, turn away and write down as many as you can from memory:<br />
<span id="more-22"></span><br />
Apricot, ladder, storm, headphones, spark-plug, sneaker, anchor, coin, library, twenty-seven, lyrics, nail, telescope, onion.</p>
<p>How&#8217;d you do?  I could only recall nine of them (even though I was the one who made up the darn list just now), and in fact, I had to work hard to recall the eighth and ninth.  By the way, IQ has nothing to do with this number.  Whether you&#8217;re closer to Mensa or Densa, your short-term recall factor will still be 7 +/- 2.  (See <a href="http://en.wikipedia.org/wiki/The_Magical_Number_Seven%2C_Plus_or_Minus_Two">Wikipedia</a> and George Miller&#8217;s 1956 paper that first noted the phenomenon is at <a href="http://www.musanim.com/miller1956/">www.musanim.com/miller1956/</a>.)</p>
<p>As the Wikipedia article points out, Ed Yourdon first commented on how this relates to computer science back in 1979.  He described what we would today refer to as the long-method smell (see <a href="http://www.soberit.hut.fi/mmantyla/BadCodeSmellsTaxonomy.htm">www.soberit.hut.fi/mmantyla/BadCodeSmellsTaxonomy.htm</a>), citing the magic number 7 as why it&#8217;s bad to tax the short-term memory of someone trying to understand a piece of code.</p>
<p>So, how often does your web framework require you to keep track of more than seven things at once?  Take, for example, the simple task of creating a data-entry page.  How many different files need to be created or modified to accomplish this? One for the HTML template, one for the page logic, multiple files for each model object (interface, impl, and ORM mapping), the DAO (interface and impl), the config file with the URL construction rules, the config file with the user security rules, the config file that lists all of the pages on the site, the interface file with constants for all those page names?  &#8212; That&#8217;s eleven and counting.  Sound familiar?  This amount of complexity often leads to things falling through the cracks, and is usually reflected in a high number of bug reports.</p>
<p>From what I have seen, Ruby on Rails has made this particular task as simple as it can be, and that accounts for a great deal of RoR&#8217;s appeal, I&#8217;m sure.  Even .Net has this down cold.  In the case of RoR, it&#8217;s an innate feature of the framework.  In the case of .Net, it&#8217;s simplified by the tools.  I&#8217;m still waiting for a Java-based framework/environment that &#8220;gets it&#8221; in this regard.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thotspots.com/the-magic-number-seven-wrt-the-framework-simplicity-conundrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

