Are you a designer or a coder?

January 28, 2012 @ 5:47 AM

Depending on who you talk to, I may be one or the other - or both. In the industry in which I work, there often seem to be firm lines drawn between the roles of "designer" and "computer programmer". However, I have never felt comfortable being one or the other. I am always curious about how those other parts plug together.

I started my career as a visual artist. Beginning as an illustrator, and then evolving into the role of a graphic designer, this eventually led to designing  CD-ROMs, kiosks, and then Web sites. It was inevitable that I would start to tinker with the bits below the surface.

In my mind, a true designer of software should be capable in all layers of the technology, not just the database, the application, or the GUI. The best architects understand building engineering and materials science. The best automobile designers can build their own engines too. Likewise, the best software architects can write their schema, framework, and visual interfaces.

Some people like to use the phrase "Form follows function". While I have a tendency for that myself, what I really believe is that "Form follows function follows form". It is sort of an endless loop - a snake eating its tail. Visual design can influence engineering as much as engineering necessity can influence visual presentation. In the ideal design process these parts all blend together in a symphony of technology.

Of course, this is much easier said than done. For the last few years I have been spending much more of my time focused on writing software than I have with visual design. Recently, I had cause to dive back into a purely visual design project, and I was surprised at how stiff I had become with my art. After a few days of sketching, the old chops started to come alive again - but it reminded me how difficult it can be to remain adept at spanning the realms of engineering and art. It is a constant project to blend them into one art.

But in the end, whether we are designing code, or designing the visual interface to interact with that code - it is all design.