Tuesday, August 12, 2008

The Art in Architecture

I was once asked during a job interview if I had ever done anything creative. I asked in reply - "you mean other than programming?" I've always felt that programmers, DBAs, Systems Architects, Network Analysts, and others of our ilk; the good ones anyways - use both the left and right sides of their brains. What we do is art. It is also science to be sure, but if it were only nuts, bolts, glue, bailing wire, and spit there could be no enjoyment, no thrill, nor satisfaction.

The Roman architect Vitruvius stated that good architecture must posses and balance three attributes; function, structure, and beauty. Vitruvius only had stone, clay, and wood with which to work (these pre-date Assembler) and yet his fundamentals can be applied to modern IT architecture.

Function: This refers to how a thing is used; i.e. it must accommodate practical requirements for every purpose within its domain. A building without function may be beautiful, but it's sculpture, not architecture.

Structure: This refers to how a thing stands up, it's strength, flexibility, and resiliency. Whether it consists of steel, wood, brick or binary digits (bits), the framework must resist the loads placed upon it. But to be architecture, it must do more.

Beauty: This refers to sensory appeal and elegance. It is what Vitruvius called "delight." Architectural delight can be found in a curved stairwell, a vaulted stone ceiling, or an object so simple and elegant that is cannot fail. Beauty is the ultimate test of good architecture.

In our day-in, day-out, cost-driven, date-driven world of corporate computing we tend to focus on function, only sometimes considering structure, and rarely embracing beauty. But an elegantly designed object, service, or application is the one that tends to work without incident over long periods of time. These are the components that can be easily extended by third and fourth generation developers, long after the original author has been promoted to Project Manager.

IT designers looking to build high function, structurally sound, beautiful/elegant computer systems are often thwarted and discouraged by 'pragmatists' who talk about the real world, the trenches, and who have no time for 'purists.' Imagine what the world would be like if IT pragmatists inflicted their myopic standards outside of the digital domain. How dreary life would be.

Consider the project you are working on right now. Is there any part of it that you feel functions (does it's job), has good structure (is resilient and flexible) and is beautiful (simple, elegant, pretty). Try not to confuse beautiful with ornate or ostentatious. Elegant computer systems are simple. As Einstein put it, "as simple as possible, but no simpler." Your project could be a new user interface, a new database design, an indexing scheme, a network topology, a security solution, business logic, messaging transport layer, or COBOL batch job. Beauty can exist anywhere, but only if the designer cares.

Here's a test for your next problem - do you tend to implement the first solution that pops into your mind? Do you stop thinking after finding the first workable answer to a problem, or do you continue to think it through, considering other possible angles, approaches, and ideas. David Brenner, the comedian once commented that of course you find things in the last place you look - who would find something and then keep looking for it? But in the arena of IT solution design - the first answer you invent is often just a core of a good idea - its function; with structure and beauty a few more thoughts away.

You are an artist that must balance function, structure, and beauty to be truly great.

Follow by Email