Beautiful Software

Whilst I was in Japan I bought an iPod Touch. A couple of weeks ago I became very frustrated with the hoover in my flat and bought a Dyson. Both of these devices are very well made and a pleasure to use.

The Touch is a step, nay, a stride forward. The experience is qualitatively superior to previous iPods. I still find the inertial scrolling and the way one flicks from photo to photo a joy. The iPhone and Touch have set a new benchmark.

I admit that, even with the Dyson, hoovering is still not a leisure activity; it is, however, far easier and over more quickly than before. In addition to this, there are moments of small joy when some detail leaps out and presents itself. One example is the easy to remove brushes, making cleaning them much simpler. Little things which make life easier.

These devices are connected by the thought which has gone into the creation of each. They show evidence of care, a trait which is all too often missing from the items we buy today.

One of the most attractive things about Bristol is the preponderance of aged housing; its Georgian terraces and turn of the century terraced housing. These houses show the care which has gone into creating them; with individual touches or balanced proportions which please the eye. Craftsmanship has been present in their construction; many are beautiful.

Contrasting these houses are bland, featureless estates of houses springing up on the outskirts of the city and the similarly uninspired building works in the centre along the harbour-side. These developments are not even ugly; they inspire little aesthetic emotion at all. They have no soul and feel like containers, not dwellings. I cannot imagine they will be beautiful to an observer in a hundred years time, like their ancestors.

To often the programs and artifacts we create are like the bland housing or the frustrating hoover. Programs which “do the job”, though without finesse. Programs which frustrate the user and get in their way, rather than speeding them on their way and smoothing their workload. Programs which people dislike.

Beautiful things make people happier. So why do we not take this into account in much of our software? After all, most programs are designed to be used.

Too often, a program is deemed “good enough” before it is beautiful. This is because the benefits of a beautiful program are significantly undervalued.

A dubious backend decision will often have directly quantifiable costs, but a dodgy frontend creates hidden user costs instead; the time which must be spent calling tech-support, mindlessly clicking buttons and (re)filling in incorrect fields. These costs are only exposed indirectly through lessening productivity of users.

To a user, a program’s interface is the program. The back end may do the work of the program, but the front end allows definition of the work by a user. Often the user is the slowest part of the system — typing in boxes is never going to be so fast as the machine’s number crunching — so guiding successful entry of the work to be done is essential, gently pushing away from sand banks into the shipping channels of smooth progress.

Yet often the smoothing of progress is pushed under the rug, a beautiful, carefully designed interface viewed as extraneous rather than essential; the one-time irritation to a developer or cost to a manager being placed higher than the lifetime of swifter, more pleasurable work by the program’s users.

Our programs need to be beautiful Georgian terraces, not dull, lifeless suburban sprawls. It would be nice if everyone knew this.

.:.