Designing from the outside in

I was talking with Jason Fried of web design firm 37Signals recently. He believes that contrary to the normal expectation that applications are built on top of frameworks, applications should always be designed “from the outside in.” That is, at 37signals, they try to design the usability and function of the application first, and that drives the implementation. And if they can then extract a re-usable framework, all the better. For example, basecamp wasn’t built on top of Ruby on Rails. Rather, Ruby on Rails was extracted from basecamp. This approach seems obvious and commonsense — but hardly common in this era of heavy web services standards-ware designed by technical committees far in advance of actual implementation.

Jason related this approach to the oft-cited design pattern for landscape architecture, codified by Christopher Alexander in A Pattern Language as pattern 120, Paths and Goals: “”To lay out paths, first place goals at natural points of interest. Then connect the goals to one another to form the paths.” The best way to lay out paths is to put in lawn and then see where people actually walk, and add paving only later. (Larry Wall also cites this pattern as a key driver in the design of Perl, which, like the Camel he requested as its O’Reilly animal, is thought ugly by many but is nonetheless curiously well adapted to its environment.)

But this conversation also set off another train of thought: isn’t it curious how many of the applications and ideas getting the most buzz right now are coming from fertile collaborations between designers and developers? In addition to basecamp, there’s Flickr, conceived by designers Stewart Butterfield and Caterina Fake. And who put their finger on AJAX, the meme of the moment, but web design firm Adaptive Path.

Are designers the new heroes of the computer industry?