<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.3" -->
<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/"
	>

<channel>
	<title>spencegreen.com &#187; Design</title>
	<link>http://www.spencegreen.com</link>
	<description>Software, business, writing, the Arabic language, and travel.</description>
	<pubDate>Sun, 03 Aug 2008 17:10:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<item>
		<title>Interface Design Principles</title>
		<link>http://www.spencegreen.com/2008/01/08/72/</link>
		<comments>http://www.spencegreen.com/2008/01/08/72/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 21:41:15 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.spencegreen.com/2008/01/08/72/</guid>
		<description><![CDATA[Good user interface design is mischievously hard. &#8220;Simplicity&#8221; is the fad these days, thanks to Apple and indie software teams such as 37signals. But simplicity follows complexity, and wading through complexity requires separating vital things from everything else. Do you think that it&#8217;s easy to identify important ideas and fastidiously adhere to them? Stop smoking. Don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Good user interface design is mischievously hard. &#8220;Simplicity&#8221; is the fad these days, thanks to Apple and indie software teams such as <a target="_blank" href="http://37signals.com">37signals</a>. But simplicity follows complexity, and wading through complexity requires separating vital things from everything else. Do you think that it&#8217;s easy to identify important ideas and fastidiously adhere to them? Stop smoking. Don&#8217;t lust. Call your mother daily. Don&#8217;t be mean. Simple doesn&#8217;t mean easy.</p>
<p>Here are several principles that have emerged from my reading over the last few weeks. Remember that methodologies only supply the raw material for good design: feature sets, response requirements, accessibility needs, etc. Making a design come together requires practice, taste, and a little luck.</p>
<ol>
<li><strong>Form follows function</strong>-Good interfaces result from a comprehensive understanding of the user&#8217;s objectives. Paradoxically, the user often does not know his objective, especially in a new, &#8220;brand-defining&#8221; design. This is a historical critique of <a target="_blank" href="http://www.jnd.org/dn.mss/human-centered.html">usage-centered design</a>.  Developers will use an <a target="_blank" href="http://carbon.cudenver.edu/~mryder/itc_data/activity.html">activity-based approach</a> to design.</li>
<li><strong>Maximize Server-side transclusion</strong>-The developer can significantly alter page content and layout during the server-side, pre-render process. Content pages and the QueryString are two common ways of adding parameterized content to generic pages. Shared content pages between sites facilitate both code reuse and a seamless user experience.</li>
<li><strong>Keep it simple (to an extent)</strong>-Screens should not be &#8220;busy&#8221; or contain &#8220;fluff.&#8221; These are qualitative descriptions of elusive aesthetic end products. Good interfaces contain just enough detail, but not more. At the same time, extensive detail may at times be required (for example, on an administrative configuration panel). The developer should use intuition as a guide and always <em><a target="_blank" href="http://www.peterme.com/archives/000408.html">pity the user</a></em>.</li>
<li><strong>Use &#8220;accelerators&#8221;</strong>-As his proficiency increases, a user may want to access certain functions and information outside of the normal task flow (keyboard shortcuts are an obvious example). Developers can hide detail behind context sensitive displays and menus or provide deep linking into alternate work flows (for example, going from a performance graph to work scheduling). Think EMACS.</li>
<li><strong>Adhere to W3C standards</strong>-IE6 is a recent tragedy for which IE7 has not atoned. Although a requirement does not currently exist for cross-browser support, the user will eventually appreciate a compliant interface. Therefore, the development model should be &#8220;test in Firefox, hack for IE.&#8221;</li>
<li><strong>Accommodate the evolving user</strong>-The user&#8217;s objectives and information needs will evolve over FSS&#8217;s lifecycle. Developers should fastidiously separate data from presentation. In ASP.NET, for example, GridView control may be attached to a data source. The data source &#8220;shapes&#8221; Tier 2 information into an ADO.NET structure, which is then styled by the GridView declarative syntax.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.spencegreen.com/2008/01/08/72/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reflections on Interface Design</title>
		<link>http://www.spencegreen.com/2007/12/14/reflections-on-interface-design/</link>
		<comments>http://www.spencegreen.com/2007/12/14/reflections-on-interface-design/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 15:03:28 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.spencegreen.com/2007/12/14/reflections-on-interface-design/</guid>
		<description><![CDATA[Like many programmers, I have long considered interface design an artistic activity best reserved for aesthetes who cannot design sort functions. One of my working software theories has been, &#8220;Programmers don&#8217;t design interfaces. Interface designers design interfaces.&#8221; My recent foray into graphical design has caused me to revise this axiom: &#8220;Programmers can design interfaces if [...]]]></description>
			<content:encoded><![CDATA[<p>Like many programmers, I have long considered interface design an artistic activity best reserved for aesthetes who cannot design sort functions. One of my working software theories has been, &#8220;Programmers don&#8217;t design interfaces. Interface designers design interfaces.&#8221; My recent foray into graphical design has caused me to revise this axiom: &#8220;Programmers can design interfaces if they study interface design.&#8221; This is where I found myself several weeks ago.</p>
<p>During the first week of my research, I petitioned my manager for access to &#8220;the User.&#8221; After all, <a target="_blank" href="http://www.37signals.com/svn/">&#8220;enlightened&#8221; interface design teams </a><em>pity the user</em>, right? Not always. I spent several days building prototype screens and realized that not only did I not understand the user, but also that the user did not understand himself. My current project is a new system that will require new processes, training procedures, and internal organizations. Staffing needs are uncertain. Roles are uncertain. Even the system&#8217;s features are fluid. Therefore, &#8220;the User&#8221; does not yet exist. It occured to me that <a target="_blank" href="http://www.foruse.com/">&#8220;Usage-centered design&#8221;</a> fails in such a scenario, as observed by <a target="_blank" href="http://www.jnd.org/dn.mss/human-centered.html">Don Norman</a>:</p>
<div style="margin-left: 10px; background-color: #ffffcc">The historical record contains numerous examples of successful devices that required people to adapt to and learn the devices. People were expected to acquire a good understanding of the activities to be performed and of the operation of the technology. None of this “tools adapt to the people” nonsense — people adapt to the tools.</p>
<p>Think about that last point. A fundamental corollary to the principle of Human-Centered Design has always been that technology should adapt to people, not people to the technology. Is this really true?
</p></div>
<p>Frustrated, I called a friend who currently studies design under Norman at Northwestern. As with most leaps into new technical fields, I found that the conventional knowledge was about a decade out of date (a revelation consistent with Steve McConnell&#8217;s assertion that software ideas take 10 years or more to percolate from academia to industry). <a target="_blank" href="http://www.foruse.com/articles/activitymodeling.htm">&#8220;Activity-based&#8221; design</a> is the new model. Activities are user objectives that consist of tasks, which are user actions. Discovering activities and tasks yields insight into the user&#8217;s ultimate goals. Good interfaces result from a comprehensive understanding of these goals.</p>
<p>Whether &#8220;activity-based&#8221; design will survive The Next Big Thing remains unclear. The approach has intuitive merits, for Norman rightly observes that useful tools like pens and musical instruments require educating the user. One can hardly imagine that Les Paul held user forums while developing the electric guitar (possible questionnaire: &#8220;Does this device help you <em>shred</em> more?&#8221;). At the same time, the concept of activities and tasks falls squarely into the faddish realm of process thinking characterized Enterprise Architecture, ERP systems, and BPM. But a processes are like algorithms, which have been <a target="_blank" href="http://www-cs-faculty.stanford.edu/~knuth/taocp.html">studied for millenia</a>. The salient insight is that most people don&#8217;t think in terms of algorithms, but most useful activities require them. With only a hint of elitism, I therefore suggest that interface designers first try to clearly state what needs to be done, approaching the user after the heavy intellectual lifting has been accomplished.</p>
<p>Interface Design Tools that I&#8217;m using now:<br />
<a target="_blank" href="http://softwarestencils.com/uml/index.html">NickFinck wireframe stencils</a><br />
<a target="_blank" href="http://softwarestencils.com/uml/index.html">UML2.0 stencils</a><br />
<a target="_blank" href="http://home.comcast.net/~hchute/woodshop_visio.htm">Dimensioning stencils</a><br />
<a target="_blank" href="http://www.gimp.org/">The Gimp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spencegreen.com/2007/12/14/reflections-on-interface-design/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
