Spence Green

التكرار يعلم الحمار

I work at Lilt. In addition to computers and languages, my interests include travel, running, and scuba diving. more...

Interface Design Principles

without comments

Good user interface design is mischievously hard. “Simplicity” 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’s easy to identify important ideas and fastidiously adhere to them? Stop smoking. Don’t lust. Call your mother daily. Don’t be mean. Simple doesn’t mean easy.

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.

  1. Form follows function-Good interfaces result from a comprehensive understanding of the user’s objectives. Paradoxically, the user often does not know his objective, especially in a new, “brand-defining” design. This is a historical critique of usage-centered design.  Developers will use an activity-based approach to design.
  2. Maximize Server-side transclusion-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.
  3. Keep it simple (to an extent)-Screens should not be “busy” or contain “fluff.” 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 pity the user.
  4. Use “accelerators”-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.
  5. Adhere to W3C standards-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 “test in Firefox, hack for IE.”
  6. Accommodate the evolving user-The user’s objectives and information needs will evolve over FSS’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 “shapes” Tier 2 information into an ADO.NET structure, which is then styled by the GridView declarative syntax.

Written by Spence

January 8th, 2008 at 4:41 pm

Posted in Design

Leave a Reply

You must be logged in to post a comment.