Design

Archived Posts from this Category

Interfaces and the Search for Happiness

Posted by hardin on 04 Oct 2007 | Tagged as: Design

I should preface this article by stating that I am not a theorist when it comes to computer science. I like theory, and I think it’s interesting, but I make a living by building cool applications, not by building cool theories. That said, I occaisonally read the Communications of the ACM, especially when clients have it in their offices while I am waiting for a meeting. This happened to be the case the other day, when I picked up the (quite out of date) April 2007 issue of Communications, and came upon a very interesting article by Jenova Chen, founder of That Game Company, entitled Flow in Games (and Everything Else). It is based on her thesis at USC, and focuses on applying Mihaly Csikszentmihalyi’s Flow Theory to software design. Basically, good interfaces that captivate the user transport them to the Flow, which “represents the feeling of complete an energized focus in an activity, with a high level of enjoyment and fulfillment. To achieve a flow state, a balance must be struck between the challenge of the task and the skill of the performer. If the task is too easy or too difficult, flow cannot occur.”

Mihaly Csikszentmihalyi

Chen applies this idea to games, identifying eight major components of Flow: a challenging activity requiring skill; a merging of action and awareness; clear goals; direct, immediate feedback; concentration on the task at hand; a sense of control; a loss of self-consciousness; and an altered sense of time.

When I read this list, however, I don’t think of games. I think of some of the great web applications I have interacted with. Basecamp, for example, fulfills many of the components of Flow. I have certainly lost myself in that program for hours as I direct Intelli-Computing, so I have personally experienced it. When we design web application interfaces, there is no reason why we can’t incorporate the euphoria of the Flow that makes the games of Chen’s theory so successful.

Accounting Difficulties

Posted by hardin on 16 Sep 2007 | Tagged as: Design

In an extension of one of my previous articles, Why do enterprise interfaces suck?, I have recently had many experiences with terrible interfaces in a search for accounting software for Intelli-Computing. There seem to be a lot of terrible interfaces in the accounting business. The first software that we tried as Peachtree Pro Accounting by Sage Software, which had an intimidating interface that seemed powerful, but was completely unintuitive and felt like it had been designed for Windows 95 and not updated in a decade.

Peachtree Accounting

After a lot of trial and error, I eventually settled on a disturbing conclusion: the best small business accounting software currently in existence is made by Microsoft. I was hesitant, but upon installing Microsoft Accounting 2007, I was astounded to find an interface that was extremely easy to use, that simplifies common tasks and shows how they relate via diagrams. It isn’t often that an interface surprises me like this one, and it is truly enjoyable to use.

Microsoft Accounting 2007

Why do enterprise interfaces suck?

Posted by hardin on 04 Aug 2007 | Tagged as: Design

With the vast numbers of web applications that I interact with on a regular basis, I see many great interfaces, as well as many terrible ones. Through that, I’ve noticed a disturbing trend: the interfaces of enterprise web applications feel like they are still stuck in the 1990’s, while all of the innovation seems to be happening on the consumer level. This may seem obvious, and in many ways it is, but it is a trend that should not exist. There is no reason why the simple design elegance and AJAX functionality that exists in applications like Google’s Gmail, 37signals’ Basecamp, and even Wordpress, which I am using to write this post, should not have a place in enterprise environments.

Basecamp   Gmail   Wordpress

I’ve discussed this problem recently with several of my clients, and I believe I have identified the primary reason: fear of incompatibility. Between company firewalls, ancient browsers, and disabled features in the interest of corporate security, many enterprise developers shun technology like AJAX since many company employees are unable to run JavaScript. This limits the client-side processing that enables interface elegance in the consumer web applications I discussed above. While all of this functionality can be somewhat replicated with server-side processing in languages like PHP and ASP.NET, having to reload the page after any user interaction is slow, cumbersome, and often irritating.

No perfect solution exists to this problem right now, but I believe there are two approaches that developers can take in response:

1. In the short term, designers can implement AJAX functionality in web applications and also implement a server-side fallback plan that allows the application to function without JavaScript. If this isn’t feasible, corporate support of Flash is rapidly increasing with the rise of Flash-powered online streaming video, so sophisticated applications can be developed in Flash form.

2. In the long term, a standard for client-side processing needs to be developed that will be supported by industry. The only true web standards that have ever been widely supported in industry are HTML and CSS, and that needs to change over the next few years. It will remain to be seen whether the W3C is capable of delivering something like this, or whether it will come from somewhere else.