[ Content | View menu ]

Content, Design, and Tufte

Mark Mzyk | September 9, 2009

In what now seems like an eternity ago, I saw Nathan Huening of Sprocket House give a talk at Refresh The Triangle back in July on Edward Tufte.  Nathan’s talk was his attempt to highlight Tufte’s main points about design.

Looking back, I don’t remember all the points Nathan highlighted, however, at the time the ones that most struck me I wrote down in my moleskine.

One of the points was that of the smallest effective difference.  This is where elements are separated by the smallest distinction possible, so that they are distinct and easy to follow, but so that the eye isn’t overwhelmed by the divider.  An example of this would be having a thin gray line dividing boxes, as opposed to a thick black bar.  This principle stuck out to me because I realized it often shows up in calendar grids.  Google calendar uses this to great effect.  Each block is marked with a thin blue line in Google calendar.  This also has the side effect of maximizing space.

The other principle that struck me from Nathan’s talk is that content influences design.  Nathan used an example from his own design company to showcase this.  He talked about how as they designed the website for Peace College the Alumnae Affairs department at Peace College the homepage design was designed last and was influenced by the content of the second level pages.  How could they have known what needed to be highlighted on the homepage without knowing the content of the other pages?  The hierarchy of the second level pages also influenced how the layout and navigation of the homepage was to work.

Once it is shown to you, realizing that content influences design seems obvious, yet as most of us go through our lives we continually ignore this fact, leading to suboptimal designs.  What tends to be designed is one size fits all, and while there is a place for systems like that, more often than not they lead to inefficiencies.

The ignorance of content influencing design even shows up in programing.  All to often, we programmers build the scaffolding of our programs first and then later insert the all important content, squishing it into the scaffolding we’ve built.  This leads to logic that is warped to account for the scaffolding, instead of the scaffolding changing to accommodate the logic.

DSLs (domain specific languages) are one way that content influences design in programming.  The content becomes the design of the language.  While it’s still possible to have a badly designed DSL, a DSL is closer to the content than a generic language will be and this should lead to greater efficiencies in design.

Nathan’s points were well taken.  While I’d heard of Tufte, not being a designer myself I’ve never taken the time to read his works.  I’ll need to rectify that, as it’s clear that principles that apply in the design world also have applicability to the world of programming.